什么是程序员的八重境界
扫描二维码
随时随地手机看文章
看到一篇有趣的文章The Eight Levels of Programmers。以前似乎看过不少这种程序员的多少个级别、境界,但这篇语言很风趣,而且分类比较细化,让人觉得挺合情合理、无法反驳的。绝大部分人想成为一名优秀程序员的人,通过努力可以避免1,因为在编程上的追求避开了2,最终可能都停留在4或5。但努力追寻是没有错的,不然没有梦想和咸鱼有什么分别:)。注意一点,作者并没有无脑地批判谁,并没有说会编程、代码写得好就怎样,其他都是不求上进、不务正业。他全文一直都在客观强调一点:每个人的追求不同,想好自己想要活成什么样子,然后就去努力。
你遇到过这种典型的面试问题吗:“你觉得你五年后会在哪?”每当被问到时,我总是Twisted Sister视频里的片段。当然,你想成为大牛!至少成为一个明星程序员。所以这种问题通常都得不到严肃的回答,就像另一个常见的问题,“你最大的弱点是什么”。但我觉得有一类问题是值得严肃思考的,不是为了面试,而是为了你自己。像“你觉得你五年后会在哪?”这种问题,一般面试者都会准备好一些比较圆滑和恰到好处的答案。但一个程序员真正可能的职业发展路径才是真正应该担忧的问题。当你50岁了你依然坐在电脑前编程?然后60岁?对于一个渴望成为程序员的程序员,什么才是他最可能的职业终点呢?要是我现在告诉你程序员有八重境界你会怎么样?
1. 糟糕透顶
没有足够技巧和能力的人被分配程序员的角色,(于是悲剧就发生了)。每一件他们接手的事情都变成了对他们同事的痛苦和折磨。唯一的例外就是他们的同事也同样地糟糕,糟糕到无法区分他们也在跟糟糕的程序员共事,这可能是所有糟糕程序员的标志。这些人不应该写代码,但是他们却的确写了……
2.无名小卒
典型的程序员,自大自满但又不够出色。可能在大公司上班,但却仅仅把编程当作一份工作,而非生活的全部,甚至大部分。当然这也没什么错,只是追求不同。
3.业余水准
业余程序员与前两者不同,他们喜欢编码,是自愿做这一行的。他们可能是很有潜力的学生或实习生,或者业余时间为开源项目或自己的小网站做贡献。他们有潜力也有热情,这是好事,达到这一级后就能很快成为一名不错的程序员。
4.平庸无奇
你已经足够好了,但不够出色,你可能永远也不会…… 天赋通常与成功没有太大关系,你可以因为商业头脑和人际关系成功。如果你是一名普普通通的程序员,但是生活得还不错,那说明你挺有天赋,只不过不是在编码上。自省的价值远大于你想象,所以勇敢面对,没有编码天赋并没有任何错。想清楚你擅长什么,并一路追寻,大胆地,这就够了。
5.小有所成
作为软件工程师,你已经有了一个堪称成功的职业生涯。你的经验、技巧在市场中很抢手,你从来都不用为找工作发愁。你的同行们羡慕你,每家你工作过的公司都因为你的存在而有了改变。但是,你还能更进一步吗?
6.名声在外
这已经是一个非常不错的位置了,你在程序员圈子里很有名气,但并不意味着你很有钱。你可能也在为某个著名的大公司或非常有影响力的小创业公司工作。不管哪种方式,其他程序员都听说过你,你在这个领域有着足够的影响力。
7. 成功典范
这一级别的程序员在名气和商业方面都很成功,甚至可能整个行业为围着你的代码转。他们有足够的自由,决定自己想做什么。大部分程序员都想成为他们,但这需要商业头脑多于编程技巧。这一级别的例子有:比尔盖茨、卡马克(Doom引擎、计算机图形学)、DHH(RoR之父)。
8.名垂青史
现在就到了最高境界了。你的代码已经超越了你的生命,在你死后依然被人学习。你是整个计算史的一部分,其他程序员都在研究你的代码和文章。你可能得过图灵奖,或写过影响深远的论文,或发明了多项改变编程方式的基础技术。你甚至不只有维基百科的条目,还有专门的网站介绍你的生平和成就。非常非常少的人能在一生中达到这个境界。例子有:迪杰斯特拉(结构化编程、算法)、唐纳德(TAOCP)、Kay。
这些级别并不是绝对的,也不是所有程序员毕生都在追求同样的东西。但作为程序员,努力思考未来十年、二十年、三十年甚至一辈子是值得的、有启发的事。想想你认识的程序员里谁最牛?他们是如何得到别人的尊重和敬仰?一句话总结就是:你究竟想要活成什么样子?