`
haofeng0305
  • 浏览: 30409 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

程序员的8个级别,你想成为哪一种?(转)

阅读更多

相信很多人都曾经被面试官问过这样的问题:”你对自己未来5年的职业规划是怎样的?“,每当我被问起这个问题时,我的脑海中总是会浮现出《Twisted Sister》(一部拍摄与1984年的电影)中的这个场景,一名老师对着他的学生大喊。

我想要你告诉我,不,是告诉全班的学生

twisted-sister-i-wanna-rock-video-still-frame.jpg

 

你究竟想要怎样的生活?

一般情况下,你的很自然的想法就是:你要变得很牛,或者至少变成一个很牛的程序员。尽管这个问题看起来并不像其它一些同样老掉牙的问题(比如,”你觉得你最大的弱点是什么?“)那么严肃,但很可能你还是会觉得难于回答,回避这个问题明显不是一个明智的选择。

但是,在我看来,这个问题同样是一个相当严肃的问题,只不过大部分人都没有注意到他的重要性,不是对面试官,而是对你自己。

对于这个问题,大部分人都会选择一个不痛不痒的答案来敷衍面试官,但如果你深入的思考这个问题,你会发现这实际上是一个关于软件开发人员可能的职业 生涯轨迹的问题,当然,我们选择这一行是因为我们喜欢这行,并且幸运的得到老天的眷顾,我们干上了这行,但你能在50岁的时候依然坐在电脑前面敲代码 嘛?60岁呢?所以,我们必须在还年轻的时候先思考一下这个问题:作为一个程序员,最完美的职业生涯应该是什么样?

如果你懒得自己思考,那就让我来告诉你吧,基本上,这个世界的程序员可以分为8种类型:

1. 不朽的程序员

这是最高的级别,虽然你的人已经挂了,但是你的代码却依然活着,你成为计算机博物馆中的一个永久收藏,为数众多的程序员持续的学习和阅读你的作品。 你在生前已经赢得了许多的赞誉,发表了大量非常重要的论文或者是创造了许多影响到计算机专业课程设置的基础技术。你已经不仅仅只是拥有一个维基百科的条 目,会有许多专门的网站讲述你的作品以及你生平的事迹。

能够达到这一级别的程序员屈指可数,这一级别的代表人物是:Dijkstra, Knuth, Kay

2. 成功的程序员

成功的程序员不仅拥有广泛的知名度,并且还运营着一个不错的公司——甚至是整个产业链。他们拥有绝对的自由可以做他们想做的事情。

这一级别的程序员是最多人羡慕的,到达这一级别更多的是需要商业上的才能而不是你的编程能力。

代表人物:Gates, Carmack, DHH

3. 知名程序员

成为这个级别的程序员也不错,当然前提是,你得有一份不错的工作。

这个级别的程序员虽然在圈子里很有名,但是成为名人并不意味着你可以靠这个获取收入甚至是养活你自己。知名固然不错,但无疑成为成功的程序员更加的 好。你的公司可能是一家非常知名的大技术公司,也可能是一家很有影响力的小公司或者是一个最新潮的创业团队,其它的程序员都应该或多或少的听说过你,并且 你对你所从事的领域可以起到积极的影响。

4. 工作杰出的程序员

你做为一个软件工程师的职业生涯非常的成功,因为你的工作能力相当杰出,你从来不会为找不到一份你满意的好工作好发愁,你的同事也非常尊敬你,每一家你工作过的公司都因为你的加盟而在某些方面得到了增强。

但问题是:你接下来的方向在哪呢?

5. 能力一般的程序员

这个级别的程序员,一般来说,由于天赋的差异,通常很难成为杰出的程序员,但天赋跟成功的关系其实不是很大,如果你有很好的商业或者是与人沟通的技 能,你依然可以直接跳升到成功的程序员级别。如果你是一个能力一般的程序员,但你却靠这行当过上了不错的生活,那说明你必须在其它方面有很好的天赋(除了 编码)。

不要怀疑自知的价值,通常你的能力都会比你认为的要少,但缺乏天赋并不是什么大不了的事情。要勇敢一点,发掘自己的特长,并充分利用,你也会成功的!

6. 业余的程序员

业余程序员通常都很喜欢编码,一般来说以学生和实习生为主,他们通常会向开源项目共享代码,或者利用空闲时间凭自己的兴趣开发一些应用,他们的代码和创意通常看起来都很有激情。

成为一个业余程序员是个好事情:这个级别的程序员可以很快速的成为一名工作杰出的程序员。

7. 未知的程序员

还有一些很知名的程序员,比如Joe Coder,有能力但是不太引人注目,很可能在为某个大公司工作。对于这类人来说,写代码仅仅只是工作,并非他们生活的全部,这没什么错,挺好的。

8. 差劲的程序员

这个级别的程序员通常是因为某些意外阴差阳错的成为了程序员,但他们本身并不具备写代码的技能,所有他们做的东西都成了他们同事的噩梦——当然有一种例外,就是他的同事也是十分差劲的程序员,差到都不具备与他的同事进行基本的沟通。

基本上,如果要给差的程序员下一个定义,那就是:没有金刚钻,却揽了瓷器活。

当然,这个级别排的不是很严肃,并且每个人对自己的职业规划都不一样。它只是想给你一点启示,那就是你在未来的10年,20年,30年甚至是你整个一生究竟能够完成哪些事情,你最为崇拜那个程序员,他身上的哪些特点最为吸引你?

简而言之,你究竟想要过怎样的生活?

分享到:
评论

相关推荐

    修炼一名程序员的职业水准

    假设你是一名软件专业毕业的本科学子,如何在工作中修炼成为一名有较高职业水准的程序员呢,本文试图总结作者从事15年软件开发工作的感想,希望对有志成为职业程序员的人有所帮助,并借此机会感谢原昆明工学院计算机...

    java 面试题 总结

    重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,...

    《c++面向对象程序设计》8-12章课后答案

    (程序员只需记住一个接口,而不是好几个。) 8_2 在C++语言中实现了哪几种多态性?请说明通过什么方式实现。 在C++语言中实现了编译时多态性和运行时多态性。 编译时多态性通过函数重载,运算符重载和模板实现。...

    程序员考试刷题-English-Learning-Wiki:English-Learning-Wiki

    如果您可以随时使用一种语言讨论任何事情,请立即停止阅读。 你已经学会了如何充分利用一门语言。 这就是语言使用者社区的成员所做的:他们聚在一起讨论在真实和虚构时间的整个维度上的任何点或点序列中发生或未发生...

    超级有影响力霸气的Java面试题大全文档

    重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,...

    二十三种设计模式【PDF版】

    让你自己减少重复性的编程工作),这无疑是成为一个优秀 程序员的必备条件. 整个设计模式贯穿一个原理:面对接口编程,而不是面对实现.目标原则是:降低耦合,增强灵活性. 建筑和软件中模式之异同 CSDN 的透明特别推崇...

    《程序员》杂志2012年第1期.pdf (免费积分下载)

    Siri为代表的自然用户界面+开放平台也是一种具有潜在爆炸力的技术。正如Robert Scoble在近两年前Siri被Apple收购时撰文所指出的,Siri代表了继1990年代“通过域名找页面”、2000年代“通过页面交互聚人”之后的第三...

    C#微软培训资料

    <<page 1>> page begin==================== 目 目目 目 录 录录 ... 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT 业界都将成为值得纪念的一天 这一天 微软公司正式推出了其下一代...

    Open PHIGS:PHIGS(程序员的层次交互式图形系统)-开源

    在1990年代,OpenGL成为了一种更受专业人员欢迎的3D API,并且至今仍在使用。 PHIGS仍将在电影行业中广泛使用。 Open PHIGS使用OpenGL渲染图形,而不是将其自己的抽象层实现到图形硬件,也没有使用PHIGS X扩展(PEX...

    编写可读代码的艺术

    如果你要成为一位优秀的程序员,要想开发出高质量的软件系统,必须从细处着手,做到内外兼修,本书将为你提供有效的指导。主要内容:■ 简化命名、注释和格式的方法,使每行代码都言简意赅。■ 梳理程序中的循环、...

    java开源包8

    parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...

    动力节点老杜最新版Spring6框架教程学习资料分享

    本套课程在录制时采用难度逐步递进的方式,从入门的第一个程序到手写Spring框架,真正的能够让小白成为老手。如果你是老程序员不妨看看手写Spring框架,也会让你受益颇多。本套Spring教程与其他Spring教程的区别可...

    C#入门经典ppt.ppt

    由于C/C++语言的复杂性,许多程序员都试图寻找一种新的语言,希望能在功能与效率之间找到一个更为理想的权衡点。 VB以牺牲灵活性的代价来提高效率。可是这些灵活性正是C/C++程序员所需要的。这些解决方案对编程人员...

    基于Java的游戏“俄罗斯方块”的设计与实现

    近年来,Java 作为一种新的编程语言,以其简单性、可移植性和平台无 关性等优点,得到了广泛地应用,特别是 Java 与 WWW 的完美结合,使其成为 网络编程和嵌入式编程领域的首选编程语言。JBuilder 是 Borland 公司...

    Python 2.5

    Python是一个你可以加入你现有工具的宏语言并适合不同的层次的人使用。 <br/> <br/>一个快速的对象模型和算法的原型开发工具 <br/>开发软件花费钱财需要很多时间才能达到很好的效果。在Python下创建...

    2000 XP及2003系统不显验证码的补丁

    微软继而在网络信息服务器(IIS)中将XBM作为一个MIME类型注册而提供本地支持,并且在现有所有版本的Internet Explorer中将其作为一种可支持的图像。 从一个程序员的角度来看,JPEG或GIF与XBM有着极大的不同。这两...

    JAVA上百实例源码以及开源项目

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    测试培训教材

    一个好的测试管理工具应该能把以上几个阶段都管理起来。 测试人员每时每刻都在度量别人的工作成果,而测试人员的工作成果又由谁来度量呢?度量的标准和依据是什么呢?软件测试的度量是测试管理必须仔细思考的问题。...

    JAVA上百实例源码以及开源项目源代码

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

Global site tag (gtag.js) - Google Analytics