【Csdn 4月9日编译】作为一名程序员,如果你想在这个领域内继续向前进步或者在当前的经济形势下保持不被炒鱿鱼,那么你就决不应当自满自足,你需要继续学*。*日,著名IT评论员Justin James在他的博客中列出了未来五年程序员应当具备的十项技能,如果照此实践,你未来的工作前景一定一片光明。
当前的经济形势下,很多程序员将目光聚焦在短期内的工作形式上,但是你仍然要抽出时间和精力学*新的技能。以下是作为程序员应当即刻学*的十项技能,以确保在未来五年内你的简历上有真材实料。当然这个名单很难做到详尽而没有遗漏,有些领域没有涉及到(比如大型机开发者)。然而,对于一般的主流开发而言,你至少要学会以下十条中的七条,而且掌握的程度不是那种你在工作面试上能够夸夸其谈,而是真正能够用于实际开发。
1,三大主流开发体系之一(.NET, Java, PHP)
除非软件开发领域发生巨大的变革(这机率好比行星撞击地球),不然程序员至少需要知道三大开发系统中(.NET (VB.NET or C#), Java, PHP)的一种。而且仅仅了解核心语言是不够的,因为现在的项目拥有越来越多的不同功能,这也迫使程序员对相关的框架和库了解得更深。
2,富客户端应用(Rich Internet Applications)
无论你对Flash是爱还是恨,我们都不得不承认在过去的几年里Flash的发展壮大已远不仅是应用于动画制作。Flash以及Flex和AIR都具备越来越多的功能。而Flash的竞争者,如JavaFX和Silverlight等也在不断提升自身的性能和表现。让富互联网应用更加活跃的是,HTML 5正整合进所有种类的RIA功能,包括数据库连接、将W3C置于AJAX上等。在不远的将来,作为一名RIA领域的专家无疑将给你的简历添上浓重的一笔。
3,Web页面开发
Web开发恐怕在未来的很长时间内都是主流技术之一。许多程序员往往满足于构建后台、或者只是专注于框架基础而忽略了Web。但是越来越多的企业需要如何在交互代码(hand code)级别处理Web技术的人员,所以掌握JavaScript、CSS和HTML必将在未来五年内的职场上无往不胜。
4,Web服务端开发
REST 还是SOAP? JSON 还是XML?当然选择答案得依据项目来定,但如果一名程序员不会创建Web服务(尽管这个程序员也许不用写Web应用),那么他在工作岗位上一定倍感艰难。因为即便是过去那些被ODBC, COM或者 RPC主宰的领域现在也转到了一些形式的Web服务上了。
5,软性技能
一段时间以来就有这样一种趋势即:无论在企业内部还是企业外部提高IT的能见度。程序员被越来越多地带去参加非开发性会议来提供技术支持。例如,没有IT升级系统,首席财务官不可能改变收支细则;没有IT升级CRM工作流,运营总监不可能改变一个中心呼叫进程。同样,客户经常直接与开发团队沟通以确保他们的需求被完成。是否每个程序员都应该回去学*礼仪课来与别人更好的交往呢?那倒不必,但是程序员的确要提高待人接物的软性能力,以在职场上获得更大的价值。
6,一种动态或者函数式程序设计语言(Functional Programming Language)
类如Ruby, Python, F#和Groovy等的语言虽然不完全主流,但是语言内部包含的思想却是开发界的主流。比如,微软.NET中的LINQ系统就是函数式程序设计语言的一个直接派生。得益于Rails框架和Silverlight的发展,Ruby和Python语言在一些领域变得很热门。学*这样一门语言不仅丰富了你的简历,而且会开阔你的开发视野。我所遇到的顶级开发者几乎都曾在演讲中提到学*一门动态语言或者函数式程序设计语言的重要性,就我的个人经历而言,这确实很有用。
7,敏捷开发
当敏捷开发第一次冲击主流的开发意识时,我跟许多开发者一样持怀疑的观点。因为它抛弃了控制、标准等,看起来是一种完全与传统方法相悖的开发方法。但随着时间的发展,敏捷背后的思想被定义的越来越好,应用得也越来越棒。许多开发或者采用敏捷,或者在敏捷开发的实验阶段。尽管敏捷不是失败项目的万灵药,但它确实在软件开发中有一席之地。那些对敏捷有很好的理解并且有应用经历的开发者必将在未来五年内成为抢手货。
8,业务领域知识
开发团队越来越被看做是项目的合作者,这意味着了解该领域的开发者将对该项目的贡献更大。有了敏捷,开发者可以说我们可以在这儿很简单地增加这个功能,而这将让我们的产品更具价值。或者这个要求不符合我们日志显示的常用类型。由于越来越多的程序员反对必须了解该领域内的所有问题(实际上也不可能做到),所以不可否认的是越来越多的企业希望开发者起码了解该领域内的基础知识,越多越好。
9,质量控制
几年前的时候,很多企业和产品没有bug跟踪系统、没有版本控制和其他类似的工具,所写出的代码和产品都只是跟程序员和他所用的IDE有关。幸而开发领域有了新的、集成的工具如Microsoft Visual Studio Team System,而且产品、代码高质量及可用性的透明度提高,开源环境等,现在没有这种工具的企业已经越来越少稀少。开发者除了知道如何源代码控制、如何使用VM系统构建测试环境之外,还要做更多的质量控制工作,并具备很好的清洁意识来确保他与他的团队协调一致。那些将代码处存在个人硬盘中,没有记录代码变更、任务目录等的开发者,不但在传统的开发环境中不受欢迎,在敏捷的开发环境中也不受欢迎。
10,移动开发
在上世纪90年代末,Web开发一跃成为主流并且将原来传统的桌面应用开发边缘化。在2008,移动开发大肆进入人们的视野,而且至少在五年内移动开发都将是开发领域的重中之重。当然移动开发的方式有很多种,但无论你选择哪一种都将令你成为未来的抢手货。(译/王玉磊)
当前的经济形势下,很多程序员将目光聚焦在短期内的工作形式上,但是你仍然要抽出时间和精力学*新的技能。以下是作为程序员应当即刻学*的十项技能,以确保在未来五年内你的简历上有真材实料。当然这个名单很难做到详尽而没有遗漏,有些领域没有涉及到(比如大型机开发者)。然而,对于一般的主流开发而言,你至少要学会以下十条中的七条,而且掌握的程度不是那种你在工作面试上能够夸夸其谈,而是真正能够用于实际开发。
1,三大主流开发体系之一(.NET, Java, PHP)
除非软件开发领域发生巨大的变革(这机率好比行星撞击地球),不然程序员至少需要知道三大开发系统中(.NET (VB.NET or C#), Java, PHP)的一种。而且仅仅了解核心语言是不够的,因为现在的项目拥有越来越多的不同功能,这也迫使程序员对相关的框架和库了解得更深。
2,富客户端应用(Rich Internet Applications)
无论你对Flash是爱还是恨,我们都不得不承认在过去的几年里Flash的发展壮大已远不仅是应用于动画制作。Flash以及Flex和AIR都具备越来越多的功能。而Flash的竞争者,如JavaFX和Silverlight等也在不断提升自身的性能和表现。让富互联网应用更加活跃的是,HTML 5正整合进所有种类的RIA功能,包括数据库连接、将W3C置于AJAX上等。在不远的将来,作为一名RIA领域的专家无疑将给你的简历添上浓重的一笔。
3,Web页面开发
Web开发恐怕在未来的很长时间内都是主流技术之一。许多程序员往往满足于构建后台、或者只是专注于框架基础而忽略了Web。但是越来越多的企业需要如何在交互代码(hand code)级别处理Web技术的人员,所以掌握JavaScript、CSS和HTML必将在未来五年内的职场上无往不胜。
4,Web服务端开发
REST 还是SOAP? JSON 还是XML?当然选择答案得依据项目来定,但如果一名程序员不会创建Web服务(尽管这个程序员也许不用写Web应用),那么他在工作岗位上一定倍感艰难。因为即便是过去那些被ODBC, COM或者 RPC主宰的领域现在也转到了一些形式的Web服务上了。
5,软性技能
一段时间以来就有这样一种趋势即:无论在企业内部还是企业外部提高IT的能见度。程序员被越来越多地带去参加非开发性会议来提供技术支持。例如,没有IT升级系统,首席财务官不可能改变收支细则;没有IT升级CRM工作流,运营总监不可能改变一个中心呼叫进程。同样,客户经常直接与开发团队沟通以确保他们的需求被完成。是否每个程序员都应该回去学*礼仪课来与别人更好的交往呢?那倒不必,但是程序员的确要提高待人接物的软性能力,以在职场上获得更大的价值。
6,一种动态或者函数式程序设计语言(Functional Programming Language)
类如Ruby, Python, F#和Groovy等的语言虽然不完全主流,但是语言内部包含的思想却是开发界的主流。比如,微软.NET中的LINQ系统就是函数式程序设计语言的一个直接派生。得益于Rails框架和Silverlight的发展,Ruby和Python语言在一些领域变得很热门。学*这样一门语言不仅丰富了你的简历,而且会开阔你的开发视野。我所遇到的顶级开发者几乎都曾在演讲中提到学*一门动态语言或者函数式程序设计语言的重要性,就我的个人经历而言,这确实很有用。
7,敏捷开发
当敏捷开发第一次冲击主流的开发意识时,我跟许多开发者一样持怀疑的观点。因为它抛弃了控制、标准等,看起来是一种完全与传统方法相悖的开发方法。但随着时间的发展,敏捷背后的思想被定义的越来越好,应用得也越来越棒。许多开发或者采用敏捷,或者在敏捷开发的实验阶段。尽管敏捷不是失败项目的万灵药,但它确实在软件开发中有一席之地。那些对敏捷有很好的理解并且有应用经历的开发者必将在未来五年内成为抢手货。
8,业务领域知识
开发团队越来越被看做是项目的合作者,这意味着了解该领域的开发者将对该项目的贡献更大。有了敏捷,开发者可以说我们可以在这儿很简单地增加这个功能,而这将让我们的产品更具价值。或者这个要求不符合我们日志显示的常用类型。由于越来越多的程序员反对必须了解该领域内的所有问题(实际上也不可能做到),所以不可否认的是越来越多的企业希望开发者起码了解该领域内的基础知识,越多越好。
9,质量控制
几年前的时候,很多企业和产品没有bug跟踪系统、没有版本控制和其他类似的工具,所写出的代码和产品都只是跟程序员和他所用的IDE有关。幸而开发领域有了新的、集成的工具如Microsoft Visual Studio Team System,而且产品、代码高质量及可用性的透明度提高,开源环境等,现在没有这种工具的企业已经越来越少稀少。开发者除了知道如何源代码控制、如何使用VM系统构建测试环境之外,还要做更多的质量控制工作,并具备很好的清洁意识来确保他与他的团队协调一致。那些将代码处存在个人硬盘中,没有记录代码变更、任务目录等的开发者,不但在传统的开发环境中不受欢迎,在敏捷的开发环境中也不受欢迎。
10,移动开发
在上世纪90年代末,Web开发一跃成为主流并且将原来传统的桌面应用开发边缘化。在2008,移动开发大肆进入人们的视野,而且至少在五年内移动开发都将是开发领域的重中之重。当然移动开发的方式有很多种,但无论你选择哪一种都将令你成为未来的抢手货。(译/王玉磊)
【原创】下面四千字的东西,打了三个小时,又花了两小时修改,体会来自于自己的经历。既为楼主也为自己,也希望能给他人带来一点帮助,因为自己也曾苦于出路这个问题许久,徘徊于技术与销售之间。其实,最重要的是,想清楚自己要的到底是什么,而实现的方法有很多,选择其中的一个,然后耐心去做,注意做的过程中,要多方面发展。不断提高自己的综合能力才是硬道理——这才是出路之所在!!!。 【出路】 在职业选择上,很多人都会问一个问题,这个职业有什么出路?想得到正确的回答,必须先搞清楚,自己究竟想得到什么东西。对于程序员这个职业,如果你要的是钱,很多的钱,程序员没有出路;程序员工作繁忙,有时不规律,连续着加班很有可能,如果你要的是休闲的生活,程序员没有出路;程序员都是与电脑打交道,工作就是坐着,如果你要的是跟人广泛的交流,而且坐不住,程序员没有出路;写程序都是很逻辑的东西,如果你不喜欢这种解题式的思考方式,顶不住整天思考所带来的疲惫,程序员没有出路。 程序员跟民工的区别就是,高强度的脑力劳动者和体力劳动者。虽然程序员的待遇看起来还不错,想想其实不是,假如八点半上班,加班到十点,没加班费,平均下来,一个人相当于干了将*一份半的工作,除下来收入付出比就少了半截,收入多是因为付出的劳动多。这是开始做程序员时常有的事。 假如纯往技术上走,干几年熟手了,情况会好,但是,当你对比起干了几年销售的朋友时,你会发现,你的劳动力太廉价了。一个小公司的销售,普普通通干三年后,一年拿十万块的提成是很有可能的,而一个程序员,普普通通干三年,能拿月薪一万的不多。还有人家销售有许多的报销,你有么?如果有天赋而且努力地干,销售,大学毕业三年买车买房的多的是,当然不是说噬老族那些;程序员呢?有多少能!也许研究生,而且读的好的那款还比较可能,但此时那些本科或者大专,甚至中专就出来跑销售的,已经工作好几年了,说不定此时正在三亚晒太阳呢! 你说销售的应酬多,呵呵,喝酒;要去拍人马屁,去求人什么的!ok,这就是销售,你敢保证当你看到他们的收入时,还有看到他们拿着公司的钱,请客户去各种高档的地方消费时,甚至说句不好听的,花公司的钱请客户到处吃喝嫖赌时——客户也是人,许多客户就这些个的爱好,所以要满足他,他才买你的帐,很正常——严格意义上讲,这样的工作比坐在电脑前埋头苦干来的轻松多了,其实是一种享受,看到这些,你敢保证你一点都不眼红?呵呵,如果不眼红,那就专心干程序员吧! 或者说,你对这种“一点科技含量都没有的工作”——在你眼中,高iq的人才是牛b的人,那就安下心来干程序员吧。但我想说,在这个社会上,赚钱最多最快的,最舒服的,永远是销售。当然,干技术干的好的,最终都是比较受人尊重的——专家,当然是五十年如一日投身于技术那种人才能成为专家。如果你能刻苦地干程序员,想成为架构师、系统分析员,成为软件专家,那就专心干程序员吧! 或者说,你实在干不来与人交际,还要挖空心思去维护各种人际关系的工作是,那就安心下来干你的程序员工作吧,就像民工一样,有谁乐意去干民工,但是没办法,能力所限,只能干民工了。但我想说,能力都是学来的,给民工们上大学,他们毕业后一样会有很多牛人。有人说:“哪有那么好的条件给他们上大学啊!”。条件很多时候要自己去创造啊!难道每个成功的人都有一个高人,手把手地拉扯着他,给他良好的成长环境和资源吗?没有什么东西学不来,只是学得快和慢的问题,要真正去学学看才知道,而不是停留在大脑中。如果你学编程学得很快,而且学得很开心,即使学的过程很累,那就专心干程序员吧! 接下来,告诉你一个好消息,史玉柱出身技术、马化腾出身技术、唐骏出身技术、比尔盖茨出身技术、杰克•韦尔奇出身技术,等等,他们都成功了!假如这是你想象中的出路的话。我不是说要达到他们那种水平,而是走技术路线,来获得事业有成,获得成功。写过程序的人都知道,想实现某个功能,有很多种实现方法。获得成功也是一样,有很多的路可走。这就是我为什么拿销售来做比较,每种职业都能到达成功的彼岸,不管是做技术、行政、财务、销售,等等。 出路是什么?不就是人生价值的实现,有的人要的是成就感,有的人要的是幸福,有的人要的是健康,有的人要的是金钱,有的人要的是地位名气,有的人要的是贡献全人类,有的人要的是玩乐、享受,其实这些都是不同人的人生价值。而实现自己人生价值的方法实在太多了,不管从事什么职业,不管是java程序员,c++、c#,都能成功的,最最重要的是想清楚你想得到什么,接下来就是做具体的计划,然后实现计划。实现的过程不能拘泥于技术,应该多方面发展,不断提高自己的综合能力!想做项目经理、做cto,或者用自己的技术去创业,都必须发展自己的综合能力。 回到刚才,马化腾、比尔盖茨、唐骏等等这些技术员为什么能成功?技术过关是基础,甚至技术过硬,唐骏日本、美国留学,比尔盖茨哈佛。接着,最重要的是:超前的眼光。qq其实不是什么很难的技术,比什么量子物理简单多了,而且icq还是以色列人开发的,马化腾就照着开发了qq,当时在中国就是超前的东西;比尔盖茨的windows,让三岁小孩也能使用电脑,而不用记一大堆的dos命令,这就是超前;唐骏发明了卡拉OK评分器、大头贴,你自己可以想像一下大头贴有多少的技术含量,然而它带来的经济效益是多少!所以说,想法太重要了,好的技术不是它有多高深,而是它能给人的生活带来多少的便利,而往往第一个想到的人能获得巨大的回报。第三,人际关系,别老以为做了技术就能以高姿态出现,有人很鄙视销售,认为没技术含量、俗;销售还很鄙视技术呢,穷、死板。其实,没人能靠自己一个人赢得一切,技术要靠销售来卖自己的产品,销售要靠技术生产产品,谁都离不开谁,这其中还有一连串的其他人呢,财务、行政、前台mm、老板等等。现在越来越提倡团队合作,跟队友、跟上级、跟客户之间的沟通是必修课,沟通不好必然配合不好,你的才能永远无法施展,何来的出路。 第四,求人,其实求人是人际关系中的一个,为什么单独在这里讲,因为他太重要了。机会很多时候是靠求人得来的,例如唐骏,他去日本留学的机会就是求了一大堆人得来的,他当时考研究生,在北京邮电分数最高,但因为大学没得过一次“三好生”,北邮没给他出国名额。他给各个大学的研究生处打了三天电话,问还有没有留学名额,得到的大多都是这样的回答:“我们自己的学生都不够呢,哪里轮得到你?”,如果脸皮薄,没耐心,早就放弃了,后来他找到了北京广播学院(现在的中国传媒大学,就是陈鲁豫读的那个学校,据说当时很水。。。),吴怀仙老师,当时他们的对话是这样的: “看你的成绩很好,你们北邮应该取你呀!” “北邮当然取我。但是,我从小爱看电视爱听广播,未来中国的广播电视事业一定会有很大的发展,为了这项事业,我愿意放弃北邮,来到北广。” “照你现在的说法,你不是为广播事业而来吗?怎么又跟出国有关?” “中国的广播事业很落后,需要去国外学*一些先进的理念、先进的技术回来呀!” “老实说你来有风险,如果教育部不批的话,你不能出国,就必须留在广播学院读书。可是北广没有硕士学位的授予权,你只能取得研究生学历,得不到学位。” “我来的目的很明确!为了中国的广播事业,有没有学位没那么重要。” 你知道当时的实际情况是怎样的吗,北邮根本就没有给唐骏名额,唐骏根本就是说了一个无伤大雅的谎言,所以,你看看、你看看,善于变通对于一个人的成功是多么的重要,唐骏他们都不是一味地干技术就能成功的,很多时候必须好好包装自己、销售自己的。在这里我不是在说要去骗取利益,而是说,在遇到困难的时候能改变思路,转个弯绕过路障!!求人很重要,有个强硬的后台帮忙,少奋斗十年!后来唐骏又去教育部门口站了几天岗,等人、求人,呵呵,其实只是问了几声好,这是后话。 第五,超越物理层。凡是要获得大的成功,赚大钱,或者说更容易地赚钱的,都不能拘泥于物理层。只有大老板能给你建个实验室,让你搞深层次的技术;而只有你的实验室能不断做出可以卖钱的产品时,你的实验室才不至于被关闭。走入公司的决策层,你才能决定该往那走,什么技术该大力发展、什么技术该好好改造、什么技术该放弃。这个道理相信不用讲你也明白,那么,如何进入决策层,靠高素质、靠综合能力。学*能力、沟通能力、领导能力、管理能力、玩的能力(品酒、打扮、奢侈品、打高尔夫等等),一大堆的能力呢!没有一所学校、一个组织能教授全部,这些都要靠自己去学、去领悟,前提是,你要有去学、去领悟的想法。 说实在的,世界是很复杂的东西,要的是你去适应它,它不会来适应你。唐骏说:“性格能改变吗?很多人说不能。可是我认为,本性是不能改变的,但性格是一定能改变的”。杰克•韦尔奇,通用电气前ceo,打小有自卑心理,到了成年还略带口吃。他母亲激励他,这算不了什么缺陷,只有面对现实,坚持与别人沟通,让别人了解你,才能主宰自己的命运,别人才会跟你做朋友,这是这个伟大而平凡的母亲给予杰克的最大财富。事实上,如果你自己不在意,那么那个缺陷也就不太重要了。略带口吃的毛病并没有阻碍杰克的发展,实际上在后来,注意到这个弱点的人大都对杰克很敬佩,因为他竟能克服这个障碍,在商界出类拔萃。赶紧改变,让自己更好地适应这个复杂多变的世界。 想清楚自己要的是什么,做一个两年计划,因为超过两年变数就太大了,然后制定实现的步骤,也就是一个个短期计划,从第一步开始实现。这些计划应该是具体、可行而且能在预定时间内完成的,最后静下心来,耐心实现自己的每个计划!!不要老是问人,我这样做对吗,我该怎么做。哈佛退学就一定是错的?北大卖猪肉就一定不好?外企就一定是好归宿?你该做的就是,想清楚自己想要什么,金钱、美女、名利、地位、权势,还是过平凡的日子,做善事做好人,都没问题,只要真的是你想要的就好,然后考虑怎么去实现它。其实实现的方法有很多,选择其中的一个,然后耐心去做,注意做的过程中,要多方面发展。不断提高自己的综合能力才是硬道理——这才是出路之所在!!!