程序员个人职业生涯成长公式。

第三部分,未来职业生涯规划、家庭环境分析、例如经济状况,家人期望等。感谢您阅读《程序员个人职业生涯成长公式》内容,职场资讯网小编向您推荐一些职业规划知识,欢迎参考,希望能帮到你。

微软有些部门以成长公式的形式从为什么(Why)、做什么(What)、怎样做(How)和在哪里(Where)角度为员工计划自己的成长提出了方向。比如某部门提出以下公式:

当然了,微软和其他公司企业文化、制度、对员工要求、为员工提供的职业生涯发展条件各有不同,所以微软的公式并非对每个人都适用。不过该模式有5个要点是值得我们注意的:

(1)我们每个人都应该思考和认识到为什么要努力成长?比如因为我们都希望自己不断充实提高,能胜任微软的本职工作,也希望能高质量完成任务,成为优秀员工,为用户和社会做贡献等。WWw.Zc530.Com

(2)至于要做什么才能算是在成长呢?首先就要考虑本职工作,也就是分给自己要完成的所有任务。在微软这样的特别强调和积极实行创新和发明新技术、新过程的公司,每个员工当然也要跟上新要求、新形势,因此也要积极学习和积极参与新技术和新过程的创新和制定。此外也应该承担额外责任,帮助其他团队成员和团队建设;还应该计划将来的职业发展目标,并把个人目标计划和团队、公司总体目标结合起来。
(3)做什么明确了,还要注意怎样做。微软要求员工参照公司的胜任能力要求和团队对各员工的特定要求。

(4)至于员工职业生涯成长的目标和计划要在哪里留记录和追踪,微软是用职业发展指南针网站,也是微软员工年度考核网站的一部分。

(5)自己的直接上司应该对帮助员工职业生涯成长负很大责任。虽然员工自己要对个人的成长计划目标明确和积极努力,但还需要自己的直接上司(manager)的指导、支持和帮助。

精选阅读

程序员的职业生涯规划


摘要:让我们听IBM大中华区总架构师寇卫东话说程序员的职业生涯。有一些年轻的程序员向我咨询,将来的路应该怎么走?俗话说,条条大路通罗马。不同的路都能走向成功。到底选哪条路,取决于自己的兴趣。可能有程序员会问:如果还没找到自己的兴趣怎么办?我的建议是多尝试,努力做,这是职业生涯的必经之路。当你积累了一定的技术和经验之后,就会面临多种选择。选择哪条路,因人而异。

如果对某一种或几种技术非常感兴趣,并且能够持续钻研,经过一定时期的积累,你可以逐渐成长为专家级程序员。专家级程序员对于所掌握的专业技术的熟练程度非一般程序员能及,各类常见编程问题在他们手中都能迎刃而解,可以说这类专家越老越值钱但是这类专家也有一定的风险性:随着经验的增加和年龄的增长,这些人的工资会越来越高,当公司改变技术路线而不再需要专家级程序员所掌握的专业技术时,或者想降低做事的成本,他们就可能面临失业或者另找工作的局面。

资深培训专家也是个不错的发展方向。成为培训专家,不仅需要深厚的技术功底,同时还要具备优秀的沟通和表达能力,因为他们的主要工作不再是研发某种技术,而是传播技术知识。这条路很宽,有一些优秀的技术培训师除了担任本职工作,还会兼职到大学里讲课。虽然培训专家的技术可能达不到专家程序员的水平,但是工作内容相对更为丰富,接触的人也更多。

成为公司的技术总监是很多程序员的梦想。这条路线是从初级程序员成长为高级程序员之后,以做项目为工作重点,进而发展成项目经理、开发经理,最终成为技术总监甚至公司副总裁。这些程序员走的是技术管理路线,从做项目开始,逐渐积累管理经验,然后成长为优秀的技术管理者。技术总监在公司甚至技术界的影响力非同一般,对于那些有志于成为公司领导层的程序员,是个很大的诱惑。但是权力大、管的人多,就意味着更大的压力,技术总监不仅要保持对新技术的敏感,还要抽出精力做管理。比起成为纯技术专家,这条路也许更为艰难。

还有一些程序员职业发展的终点是总架构师、总设计师。这类程序员的兴趣,不是某种特定的技术,而是偏重对软件产品或者软件应用项目的设计。如果将软件项目开发团队比作一个乐队,那么程序员就相当于一名乐手(比如小提琴手、长笛手等),他们负责将自己的乐器演奏好;项目经理是乐队指挥,负责指挥和协调这个乐队的配合;架构师则相当于作曲家。从入门的架构师开始,逐渐成为资深架构师乃至总架构师。如同历史上伟大的作曲家,杰出的架构师能够在各种软件中谱写出旋律优美的曲子。

