这篇文章来源于Jeff Atwood的文章《The Eight Levels Of Programmers》,在开题之前,聊下“程序员”这个名词,我觉得将Programmer定义为“程序员”的要求太低了,应该称之为“开发人员”或“研发人员”,因为一个成熟的Programmer不仅仅只关注Program或Code(当然Coding是基本技能要求),还需要关注该Program的需求背景、业务、架构及其长期演进,或许团队中分工不同,这些不属于Programmer的重心,但你花时间去了解和理解它们是绝对有助于Program的。
上面这些文字只是我的理解,下面Jeff Atwood的文章对Programmer的界定看似从编程能力和贡献来划分的,但实际上高级别的Programmer关注的也绝不是Code本身了。啰嗦完以后还是看看大拿的原文吧:
你是否被人问过这样一个经典的面试问题,“五年内你对自己有什么规划?”,这种问题一般不会得到一个很严肃的回答,就像另外一个毫无新意且充满压抑的问题,“你最大的弱点是什么?”
但我却不这么想,我认为这是一些比较严肃的问题,值得我们认真的思考一下。并不是给面试官做好事,而是为你自己的将来。
“五年内你对自己有什么规划?”,这个问题通常会招致一些流于形式的夸夸其谈,大部分的人在面对面试官时都对这样的问题有事先的准备。当通常都不会 涉及一些深刻的关切:你做作为程序员今后可能的发展道路上怎样的?没错,我们编程,是因为我们喜欢,这样看来我们是很幸运的。但当你50时岁时你还想坐在电脑前面编程吗?60时岁时?对于一个想成为程序员的人来说,他的最好的仕途道路应该是怎样?
你是否想听一下,如果我告诉你,算是玩笑吧,程序员有八个级别。
已经死掉的程序员,这是最高级别,你的代码存活了下来,超越了你的死亡。你将在计算机史上记下永恒的一笔。其他 的程序员将会研究你的成果和著作。你也许获得过图灵奖,或写出过有影响力的论文,或发明了一两件重要的、影响到编程史进程的技术。你不仅仅在维基百科上有 条目记录——有专门的网站在致力于研究你的生活和工作。很少有程序员能在有生之年达到这种级别。
例子:艾兹赫尔·戴克斯特拉(获得图灵奖),高德纳(现代计算机科学的鼻祖),艾伦·凯(获得图灵奖)
成功的程序员,有知名度,而且通过自己的代码创建了公司——甚至开创了整个行业。这种程序员享有绝对的自由度:自由的选择自己想做的事情。并且能把这种自由分享给跟他一起的程序员同伴。这是大多数程序员都向往渴望的级别。达到这种级别通常更多的是依靠商业技巧,而不是编程。
例子:比尔·盖茨,约翰·卡马克(《雷神之锤》视频游戏创始人),DHH( Ruby on Rails框架创始人)
著名程序员,这也是一个很好的级别,但前提是,你有稳定的工作。你在编程界有知名度。但有名并不意味这你可以把它转化成收益或给你带来帮助。有名很好,但成功更好。你可以在一个大的、知名的科技公司工作,或者一个有影响力的小公司工作,或你身处一个规模不大的创业团队里。不管怎样,其他的程序员都听说过你,你在这个领域有积极的影响力。
有工作能力的程序员,你是一个职业上成功的软件开发人员。你的技术水平让你受欢迎,你永远不愁找到一份很好的工作。你的同事都很敬仰你。你工作过的每个公司都会由于你的到来而在某方面有提高或增强。但你还能怎样?
普通程序员,处于这个等级的你是个不错的程序员,有自知之明,认识到自己不是个优秀程序员。 也许永远也不是。天才跟成功通常没有多大牵连。如果你会做生意并有人际交往能力,你也许会非常的成功。如果你是个水平一般的程序员但却想以此为生,你应该 聪明的知道,你并不一定需要去编码。不要轻视自知之明的作用。很少人能做到这点。没有天份没什么。要有勇气。弄清你擅长什么,朝这个目标奋斗。坚持不懈。
业余程序员,业余程序员喜欢编程,而且可以看出来:他们可以成为一个有前途的学生或实习生。他们也许会向开源软 件捐赠代码,或在业余时间开发有趣的“只是为了好玩”的程序或网站。他们的程序和想法展现出一种热情和希望。做业余程序员是件不错的事情;这个级别的人能 很快的跃升成为一名有工作能力的程序员。
无名程序员,典型的程序员大众。码农。能干(通常)但平凡。也许为大公司、集团工作。只是一份工作,不是生活的全部。无可厚非。
烂程序员,归入这个角色的人没有任何的技术和能力。对于他的同事们来说,任何他插手的事情都会变成痛苦和折磨 ——可能有一种例外,对另外的烂程序员,因为缺乏基本的技能,辨不清自己正在和另一个烂程序员共事。也许这是所有烂程序员的标准特征。这些人本来跟编程没 有任何关系——但是,他们却在编程。
这些并不是很正经的等级划分。每个程序员在职业道路上都有各自的追求。但这可以给你一定的启发,让你思考一下十年后、二十年后或三十后——也许你的一生——能够实现什么。哪一个著名程序员是你最钦佩的?他们因为实现了什么而获得了你的钦佩?
简而言之,作为Programmer,你这辈子想干成怎样?