高级程序员和普通程序员有哪些区别?

“码农”和计算机工程师其实并没有明确的界限,他们每天都在和计算机代码打 交道 。只不过前者多少带点儿贬义,毕竟今天能写几行代码的人随处可见 。计算机工 程师在某种程度上是自己往自己脸上贴金,在外人眼里他们再普通不过了 。
但是,同样是计算机工程师,不同人的水平、贡献和影响力可谓有天壤之别 。有 些读者读过我之前写的一些书,知道我喜欢用朗道的方法,将计算机工程师分为五 级 。一级工程师的贡献是二级的 10 倍,二级是三级的 10 倍,以此类推 。当然,他 们的贡献和收入常常存在指数上的差别 。
五级: 能够独立解决问题,完成工程工作 。一个能够独立工作、很好完成任务的 工程师,属于五级工程师,google、微软和 Facebook 里面一半左右的工程师属于这 一级 。部分 IT 企业里写代码的人,很多还达不到五级工程师的要求,因此被称为“码农”也不算太过分 。
四级:能够用已知的最优方法(state of the art )解决问题,并指导和带领其他人 一同完成更有影响力的工作 。很多公司里所谓的技术专家、技术大拿,大致就是这个 水平 。
三级:能够解决前人未解决的问题,并且能独立设计和实现产品,在市场上获得 成功 。目前普遍的情况是,在大部分 IT 企业中能够达到这个水平的人非常少,他们 通常是企业里的总工程师或者总架构师 。这个级别的工程师在 Google 或者微软里却 不少见 。
二级:能够提出重要的计算机理论和实践中的新问题,并解决它们,还能设计和 实现别人做不出的产品,也就是说这一级的人的作用很难取代 。
一级:能够开创一个产业,或者奠定一个学科的基础 。
每一级在各个维度差出 10 倍 。
关于五级工程师的理论,我多年前就在很多场合讲过,在这个行业里很多人都知 道 。很多人毫不谦虚地把自己定在了四级或者三级,这其实是高估了自己,或许是因 为过去给出的计算机工程师最低的一级是五级 。一些刚毕业进入大计算机公司的人和 我讲,我现在是五级,争取两年内达到四级的水平 。我说,“不,你现在最多算是六 级,先要达到五级的水平”,于是我在五级的下面又加入了两级 。
六级:能在他人指导下完成计算机工程师的工作 。那些水平还不错的大学的计算 机专业硕士毕业生,或者在一流计算机公司里工作过半年、过了见习期的新人,大约 就是这个水平 。
七级:本科毕业自水平不错的大学的计算机专业,但没有参加过六个月以上实习 的学生 。也就是说课程的内容都学过了,就能达到这个水平 。当然,从小就接触编程 的计算机天才,他们可能在高中就达到了这个水平 。
以上内容摘自吴军博士的《计算之魂》中的前言部分 。

高级程序员和普通程序员有哪些区别?

文章插图
 
对计算机科学的掌握程度,决定了一个计算机行业从业者能走多远 。在本书中,作者将人文历史与计算机科学相结合,通过一些具体的例题,分10个主题系统地讲解了计算机科学的精髓 。这些例题是作者面试求职者时用到的考题,或是头部计算机公司和金融企业的面试题 。
作者在书中结合自己对计算机工程师的五级分级标准,详细讲解了每类题目不同层次的解决方法、不同水平的人大约能思考到什么样的深度,深度阐述题目背后的计算机科学精髓 。通过对比优化解题思路,读者不仅可以衡量自己的水平,在职业的发展道路上走得更快,更可以深刻理解并掌握计算机科学和计算思维,逐渐把握计算机科学这门艺术,获得重复性成功 。
【高级程序员和普通程序员有哪些区别?】对于所有有志于了解或学习科技,特别是计算机科学的人来讲,本书不仅有助于了解计算机科学,更有助于了解 IT 产业的技术特点、培养一些特殊的思维方式、掌握信息时代特殊的做事方法,通过具体的例子,从“术”的层面获得“道”的层面的提升 。


    推荐阅读