另外一些程序员心怀创业的理想,等到自己有了一定的技术积累,再掌握一些市场需求以及管理方法,他们会开始创业之路。一旦成功,这类人的影响力会非常大,像Google和雅虎的创始人,都是技术创业的成功典范。但是这条路也是最艰辛的,有句话叫做不当家不知柴米贵不亲自创业的人也很难体会它的艰辛。创业涉及方方面面,稍有差池就会功亏一篑,投身创业的程序员并不少,但是真正能成功的少之又少。踏上这条路不仅需要过人的勇气和魄力,更需要坚韧不拔的毅力,以及深度的商业智慧,再加上市场机会,才能够赢到最后。

很多程序员会走上技术支持路线,进而发展成为精通业务的技术和行业咨询专家。这类程序员会在成为高级程序员之后加入销售团队,直接面对客户,负责技术层面的问题。如果对某一行业(比如银行、电信)非常熟悉,久而久之,就成为精通这个行业技术的专家;如果对于某一类解决方案(比如ERP、CRM、SCM)非常擅长,就可以发展成为跨行业的技术专家。

还有一部分程序员会成为IT专栏作家和自由职业者。这些人通常对写作比较感兴趣,文字表达能力也不错,他们会将自己从事技术工作的内容或心得写出来,然后发表文章赚取稿费。只要对技术足够精通,这类人是很受杂志欢迎的。在北美还有一种自由职业者叫做合同工,就是不定期的承接项目,在项目开始前签订协议,项目完成后结束合作。虽然这种职业目前在中国还不太多,但是其自由性对于很多程序员来讲,也非常有吸引力。

上文提及的若干条路,程序员可以根据自己的兴趣进行选择,但是一般来说,无论走哪条路,都有一个前提条件:从初级程序员进阶为高级程序员。因为在这之前,你甚至没有选择的机会。从初级进阶到高级,通常需要2~5年的时间,因个人素质而异。大家都说,程序员要耐得住寂寞和枯燥,年轻的程序员更要克服浮躁的心态。在职业生涯的起步阶段,很多人总会摸不着头脑,这时一定要静下心来,多向资深程序员求教,慢慢熟悉技术、熟悉开发流程和行业。有时你会感觉掉进了一个知识海洋,身边全是陌生的事物,很难抓住。所以就更要四处探路,逐渐寻找到方向,在寻找中进步。

成功进阶为高级程序员,也并不意味着前途一片光明。如果说从初级到高级需要的是学习,那么从高级到专家,需要的是不断地尝试和坚持。比起前一个阶段,这个过程更为漫长,通常需要5~8年。在这期间,因为有了之前的积累,并且已经取得一定的成就,人会更加自信,同时也会更加彷徨,有一个问题会时常盘旋在脑中:将来的路到底要怎么走?这时就可以利用自己所积累的资源,多做一些尝试,尝试不同角色、不同的项目,与不同的客户打交道,时间长了,自然会找到最适合自己的发展方向。

总结起来,初级程序员和高级程序员时期,都属于职业生涯发展的第一阶段,我们可以称之为黄金时期。这阶段程序员的年龄在20~35岁之间,因为年轻,所以更善于学习,而且体力充沛,很多走过这个阶段的程序员有过通宵工作的经历。在这个时期,你有大把的时间学习提高,为将来的事业打下坚实的基础。而一旦超过了30岁,无论从体力还是精神上,都会有所改变,从30~40岁是转型时期。这时的程序员(很多人已经不再编程)已经明确了自己的发展方向,并且向着目标努力,让自己有所建树。40~60岁是专家时期,至此,一名优秀的程序员会彻底实现破茧成蝶的愿望,成长为专家。

程序员的职业很精彩,同时也很艰苦。享受高工资,掌握最新的技术,有可能成为创业成功的富豪,甚至有机会改变人类的生活方式(例如互联网浏览器的开发、电子商务的应用、手机短信等)这就是别人眼中程序员的生活,也许正因此,每年都会有很多新人加入这个庞大的队伍,体验向往已久的精彩生活。但是大多数人却忽略了光鲜背后的艰辛,高工资的代价是工作强度高,学习新技术的代价是工作压力大,成为富豪的代价是心力交瘁,而若想改变人类的生活方式,那就要耐得住日复一日的枯燥和寂寞。酸甜苦辣都要自己品尝,程序员的发展道路有很多条,就看你怎么选。

走出围城 程序员职业生涯规划[4]


