编了12年的程序,国内国外四处奔波,从“三五个人,十来条枪”的小公司里的程序员一直做到500强企业的系统架构设计师、部门负责人,真是很多感慨。看到院子里大家热火朝天地讨论程序员的年龄和职业通道问题,终于也忍不住想和大家分享下我的一些体会,顺带为我的开发团队打打小广告。
我把我接触过的有经验的程序员分为三个层次,借用夫子的话来形容这三个层次就是:“而立”,“不惑”和“知天命”。
1.而立
这个层次的程序员,对技术的理解大多停留在技术的应用层面上。只重视去学习新的技术,不知道关注自己的代码和设计的质量。把技术的成长单纯的理解为知识的积累,而不是技能的成长。停留在这个层次的程序员往往感觉在从业两三年后技术就没有什么大的进步,甚至有人干了七、八年十年后居然会发出“编程不外乎拖拖控件,设置下框架,再写点逻辑”的感慨。这种程序员真是吃“青春饭”的,干到30来岁还是立不起来,丧失了对技术的热情,到了有家庭的负担,不能再和后生比体力的时候,就只能转行做所谓的“管理”,凭经验和人际关系混日子。要不就转去做点技术支持销售什么的。很不幸,我接触到的多数中国程序员都停滞在这个层次,分析起来,可能和中国社会的浮躁有很大关系。
2.不惑
这个层次的程序员,会自然的将面向对象、设计模式等设计技术应用于自己的代码中,认真考虑并重视设计与代码的质量问题,明白真正的“好程序”大概是怎么样的一个样子。这个阶段的程序员在每个项目都会有一些收获,技能会随着时间不断成长。 对于各种层出不穷的技术,他们不只知其然,还知其所以然,因而可以毫不吃力地掌握新的技术。处于不惑阶段的程序员不吃青春饭,他们价值会随着时间的增长而增长。 达到这个阶段的程序员要少很多,但我认为只要有适当的环境,或者能对技术保持一颗好奇和热情的心,勤于思考,踏踏实实地下功夫,任何人都能走到这个阶段。然而达到下一个阶段就要难得多了,光是努力是不行的,还需天分和积极的思考。
3.知天命
这个阶段的程序员,有丰富的设计经验。面向对象,设计模式等设计技术早已不是问题,达到“得模式而忘模式”的境界。他们所做的设计自然优雅,简洁流畅。编写的代码干净利落,表达力强,往往不需在代码行间写注释即可让人一看即懂。他们已经彻底理解了程序和程序所反映的客观世界之间的关系,总能找到适当的角度后用恰到好处的简洁设计将客观世界计算机化。掌握新技术对于达到“知天命”层次的程序员而言,就像呼吸般自然。他们不只理解新技术的原理,而且对一项技术出现的动机--也就是这项技术企图去解决的问题有深刻的理解,所以往往能够仅凭对新技术简单了解,就能正确决定在什么时候、怎么样去利用这个技术。达到“不惑”阶段的程序员在设计时会把重心放到怎么样完成目标上,而这达到“知天命”层次的程序员会去重点关注过度设计问题。简单来说,“不惑”基本的程序员主要精力放在“加法”上,而“知天命”级别的程序员主要精力会放在“减法”上。他们明白,设计的关键就在“取舍”二字上。到目前为止,我接触过的达到这个层次的程序员屈指可数,每一个都一定是他所在的团队的核心人物,而且如果他沟通能力足够,往往会自然成为团队中系统架构师的角色。知天命的程序员就像陈年普洱茶,越老越香,他们对设计中度的把握会越来越精准,越来越能够做到举重若轻。在大型项目或高难度项目中,他们能发挥普通程序员十几倍甚至几十倍价值。
“而立”,“不惑”和“知天命”这三个阶段虽然是夫子拿来形容年龄的,但在我这里和年龄完全没有关系。我见过很多都接近不惑之年还停留在“而立”阶段的程序员,也见过以仅仅弱冠之年便“知天命”的宝贵人才。
很不幸,目前国内的IT环境,注定在中国“知天命”的程序员就是凤毛麟角。要想达到“知天命”的境界,程序员除了一定的天赋之外,还必须有非常主动积极的态度和热情。这样的人在其它方面肯定也不会差到哪里。国内的很多公司依靠的是关系资源生存,技术的好坏作用不是很大;又或是软件开发理念落后,不给程序员充足的发展空间。所以这些程序员在达到“知天命”的境界之前很多都转去做管理或其它待遇更好的工作去了。
作为一个过来人,我一直希望为改变这种状态做些什么。目前我加入了一家有雄厚资金支持的创业公司,计划建立一个小而精的产品研发团队。如果你自认已经达到“不惑”的境界,而又不知道该如何在技术上取得突破的话,可以考虑下加入我的团队。我们公司目前还在昆明办公,在不久的将来会搬到发达地区。
我的招聘广告:http://www.cnblogs.com/woodhead/archive/2008/09/22/1295697.html
BTW:如果想要见识“知天命”级别的程序员的功力,可以仔细研究下例如log4net之类的成熟开源框架
------------------
有朋友在下面的留言中提到我过于局限到面向对象和设计模式等特定技术中,忽略了程序员还有分工的区别。我简单说明下我的观点:
我感觉软件技术可以分解为“知识性技术”和“技能性技术”两个层面(自己取得名字,可能不是很贴切)。例如驱动开发程序员对操作系统底层的了解、计算机图形开发人员对图形学的了解都算是“知识性技术”。而面向对象,设计模式之类的都算是“技能性技术”。每个程序员肯定是同时具备了上述两种技术才能编出实用的程序。
不同的开发方向,会对“知识性技术”有不同的要求;但无论什么开发方向,都必然对“技能性技术”有要求,系统越大越复杂、需求变化越快,对“技能性技术”的要求就越高。
我在上面讨论的对象是“技能性技术”,我认为不管你做的是什么方向,都必然要涉及到这方面的问题。
目前的软件开发工具绝大多数都是面向对象的,因而我把面向对象技术的修养作为评价的一个重要参考。如果你是做C或者汇编的程序员,大可不必在意我的标准。
另外我讨论的范围也不涉及开发管理,所以需求,过程控制等关键的开发因素不在我的范围内,我只是针对单纯的设计技术进行讨论。
分享到:
相关推荐
3. 三十而立:根据孔子的教导,男子在三十岁时应建立起稳定的职业和家庭,即“建功立业”。在古代,男性往往较早结婚生子,因此三十岁时理应有所成就。在现代社会,由于教育和职业发展的延长,许多人在三十岁时仍在...
三十而立三十而立三十而立三十而立三十而立三十而立三十而立三十而立
标题与描述中的“tuxedo tmadmin命令解释--三十而立”主要聚焦于Tuxedo系统中的tmadmin命令,这是BEA Systems(现为Oracle Corporation的一部分)开发的一款用于分布式事务处理的应用程序平台。Tuxedo提供了高可用性...
20210625-东方证券-久立特材-002318-首次覆盖报告:三十而立,何以久立.pdf
广和通在笔电、车载联网终端和泛IoT(物联网)等三个主要领域具有精准定位,其战略选择和管理能力被看好。 3. 物联网模组行业的增长潜力 物联网模组行业正经历着快速增长,特别是车联网、网关和笔电市场的需求大幅...
"Python源码集锦-自然语言处理(文本分析)-三十而立"这个压缩包很可能是包含了一系列用于文本分析的Python源代码示例,旨在帮助开发者深入理解和实践NLP技术。下面,我们将深入探讨其中可能涵盖的一些关键知识点。 ...
三十而立打一字.doc
王辰:既挺身而立,又俯下去
安信证券-A股2020年策略展望:A股而立,把握“成熟牛”-20191127-62页.pdf
【三十而立的富爸爸】这篇文档主要讨论的是个人与家庭在30岁左右时的财务管理和理财策略。在这个年龄段,大多数人都已经完成了基础的教育和职业发展,可能已经成家立业,甚至有了孩子。面对日益增加的生活压力,如何...
【标题】和【描述】中提到的文件是一个关于语文学习的资料,包含了常见的易错字词、趣味语文题目以及成语和敬辞谦辞的应用。以下是根据文件内容整理的相关知识点: 1. 成语填空: - 胆子最大:胆大包天 - 看得最...
虽然“男人三十而立”的祝福语更多地关注个人成长和幸福,但在这个信息化社会,我们不能忽视与之相关的安全问题。在享受数字化带来的便利和温暖的同时,也要时刻保持警惕,保护自己和他人的信息安全。在庆祝生日的...
标题中提到的“深圳南山三十而立,再启新征程”意味着南山区在建区30周年之际,不仅回顾了过去三十年的辉煌成就,同时也展望了未来发展蓝图。深圳南山区作为深圳市的一个重要区域,在城市发展的历程中扮演了不可或缺...
【中关村创业者:梦想砥励 三十而立】 中关村,位于中国的首都北京,是国家首个高新技术产业开发区,也是国家自主创新示范区和国家级人才特区。这里是中国体制改革和创新的实验田,被誉为“中国的硅谷”。这片土地...
- "三十而立,四十而不惑,五十而知天命",描述了人生不同阶段的智慧和理解。 - "先天下之忧而忧,后天下之乐而乐",体现了儒家的公共精神和责任感。 7. **实践智慧**: - "缓事宜急干,敏则有功;急事宜缓办,...
2. **人生阶段的转变**:从“风华正茂”到“步入而立迈向不惑到知天命”,描述了同学们从青涩的少年成长为中年人的过程,涵盖了人生的重要阶段,包括成家立业、为人父母等角色的转变。 3. **教育的意义**:致辞中...
孔子的“吾十有五而志于学,三十而立,四十而不惑,五十而知天命,六十而耳顺,七十而从心所欲,不逾矩”揭示了人生不同阶段的目标和智慧。在职场中,人才成长可以分为六个层次: 1. 层次一:初步成长,缺乏明确的...
- "三十而立,四十而不惑,五十而知天命,六十而耳顺,七十而从心所欲,不逾矩" 描述了人生不同阶段的智慧与成长,强调个人修养的不断提升。 4. 对句子的理解: - "吾十有五而志于学" 表示孔子在十五岁时立志于...
- “三十而立”这一传统观念对现代软件人才造成了压力,尤其是男性,他们需要在30岁时在家庭和事业上取得稳定。然而,考虑到现代生活条件和职业发展的实际情况,可能需要延长这一期限,比如“四十而立”。 3. 软件...
首先,孔子提出了个人成长与知识积累的阶段理论,如“三十而立,四十而不惑,五十而知天命,六十而耳顺,七十而从心所欲不逾矩”。这是对人生不同阶段智慧与理解的概括,强调随着年龄的增长,人们在知识、道德和自我...