软件开发不只写代码那么简单——程序员的8种境界

寄语

平心而论,不能为了编程而编程,大多数想要学习编程的人一般都是被盲目的信仰刺激。所以我奉劝看到这篇博客的各位,请下定自己的决心之后,在决定是否仍要踏入这个行业。

什么是程序员?程序员是耗尽毕生精力去编写代码,使他人从代码编写工作中解脱的人,因此,宣扬 “每个人都需要知道如何去编程”,我认为是一种倒退!

生命中最困难的,是想清楚你真正想要做的事情,而不是学上一堆假设将来会有用的东西。如果说你的研究和探索最终还是引领你走上了编程之路,那就用尽一切方法去学习吧!

8境界

在求职的时候,你也许会被问到这样的问题:你对自己未来5年的职业是怎样规划的?
对于这样问题的回答不只是为了应付面试官,而是为了你自己。在心中你究竟想过怎样的生活?作为一个程序员,最完美的职业生涯规划应该是怎样的?

在此,我通过书籍整理了大致8种境界:
1.不朽的程序员
这个是最高的境界!总结一句话就是:人不在江湖,但江湖仍然有他的传说。你可能没有见过这些人,但是在书籍中你可能读到过他的名字,你可能正在读他发表的论文,或者你正在使用一些基础的技术,而这些技术正是通过他的论文实现的或者就是由他实现的。
他们在生前可能获得过图灵奖,成为计算机博物馆中的一个永久收藏,其他众多的程序员都在学习他的作品。
抱歉,虽然很残忍,但是我想说几乎大部分程序员在一生中都无法达到这个境界。

2.成功的程序员
总结一句话就是:自己有很强的编程能力,并且具有很强的商业头脑,将代码商业模式化。所以他们运营着一个不错的公司,甚至控制了整个产业链。他们拥有绝对的自由,可以做任何自己想做的事情。
这一境界的程序员,相比于编程能力,更多的是需要商业上的才能。

3.知名程序员
达到这一境界的程序员也不错。他们可能在一家非常知名的大型技术公司工作,也可能在一家很有影响力的小公司或者是在一个很有希望的创业团队工作。
不管怎么样,其他的程序员都或多或少听说过他们,并且他们在自己所在的领域有着积极的影响。

4.胜任的程序员
首先,你的能力是你在工作中游刃有余,你从来不会为得到一份满意的工作而发愁。你的同事也非常尊敬你。每一家你曾经工作过的公司都因为你的加盟而在某些方面得到了提升。

5.普通的程序员
这个境界了,你基本上能够应付一般的编程工作。由于天资所限,他们很难成为杰出的程序员。
很残忍,大部分进入这个领域的人也就到此止步了。
但是,天赋跟成功的关系并不大。如果你有敏锐的商业嗅觉和不错的人际交往能力,你依然可以变得很成功。如果你考这一行当过上了不错的生活,这已经说明你很才了。
人贵有自知之名。普通你的能力都会比你自认为的要低。缺乏天赋并不是什么大不了的事情。要勇敢一点,发掘自己的特长,并且充分加以发挥。

6.业余程序员
这个群体一般是一些很有前途的学生或实习生,也可能正在参与某些开源项目,或者利用个人闲暇时间开发一些好玩的应用程序。他们是一群很有想法,充满激情的人。
这个境界的程序员可以通过自我提升,迅速地胜任程序员这个职业。

7.低调的程序员
还有一些坊间流传的比较有个性的程序员。他们很有能力但是没什么令世人瞩目的成就。他们可能服务于某家大型公司。写代码仅仅是份工作而已,并非他们生活的全部。

8.烂程序员
总结一句话:没有金刚钻,却偏偏拦了瓷器活。这个级别的程序员技能极其匮乏,他们通常是阴差阳错地干上这一行的。他们所做的任何事情都会给他们的同事带来痛苦和灾难。
如果你是这样的,你是否有采取行动改善自己,或者远离这个行业。

举例

不朽的程序员:
Dijkstra
这样表示,你一定不知道。
如果你学过数据结构,是否记得其中的最短路径算法就是以他命名的?
如果你学过操作系统,是否记得有一个调度算法——银行家算法?

Ken Thompson
Dennis Ritchie

这两位就不用介绍了。大学时代你的第一门语言就是他们发明的。很多语言都是以此为基础在上面进行的扩展。
unix系统的发明者,当年火星计划的后继者。

knuth
如果你学过算法,你可能知道他。你是否读到过《具体数学》,《研究之美》这些书籍。

显示 Gitment 评论