职业规划怎么写,相信很多朋友们对这个问题很感兴趣,下面给大家介绍一下。第一部分,前言即总论;第二部分,自我分析,包括业余爱好、性格、价值观、专业技能等;

5.天赋,特质每个人的大脑区域中,都有一个最佳潜能区我们可以寻找、发掘、把握的命运主题。如,在学校读书时我们就发现有些同学语文很好,而数学总不行,有些则相反。有些人运动天赋和动作技能天生就很棒,而有些人很笨拙,怎么调教都投篮不准。这就是我们与生俱来的智力结构特质。

其实,绝大多数人受到过命运的困扰:不管原来信不信,经过在社会上的摸爬打滚之后,都有点点信,只不过很多人知道不可以屈服于所谓的命运,所以更强调自己的努力,正所谓七分人事三分天,就是这个道理。

是的,当你明白自己的优势和劣势之后,你才拥有理智、清醒的头脑:这时你会认识到,不是每个人都会成为自己希望中的样子,只有正确的定位自己,才能成功。不是每个人都适合做将军,不是每个人都适合做总统,不是每个人都适合做老板。这已经是谁都明白的事实。

最佳潜能区决定你可能作得优秀和卓越的领域。努力不一定有结果,努力可以做得很好,但如果不是自己的潜能所在,不能做到卓越。如,大音乐家贝多芬再努力,恐怕也不可能成为优秀的拳击手。

A、角色定位

过去职场上存在太多的理论书籍和培训,引导我们进行专业定位、职业定位、行业定位或职务定位,他们都没有错,但都是一些片面的,或者表面的功夫,因此导致了很多人全力以赴还是未能成功。因为他们忽略了更加本质的内容:七分人事的努力是否符合自己的三分天!因此,从现在开始,我们必须从专业定位、职业定位、行业定位、职务定位观念向角色定位观念转变:在团队中,在公司、在社会,在生活圈周围,你正在、你希望、你可以充当什么角色?他们必须是符合你三分天的角色。

B、行为转变

a、从三分天出发,从自己拥有的优势和劣势出发,定位自己的角色,不要做不切实际的梦想。定位原理符合社会分工的规律。最佳潜能区成为主要开发区,但如果某一缺点成为屏障,要全力清除它。而某些命中注定、不能改变的劣势,我们在做自我规划的时候,要努力回避它。例如,你对音乐有非常优秀的感觉、理解和把握能力,但是你天生声带有问题,那么,这不是缺点而是劣势,你就千万别梦想做个歌唱家,否则,跟随你一生的只有不断的失败和打击。但是,你可以努力于成为一个作曲家、演奏家、音乐家。

b、从不断努力改变自己的不足向发挥自己的三分天(80%精力发挥优势,20%精力投入于改变缺点,记住:千万不要主次颠倒!)转变行为。过去,很多成功学的理论和职业机构的专业培训,都告诉你:你没有成功是因为有哪些缺点、劣势,从现开始,你必须按我教你的方法改变自己的缺点和劣势,于是你就能成功。而当你没有成功时,你并没有认识到他在误导你,因为方法是正确的。可是,这正是可悲的地方方法是正确的,可是方向却是南辕北辙!就如你感冒了,培训师给你的不是清凉茶,而是人参和鹿茸而全世界总以为那是好东西!

c、更加可悲的时,当你坚持了很久没有成功,而放弃努力时(其实是方向不符合自己而倍受挫折,最后自我保护的一种行为),你总是对他们自圆其说的结论深信不疑:你没有成功,是因为你不能坚持!是的,因为你放弃了。看上去似乎确是如此!于是,成功学的大师们使得你不再怨天尤人,但却变成开始埋怨自己自己不努力啊,自己不能坚持啊,怪谁呢!就是因为这样,我才不能成功的,假设我努力,我会成功的!于是,慢慢的你成为阿Q.虽然你不能走阳光大道,但你本来可以走乡间小路,可是伟大的成功学却把你赶进死胡同!伟大的成功学就这样扼杀了你的成功!

d、成功角色定位的核心:不可代替性。通过对数百名成功人士的跟踪研究发现,他们的成功,都有一个共同的特点,就是在某个时段某些方面某个范围内能作到不可代替。不管他们是来自大企业的老板、成功的政治人士、还是市井里做豆腐做得名声远播的档口小老板,都具备某种程度某种范围某一时间内的不可代替。正所谓三百六十行,行行出状元。因此,无论你处于哪一职位,哪一行,只要适合你的潜能,你就应尽力做到卓越,做到不可代替,成为状元。而不要将不符合你三分天的职位定位成目标。不可代替性要求在自己的角色定位上出类拔萃。

走出围城 程序员职业生涯规划[6]


