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