如果在本文中将程序员分为八种类型,你会是哪一种?
申请工作的时候,相信很多人都被问到过这样一个问题,“你未来五年的职业规划是什么?”每当有人问我这个问题,我总会在twistedssiter 1984年拍摄的一段视频中看到这样的场景:一位老师对着他的学生大喊:“我要你告诉我,不,告诉全班同学,你想过什么样的生活?”
注:TwistedSister是一个来自美国纽约的摇滚乐队,成立于20世纪70年代初。经过近10年的奋斗,他们在20世纪80年代初取得了巨大突破。然而,由于他们叛逆的形象和古怪的行为,他们被美国政府视为重金属毒害青少年的典型,并在1988年被迫解散。
你自然会想:我要牛逼!或者至少成为一名伟大的程序员。虽然这个问题看起来没有其他同样古老的问题严重(例如,“你认为你最大的弱点是什么?”),但可能你还是觉得很难回答。可能有时候你太自大了,回答不了这样的问题。但是要小心,你可能会惹恼别人。
在我看来,这个问题也是一个很严重的问题,值得思考。不是为了面试官,而是为了你自己。
对于这个问题,大多数人会选择无痛的回答来灌注面试官。但这确实引出了一个更深层次的问题:软件开发人员应该从事什么样的职业?当然,我们选择这一行是因为我们喜欢,我们有幸得到了上帝的眷顾。但是50岁了还能坐在电脑前打代码吗?60岁呢?因此,我们不得不在年轻的时候思考这个问题:程序员最完美的职业应该是什么?
那么让我告诉你,基本上,这个世界上的程序员可以有八种境界:
1.不朽的程序员
这是最高境界!虽然那个人走了,但他的代码还活着。他成了电脑博物馆的永久收藏品。许多其他程序员正在研究他的作品。他可能获得了图灵奖,发表了大量有影响力的论文,或者发明了一些影响计算机专业课程的基础技术。他不仅拥有一个维基百科条目,事实上,还有许多专门的网站来讲述他的作品和他的人生故事。
一辈子能达到这个水平的程序员屈指可数。
代表人物:迪杰斯特拉、克努特、凯。
注:迪杰斯特拉是荷兰计算机科学家,因发明计算机编程语言而获得1972年图灵奖。Knuth是《计算机程序设计艺术》的作者,被称为算法分析之父。凯是美国计算机科学家,也是面向对象编程和Windows图形用户界面设计的先驱。他有一句名言:“预测未来的最好方法就是创造未来。”
2.成功的程序员
成功的程序员不仅拥有广泛的知名度,还能经营好公司,甚至掌控整个产业链。他们有绝对的自由去做他们想做的事情。他们也有给其他程序员带来“自由”的梦想。
这个领域的程序员最让人羡慕。要达到这个水平,你需要的是比编程技能更多的商业才能。
代表人物:比尔盖茨、卡马克和DHH。
注:比尔盖茨是微软的创始人。他是个计算机天才。他13岁开始编程,20岁领导微软;他也是一个商业天才。他以自己的远见卓识和精明的商业头脑让微软享誉全球,让软件成为人们生活中不可或缺的东西,从而成就了今天的微软帝国。卡马克是Id软件公司的创始人,该公司主要从事电脑游戏和游戏引擎的开发。他的作品包括《半条命》、《反恐精英》、《毁灭战士》等。DHH是丹麦程序员。他建立了“Ruby on Rails”Web应用程序架构,并合著了《Web开发敏捷之道:应用Rails进行敏捷Web开发》一书。
3.著名程序员
进入这个领域的程序员也不错,但当然前提是你得有一份好工作。
这个领域的程序员在圈子里都是有名气的,但是出名并不代表就能赚到收入,养活自己。出名固然好,但成功更重要。你可能在知名的大型科技公司、有影响力的小公司、或者有前途的创业团队工作。反正其他程序员或多或少听说过你,你对你的领域有积极的影响。
4.有能力的程序员
作为一名软件工程师,你非常成功,因为你的能力让你在工作中感到舒适。你从不担心找不到满意的工作。你的同事也很尊重你。因为你的加入,你工作过的每家公司在某些方面都得到了提升。
但问题是:你的下一个方向在哪里?
5.普通程序员
这个领域的程序员基本上可以应付一般的编程工作。他们也很清楚,因为自己的天赋有限,很难成为优秀的程序员。
事实上,天赋与成功关系不大。如果你有敏锐的商业意识和良好的人际交往能力,你仍然可以变得非常成功。如果你是一个普通的程序员,但你在这一行仍然可以过上好日子,说明你很有才华,但你不一定非要做程序员。
人值得知道自己的名字。通常你的能力比你想象的要低。人才缺乏没什么大不了的。勇敢一点,探索自己的特长,充分发挥。
6.业余程序员
业余程序员通常热衷于编码。他们可能是一些有前途的学生或实习生,也可能在闲暇时参与一些开源项目或开发一些“有趣”的应用程序或网站。从他们的代码和创造力,我们可以看出他们是一群有思想有激情的人。
做业余程序员是一件好事。这个领域的程序员可以通过自我提升很快成为合格的程序员。
7.低调的程序员
也有一些很受欢迎的有个性的程序员,比如JoeCoder,他们很有能力,但是没有显著的成就。他们可能为一家大公司服务。对于这些人来说,写代码只是一份工作,而不是他们的一生。没什么不好,很好!
8.糟糕的程序员
这种级别的程序员技能极度缺乏(无境界可言),通常会因为一些原因进入这一领域。他们所做的一切都会给同事带来痛苦和灾难。当然,可能有一个例外,那就是他们的同事也是一帮糟糕的程序员,糟糕到他们甚至没有意识到自己被一帮糟糕的程序员包围着。
如果你想给一个糟糕的程序员下一个定义,那就是你没有金刚钻,你做的是瓷器工作。
诚然,所有这些领域都没有严格定义。事实上,并不是所有的程序员在职业生涯中都向往同样的东西。想想一个程序员10年,20年,甚至30年,甚至一生能取得什么成就,是很有意义的。想一想,你最佩服哪位程序员?他有什么成就让你如此崇拜他?
话说回来:你想过什么样的生活?