错误用的原因:

a. 金字塔尖只有一块金子如果公司告诉你,为每一位员工提供广阔的发展空间,那只是一个和老天是公平的一样的政治谎言;如果你认为这句话的意思是可以升职,那你就是具有片面的理解和错误的思想你应该清醒的知道,一批员工只有一、二人最终获得这个空间。

正确的意思是:空间可能是你能力、潜力的空间,不是职位空间。而对于职位而言,公司提供的只能是机会(且绝大多数公司的机会不是表面标榜的对每个人平等的),而不是空间。

b. 条条道路通罗马现代社会的一切都是以变应变。现代人力资源管理的特点已经从追求终身的就业变成追求终生的就业能力。独木桥如果不符合自己的三分天,就成了奈何桥!

4、从我自身的经验向大家谈职业规划的误区与正确方向:

误区:升迁构成成功职业生涯的一部分,所有的工作(学习)是为了一份成功的人生简历。

错误原因:为了给别人看自己的成功,在乎别人的评价。

正确:绩效或岗位成就才是成功职业生涯的标志;快乐的工作着并充满成就(或有收获感、充实感)是成功的职业生涯。

正确理由:为自己而生活。在乎自己的感受。

围城有那么一句话里面的想出去,外面的想进来,程序员如此,其它的估计也是这样吧。

走出围城 程序员职业生涯规划[5]


职业规划是对职业生涯乃至人生计划的过程,职业生涯规划的好坏可能将影响整个生命历程。感谢您阅读《走出围城 程序员职业生涯规划[5]》内容,职场资讯网小编向您推荐一些职业规划知识,欢迎参考,希望能帮到你。

对自己的职业生涯进行剖析

1、职业生涯分解

职:职务、职位? 业:行业、专业 、公司? 生:生计,本质就是收入。核心主题? 涯:时间、时段,是个附加主题。

这种看似荒谬的拆字释义法,对职业生涯有一个独特无二的定义,就是分解成职业生涯来解释。如,你是为一个更高的职位去作选择,还是只定位于某种职务的工作兴趣?你在择业时是注重先选行业,还是选专业,还是选公司?三者往往不是统一的,选对兴趣的行业,未必符合自己专业,有符合自己专业和兴趣的职位的公司,未必是你要去的公司类型反之也然。而公司要素中,去大公司(外资,国企)还是小公司(私企),也常是选择的矛盾。而收入,就绝对是一个核心问题,哪怕你的选择主要是为了去大公司发展自己某种能力,多少工资无所谓,但起码你内心一定有个底线,有个增加收入的计划和欲望(也许你自问:发展某种能力是为了什么?就会发现,最后的答案,都和金钱有一定关系)。而时间,常常是自我规划中容易被忽略的因素,却是个重要的主题因素。因为我们发现第一章提到的五个迷茫的问题,自己的现状没有变化,事实就是因为没有随时间变动而变得更好。你必须首先确定:你愿意、你计划在某一公司、某一行业、某一领域、某一职位干多久,才能规划所有的行动计划和下一步的方向。很多求职者在这些问题上往往是模糊的、或无法准确选择的,因为不知道选择的正确依据是什么。

2、来自马拉松的恐惧

如果你的职业生涯的任何方面没有随时间发生变化,那就是一场恐怖的马拉松,要消除恐怖,要理智的从东家挑水转到西家挑水,自己必须清晰回答10个问题:

1) 现在的工作一开始就是这么无聊吗?(答不是,就可能是自身有问题,如能力进步停滞)

2) 同样职位的同事也认为这份工作无趣吗?(如果不是,可能是自己态度问题;是,则公司HR管理有问题)

3) 在工作上是否仍有学习与成长的空间?(有则不要轻易跳槽)

 4) 如果重新选择职务,自己最想做什么工作?(关键问题:是兴趣和三分天所在还是为了新鲜感?)

5) 留在原来的公司,有换跑道的可能吗?(有,则不要轻易跳槽,但即使有,也要考虑是否有利于自己核心能力的发展)

6) 跳槽到其它公司,有换跑道的可能吗?(这种可能不是概率上的;而是基于对自己能力的认识)

7) 朋友转换跑道成功的最大原因是什么?(当局者迷,可以作为参照物)

8) 自己有转换跑道的本钱(专长或兴趣)吗? (核心问题,答案否定则不要考虑)

9) 如果有进修机会,最希望学什么?为什么?(补自己的不足,更要强化自己能力上的优秀领域)

10) 自己想象中的一段时期(1、3、10年)后是什么样子?(未来的定位)

