`

<转>话说程序员的职业生涯

阅读更多

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

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

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

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

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

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

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

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

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

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

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

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

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/programmer_editor/archive/2009/05/07/4159246.aspx

分享到:
评论

相关推荐

    <em> <i> <dfn>标签的区别

    &lt;em&gt; &lt;i&gt; &lt;dfn&gt;标签的区别

    软件思想-- 林锐

    第一章 软件工程基本...程序员与程序经理 &lt;br&gt;2.1 了解程序员&lt;br&gt;2.2 了解程序经理&lt;br&gt;2.3 程序员升为经理后是否还要编程&lt;br&gt;2.4 经理与技术队伍的建设&lt;br&gt;2.5 向错误与失败学习&lt;br&gt;2.6 提高综合素责&lt;br&gt;2.7 小结&lt;br&gt;

    C#程序员参考手册(pdf)

    C#程序员参考手册 &lt;br&gt;作者:Grant Palmer 著,康博 译 出版社:清华大学出版社 出版时间:2002年09月第1章 编译和程序结构&lt;br&gt;第2章 C#类型系统&lt;br&gt;第3章 运算符&lt;br&gt;第4章 程序流程和异常处理&lt;br&gt;第5章 局部变量&lt;br...

    程序员面试攻略2

    程序员面试攻略&lt;br&gt;【目录】&lt;br&gt;&lt;br&gt;前言&lt;br&gt;第1章 求职过程&lt;br&gt;第2章 程序设计面试题的解答思路&lt;br&gt;第3章 链表&lt;br&gt;第4章 树和图&lt;br&gt;第5章 数组与字符串&lt;br&gt;第6章 递归算法&lt;br&gt;第7章 其他程序设计问题&lt;br&gt;第8章 与...

    java认证考试资料

    ..&lt;br&gt;&lt;br&gt;【目录信息】&lt;br&gt;第一部分 准备程序员考试 &lt;br&gt;第1章 程序员考试指南 1 &lt;br&gt;1.1 程序员考试的形式是什么 2 &lt;br&gt;1.2 考试包含哪些内容 2 &lt;br&gt;1.2.1 声明和访问控制 2 &lt;br&gt;1.2.2 流控制和异常处理 2 &lt;br&gt;...

    Java2认证考试辅导资料

    ..&lt;br&gt;&lt;br&gt;【目录信息】&lt;br&gt;第一部分 准备程序员考试 &lt;br&gt;第1章 程序员考试指南 1 &lt;br&gt;1.1 程序员考试的形式是什么 2 &lt;br&gt;1.2 考试包含哪些内容 2 &lt;br&gt;1.2.1 声明和访问控制 2 &lt;br&gt;1.2.2 流控制和异常处理 2 &lt;br&gt;...

    java认证考试辅导资料

    ..&lt;br&gt;&lt;br&gt;【目录信息】&lt;br&gt;第一部分 准备程序员考试 &lt;br&gt;第1章 程序员考试指南 1 &lt;br&gt;1.1 程序员考试的形式是什么 2 &lt;br&gt;1.2 考试包含哪些内容 2 &lt;br&gt;1.2.1 声明和访问控制 2 &lt;br&gt;1.2.2 流控制和异常处理 2 &lt;br&gt;...

    程序员修养 [评价可免费]

    &lt;br&gt;&lt;br&gt;四忌:强调客观,忽略自身&lt;br&gt;&lt;br&gt; 很多程序员都是在失败的时候强调客观因素,而优秀的程序员的程序员都是先反省自己。要明白自己缺陷,再努力去学习。没有人事事都做的成功,也没有人生来就什么会做。所以...

    简单的网页内容采集器(C#)

    &lt;br&gt;&lt;br&gt;&lt;br&gt;网页设置里面:&lt;br&gt;采集内容前后标记:&lt;br&gt;比如说都有 &lt;div id="title"&gt;xxx&lt;/div&gt;,如果我要采集xxx就写“&lt;div id="title"&gt;到&lt;/div&gt;”,意思,当然就是&lt;div id="title"&gt;到&lt;/div&gt;之间的内容啦。&lt;br&gt;&lt;br&gt;...

    程序员必备_HTML速查手册

    常见的元素包括`&lt;h1&gt;`到`&lt;h6&gt;`的标题,`&lt;a&gt;`链接,`&lt;img&gt;`图像,`&lt;div&gt;`分组元素,`&lt;ul&gt;`无序列表,`&lt;ol&gt;`有序列表,`&lt;li&gt;`列表项等。 三、HTML属性 HTML标签可以拥有属性,以提供额外的信息。比如,`&lt;a&gt;`标签的`...

    Delphi开发者资源社区 V1.0

    简介:&lt;br&gt; “Delphi开发者资源社区”源码 V1.0 &lt;br&gt; 左轻侯 &lt;br&gt; 2001.10.9 &lt;br&gt; &lt;br&gt; Email:onekey@163.com &lt;br&gt; 社区地址:http://delphi.mychangshu.com &lt;br&gt; 个人主页:http://onekey.yeah.net &lt;br&gt; &lt;br&gt; 本社区...

    阿诗玛代码工厂

    程序员不再是廉价的打字员.&lt;br&gt;&lt;br&gt;代码生成器的作用:&lt;br&gt;&lt;br&gt;将数据库表按照模板生成目标代码.&lt;br&gt;&lt;br&gt;特点:&lt;br&gt;&lt;br&gt;1,通用性强.目标代码可以是C#/JAVA/HTML/SQL等等任何您需要的文件.&lt;br&gt;&lt;br&gt;2,高度可定制.您可以...

    <程序员>电子杂志PDF

    6. **职场指南**:为程序员的职业规划提供指导,包括面试技巧、职业素养、团队协作等内容,帮助他们提升职业竞争力。 7. **书评与推荐**:推荐值得一读的技术书籍,提供书评和阅读建议,丰富读者的业余学习。 8. *...

    Java2+类库参考手册-pdf

    译 者 序&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt; Java是Sun公司推出的新型面向对象程序设计语言。它将面向对象、平台无关性、稳固性、安全性、多线程等诸多特性集于一身,为用户...&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt; 译 者&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt; 2000年5月&lt;br&gt;&lt;br&gt;

    indy10Tcp_Dome

    DelPhi2007 中 Indy 升级到了10 而其代码的操作方式也改了很多!&lt;br&gt;&lt;br&gt;很多网友 包括本人 也是在网络上...&lt;br&gt;作者 张辉 程序员代号 WJ008 个人网站 http://hi.baidu.com/wj354 &lt;br&gt;绝对是本人 自写自发的!&lt;br&gt;&lt;br&gt;

    JAVA / JSP 版网站内容管理系统

    1]: 不编程,做动态网站 要让网站设计师、美工也会做动&lt;br&gt;态网站,动态网站不再是程序员的专长;&lt;br&gt;&lt;br&gt; [目标 2]: 高扩展,插件式架构 系统基于Plug-in结构,所有模&lt;br&gt;块均插件化, 良好的二次开发接口; &lt;br&gt;...

    VB API 经典教程合集

    资料来源:http://www.mndsoft.com 枕善居VB.NET源码博客&lt;br&gt;如果 mndsoft 觉得我的...&lt;br&gt; 需要声明的是,这些资料应该都算是很老的了,但对于初学者也许比较有用,毕竟老一代程序员都是从这些资料中成为高手的,&lt;br&gt;

    软件工程思想

    &lt;br&gt;第二章“程序员与程序经理”;&lt;br&gt;第三章“项目计划与质量管理”;&lt;br&gt;第四章“可行性分析与需求分析”;&lt;br&gt;第五章“系统设计”;&lt;br&gt;第六章“C++ 面向对象程序设计”;&lt;br&gt;第七章“测试与改错”;&lt;br&gt;第八章...

    java程序员职业生涯规划.pdf

    java 程序员职业生涯规划 在 IT 行业中,java 程序员职业生涯规划是一个非常重要的课题。随着软件业的发展和技术的演进,程序员需要不斷学习和进步,以适应行业的需求和发展。然而,许多程序员在工作中会遇到迷茫和...

    清新的用户登陆与权限例子

    本程序综合了各大师的精华,并对初学都提供一个综合的答复,程序主要特点如下:&lt;BR&gt;一、屏蔽ACCESS菜单。&lt;BR&gt;二、帮助信息可在下次启动时不显示。&lt;BR&gt;三、打字及字体走动效果。&lt;BR&gt;四、密码只能由程序员设定,程序员...

Global site tag (gtag.js) - Google Analytics