而这些问题的核心,就是是否清楚选择将会付出哪些机会成本,以及选择的资本能力如何。喜新厌旧是人类的好奇心的本能;而选择是恐惧的原因,人们会因为害怕机会成本的付出而不敢选择。

天下无不散的宴席,在跳槽的选择上,你必须清楚10个问题的答案,谋定而动。

3、错误的传统职业生涯路线

但谋定而动之前,还要清楚,很多流行的职业生涯的观念是错误的。目前社会上流行两种职业生涯路线,笔者认为都是错误的,因为很多非正确的跳槽现象,及多数人职业生涯的失败,都和这两种观念的误导有关:

向金字塔顶攀(职位、资历)? 向独木桥前进(与某一专业、经验或背景最直接联系的单一方向)

.Net程序员如何快速成长之我见[1]


在面试一些新程序员的时候,当问他为什么选择.net方向时,经常听到一些这样的回答:记得曾经我的老师对我们说,当你在开发语言和工具方面不知道怎么选择的时候,那么你只要跟着微软走就行了。所以最终他选择了.net。我想大家都曾有过类似的经历。当经历过数年之后,一些人在.net的某方面成为了专家,有些人精通数据库方面,有些人精通web界面设计,有些人精通系统架构。还有一些人是什么都会,但不管哪一方面都算不上精通。当然还有另一些人,他们没有选择.net,他们选择了java,在若干年之后,他们说:java程序系统比.net系统更稳定之类。既然大家都是.net阵营,暂且对他们不予讨论。

结合自己的亲身经历,对准备成为。net程序员和已经成为。net程序员的新人一些快速成长建议:

1.选择研究方向后不要动摇

对.net好还是java好的问题,我一向的观点是:它们都好,它们都是软件开发领域的杰出工具,它们都能够做出非常出色的系统。评价一个系统好与不好的标准不在于开发语言,而在于系统本身,更多地在于这个系统的开发者-程序员本身。只要你是一个出色的程序员,你完全可以用你擅长的开发语言开发出高质量的系统,而不管这种开发语言是.net还是java。而如果你过度地徘徊在研究它们到底谁更好的时候,甚至不断地在二者之间辗转的时候,你损失的将是宝贵的时间。

2.尽量缩小研究范围

.net只是一个大方向,你应尽量将自己的研究范围缩小,比如专注于数据库,专注于xml方面,专注于ajax,只要你专注任何一个区域深入研究,当你成为专家之后,都不会愁饭吃。反之如果你什么都会,而没有一样真正精通,那么你可能永远只能做一个普通程序员。

3.找到正确的入门方法

不管做什么事,方法很重要。特别是入门时的方法。正确的入门方法将大大加快你学习的进度。了解语言本身和前提技术是最先要做的事情,比如你选择c#方向的asp.net,那么你必须先学习c#基础语法,和asp.net基础知识,并实际写小程序测试你学习的成果。当学会基本语法后马上找到asp.net的官方入门指导。微软做得很好的一个地方就是他的帮助系统做得很好。新人容易入门,建议首先从入门教程开始,这个东西就在你的机子上,在Framework SDK的菜单里面。强烈建议把这个教程全部学会。

4.多看别人的成果(源代码)

这个很重要,如果你是一个团队的新成员,那么看他们写好的代码将是非常好的学习途径,因为那些都是成功的代码经验。如果你还没有加入团队,是自学,那么找一个好的学习网站,多看上面的源代码也是很好的方式。另外一个强烈推荐的途径:仔细研究微软的.net StarterKit,个人认为这是.net入门学习途中最大的收获。

5.敢于接受新项目挑战,敢于尝试

主动承担公司的开发任务,敢于在项目中尝试你最新的研究成果将对你自身技术水平提高带来非常大的帮助。记得当初我在做一个建站平台项目时有过这样的经历,之前公司开发的项目大都在原有技术积累下面用成型的框架做开发,那时我也正在学习asp.net,不过那个项目我是主程序员,因此在开发上有很大自主性。于是1.0时我尝试将所有用户文章保存在web服务器的xml文件里,而不是像传统项目那样保存在数据库里,以希望减少web服务器和db服务器之间的数据传输。结果1.0系统实际运行时确实达到了我的目的,虽然随着数据量的大量增加,最终导致了IO瓶颈。但通过后来对IO瓶颈的优化解决,我在文件系统、服务器进程、xml应用、代码规范和性能优化等方面学到了很多东西,倘若当初按原来的模式写程序,将错过学习这些知识的很好机会。

6.不断推翻自己,敢于重构

这是对程序质量的要求,我认为只有不断地优化和改造自己的程序代码,才能最终写出高质量的程序,做出高质量的系统,最终使自己的技术水平提高。通常我会把实现一个功能的代码量作为衡量代码质量的标准,代码越少,越精简,同时又具有良好的可读性,就越理想。重构需要几个前提:首先是项目时间允许,然后是确实找到更好的代码组织逻辑,如一种很好的结构模式,更合理的面向对象调用方式等等。只要找到更好的解决办法,那么勇敢地推翻原来的程序框架,重构它,经过不断地重构后,有一天你回过头去看之前自己写的程序时会有一个感叹:哇,怎么以前我的程序写的这么烂阿。

7.跟上技术更新的脚步

软件技术更新速度有时真的让人很郁闷,经常听人说,刚学会.net1.0,马上就出了1.1,1.1刚完成一两个项目,又出了2.0,用2.0不到一年已经出了3.5,但现实就是这样,你必须得跟上脚步,当使用asp.net的时候,你就不能再像以前用asp那样去写程序,当使用.net2.0的时候,你要敢于使用masterpage,skin去代替原来的usercontrol模式,原来的网站皮肤实现模式。而现在出3.5了,你必须马上学习vs2008,学习Silverlight。只有跟得上技术更新的步伐,你才永远保持自己的技术领先地位。

以上几点建议,希望能给一些新加入的.net程序员们一些参考。

何谓程序员?何谓中国的程序员?


程序员,曾经是很多人尤其是计算机初学者为之崇尚的一个职业,仿佛就是理想、激情和事业的象征,从此就开始了IT白领人生。计算机技术发展之初,几乎就是一个个人英雄主义时代。一个天才的程序员,几乎就可以主宰一个计算机时代,创造出无数奇迹和梦想。

今天,计算机技术的发展日新月异,技术朝着愈加复杂和简单的两个看似矛盾其实一致的方向发展。计算机技术越加普及,无数非计算机专业的人群,出于爱好或者生存的需要,也加入了这个程序开发大军,并且都称之为程序员。

软件技术的发展,已经进入了一个大分工、大整合的时代,由此导致了软件开发工作的分层和分类越加细致复杂,同为程序员,彼此之间工作的技术含量可以说有天壤之别。系统软件、应用软件,是一个大的分水岭,几乎大多数程序员,都在应用软件这个层次进行开发,国内的程序员更是几乎全部如此。

既然是应用软件,就必然要和实际应用结合,而实际应用,是非常复杂多变的,尤其是具有中国特色的国内应用。于是乎,大多数程序员都在为开发应用层面的软件忙得不亦乐乎,财务软件、ERP、CRM、OA等等,几乎成了国内软件开发的主流方向,更不用说电信、石化、铁路、电力等具体行业应用软件的开发了,这些早已被称为项目了。国外的应用软件,除了以上业务应用之外,尚且还有像CAD、3D等专业领用的软件,具有一定的核心技术。

很多工作了多年的程序员们,在回首往事的时候突然发现,自己依然是一个辛苦的打工者,一个IT行业的苦力。反思一下,我们这些自认为程序员的工作者,其实是在核心技术的外围做一些表面工作,和那些非软件开发人员相比,我们觉得自己有技术,其实我们到底掌握了多少核心技术呢?现在的很多程序员,连数据结构、编译原理、操作系统等这些基本的知识都掌握得模棱两可,天天跟着老外的屁股后面追捧所谓的新技术、新框架。其实,又有多少是我们自己的呢?作为JAVA程序员,经常听到很多人自称精通Spring、Struts、Hibernate等主流框架,并有大型项目的开发经验,其实我们只不过比那些初学者多干了几年,使用这些框架更加熟练而已。国内软件行业的面试经常有此类现象,一个面试者可能这次面试不合格,但是他回去看一下书之后,再来面试,很可能就通过了。为什么?因为我们的面试太初级,太表象化。

我们经常接触IBM、微软等公司的面试,他们一般情况下是不会考核面试者具体掌握了什么框架、什么语言的,一般都是考核的面试者最基本的逻辑思维能力和分析判断能力。这也说明了,同为程序员,其间的差别是如此之大。

作为一名程序员,尤其是国内的程序员,应该对自己有一个清醒的认识,不要被表面的感觉所迷惑。到了这个时代,不是说程序员已经失去了光彩,而是我们所从事的层次,技术门槛已经大大降低,很多人处于同质化竞争。

怎么办?很多人说软件行业是个辛苦活,国内的很多软件公司更把程序员当牲口使用。其实,根本上还是怪我们自己没有很好的反思和调整。一方面,如果对技术真的有浓厚兴趣和激情,那就不妨向软件的底层核心技术迈进,另一方面,如果觉得自己真的缺乏这方面的潜力,那就努力适应国内环境,实现技术与应用的完美结合,争取向公司的中高层发展,如果不给与机会,那就自己创业,选择好技术和市场的切入点。

此外,一名优秀的程序员,一定不能是一个唯技术论者,如果持这样的观点,即使专心做个技术专家,也会存在发展障碍。微软的例子,sun公司的例子,都生动地说明了技术与市场的辩证关系。

当然,每个人的成败观是不一样的。如果始终把技术追求放在首位,追求技术完美的境界,并以此为乐,也未尝不是一道美丽的风景。

程序员你真的只是程序员吗[1]


你是不是感觉标题有点矛盾啊,是啊,程序员当然就只是程序员而已嘛,还会有其他什么吗?

No,No,No,如果你以前是如此认为的,那看完这篇文章后,请从此打消这个念头,因为你要改变成一个不一样的程序员(怎么还是程序员?)

虽然我工作经验也就6年左右,但经历了很多,也自己创业过,也是从一个初级程序员走起,因为看的比较多了,某些东西也普遍存在着很多程序员身上,希望自己的经验能帮助你们。

当刚踏入程序员这条路的时候,有幸为一家公司开发一个大型的电子商务网站,因为这篇领域当时还算刚刚起步,自己的编程能力还不太好,所以做起来就比较吃力,每天重复着做完PM给的工作,但是做了大概几个星期,我发觉某些地方真的不合理,但自己又仅仅是一个程序员而已,怎么办呢?我还是按照PM的任务一步一步来做,私下里我用了大量的时间去尝试着我的做法,在接下来的几个星期,我试着跟我的PM进行沟通,他也发觉不错,所以一并写了方案提交给上级领导,很好的是,我们的领导发觉建议还不错,所以改变了原先的策略,对我们的网站原先的设计进行了彻底的推翻,一套新的理念就此诞生了。

这只是一个小例子,并不是炫耀自己的能力,我只是想说,程序员,你其实不仅仅是worker,更应该是Ideaer。当你选择程序员这条路时,如果你仅仅为了工作而选择的,我想你的人生真的很灰暗,为什么这么说呢?我面试过很多人,大多都是从培训中心出来的,虽然我也是从那里走出来的,不过我当时是为了学习编程而去培训,但现在更多的人会为了工作而去培训。其实如果你是真正的选择程序员这条路,我想你的思维能力一定不错,因为一般程序员大多是理科出生,理科靠的就是你的思维能力,在某些时候或许你的思维还不够敏捷,但我知道,每个人在接受了一段时间的工作后,就会产生各类的想法,或许某个想法你会改变你公司的命运,可为什么提出观点的人就寥寥无几呢?

我想可能是因为性格吧,因为很多程序员都是内向型,因为我们需要花一定的时间,去沉醉在代码中,因为这是一个奇妙的世界,无法自拔,所以很多时候就忽略了沟通,因为我们打交道最多的是abcd。如果你正是如此,希望你快点走出来吧,分清楚何时沉醉,何时交流才是最好的。我的偶像-唐骏,我看过他的访谈,他在大学时还是一个不会沟通的人,只是偏执于技术,而且和大多人一样,都会觉得自己什么都会,什么都行,是个天才,但在他大三的时候,他意识到了错误,花了几年的时间去学习交流、沟通,在宁愿委屈自己进入微软做程序员,再到无数次发意见给Bill,一步一步成就了这位打工皇帝。

所以,我们每个程序员要做的是,技术和沟通并行提高。在唐骏的话中,我会学到很多东西,他能从容应对每一次挑战,当时有幸成为唐骏的下属,见证过他的能力,虽然他当时只是个技术总监,但他的想法、创意给盛大带来了无比的利益,我不得不佩服他的胆大,不得不佩服他的能力。从他身上还学到了专一,其实很多程序员会在编程的道路上三心二意,这是很正常的,不过我相信一段时间以后你会学会专一的,因为程序真的很美,带来的不仅仅是工作和薪资。

我这里又不得不批判一些年轻程序员了,他们仅仅看中的是工资、福利等,没错,这是考虑工作的一点,但你要知道,有些时候,你第一点的工资,或许你会学到更多的东西呢?我经历过很多,经历过1年工资翻几番,又经历过折一倍,又经历过小公司,又经历过大公司,各种各样看的实在是很多,但我不会说我自己半途而废,因为每次我会把事情做的觉得自己可以了,我才会选择更好的发展前景。我面试过一些人,工作也就2,3年,做过的东西也很多偏向于OA、ERM等项目,就觉得自己很了不起了,工资也是漫天要价,可真正面谈的时候,我才得知,你仅仅是其中的一个小模块,但当我问其项目的整个运维的时候,就会楞个半天,最后来一句,这个模块不是我负责的,敷衍了事。那好,我问你自己负责的模块,如何具体写的,用了何种方式等,基本都会回答,三层架构,什么什么,My god 三层架构是你一个模块就能体现的吗?那好,既然你说三层,何为三层,三层的优点,缺点在哪里?诶~~~~~前几天首页那篇批判大学生的文章,我觉得写的太好了,你们这是在沉醉吗?如果你不喜欢,你为什么非要选择程序员这条路呢?

程序员的成长 我的Borland五年


5年就这么过去了吗? 这是笔者和许多朋友共同的回答。可令人诡谲的是当笔者试图回想5年前流行的IT技术是什么时却一时答不出来,矛盾点是什么?如果时间过的很快的话,那么为什么我们无法想起当时的IT技术? 其实会有这样的情形一点也不奇怪,因为这5年来IT技术改变和进步的幅度是既深且广。

回头翻开笔者在数年前于《Borland传奇》后半部对于IT演进趋势的看法,笔者精确的提出了对象导向和Modeling技术将平民化和Web Service穿透平台的能力。不过笔者没有预料到软件工程和测试方法对于开发模式会有着这么迅速的影响力。

看看现今的IDE,几乎没有IDE不受软件工程和测试方法的影响,愈来愈多的IDE都提供了一种或是数种软件工程以及测试方法。最近再加上CMMI的影响,未来的开发工具(已经不再是单纯的IDE了)将继续融入CMMI的功能,而且一旦开发工具开始提供协助CMMI Level 3以上的功能时,代表未来的开发环境将可以把开发人员的开发效率,开发质量,开发方法都加以数量化,到时开发人员将必须进一步的提升自己的精致化开发能力,否则将很容易的在下一代开发环境中被现出原型。

软件工程和测试方法的进步也将让触发两种改变,那就是设计模型和设计架构即将像现在的程序代码一样能够被稽核和数量化,而测试计划也将提前在设计阶段即能够执行设计,模型和架构的测试。这个变化将会对设计师和架构师产生即巨大的冲击。

主流程序语言的语法和语意愈来愈像彼此一点都不奇怪,重要的是要了解程序语言本身的演变。目前宣告程序语言(Declaration Language)在。NET的主导下也逐渐的被Java所接受,而在程序语言本身融入XML原生的功能也由Java领军C#在后追赶。因此我们可以预料这两个趋势在未来数年之内会左右程序语言的发展。写到这里就不得不佩服Borland前首席科学家Chuck的睿智,Chuck在数件前即在Borland内部提出了Apollo计划,也就是目前OR-Mapping等技术的前身观念,而在2003年左右Chuck也在Borland内部着手了Z程序语言的计划,而Z就准备使用XML的数据型态做为Z的原生数据型态,并且执行流程和执行概念就以Web Service的架构为设计中心,而这正是下一代Java和C#想要实作出来的技术。更重要的是程序语言在这些新技术需求的刺激之下,已经逐渐成为一个技术融合的核心,未来当特定的IT技术成为IT的必要应用时,这个特定的IT技术就会慢慢融入程序语言的演化并且成为程序语言的核心功能。简单的说,程序语言本身将逐渐成为吞噬IT技术的多形机制。

OR-Mapping技术和对象查询语言也将会是接下来IT的重点技术,看看Hibernate的盛行,OCL的影响力日益加大,MS也会推出Object Space技术,连EJB 3.0都深受影响之下,这两个技术将成为左右数据存取技术和对象对映技术的主要力量。

那么我们应该如何面对下一个IT的5年呢? 其实答案也不难,那就是体认开发方法和开发流程是比开发技术来得重要。尽快找到一个适合你自己或是你的团队的软件工程方法,不管是XP,RUP,MDA,FDD或是任何的方法,使用正确的开发方法提升开发效率和开发质量是目前重要的工作。接着看看你着重的IT领域是什么,再找出这个IT领域背后的主导力量,巧妙的结合开发方法和技术趋势主导力量,应该可以让你立于不败之地。此外对于每一个新的技术,语言,IT应用等等思索它们形成的背后原因,想想这些背后的原因会对你的事业有什么影响,如此一来就不会穷于应付层出不穷的IT技术。当然,要看未来的5年您还是得先回首看看自己脚下的基本功打好了没有,否则一切都是空谈。

以上《程序员个人职业生涯成长公式》一文,由编辑精心撰写而成,希望对您的职业规划有所帮助,更多精彩请访问“程序员个人简历模板”专题!