各式各样的极品程序员,你属于哪一种

标签: 程序员 | 发表时间:2013-12-26 17:31 | 作者:
出处:http://news.cnblogs.com/

英文原文: The Taxonomy of Terrible Programmers

本文作者 Aaron 是 MarkedUp 创始人兼 .Net 开发者。在这篇文章里,作者根据自己平时在工作中的所见所闻,列举了几个比较有代表性的极品程序员类型。他们各有自己的特点和性格,在软件开发工作中,这种特点和性格显露无疑。(以下为编译内容)

在日常工作里肯定会发现很多有趣的事情,极品程序员所做的事就是很有意思的。事实上,现在所讨论的极品程序员主要是从他们的判断力、行为举止、个人态度和匪夷所思的工作方式上来判断的,有的时候这些程序员一味的只是追求文档上的内容,而不擅于用分析方式来解决问题。

几乎每一个软件开发者多多少少都会出现头脑短路的现象,也就是说,下面所列举的各种极品程序员类型,总有一款是属于你的。

1. 宠物专家型程序员:独爱一种技术

这种类型的程序员所遇到的致命错误就是:只钟爱一种技术,对别的技术不来电。其实这不是什么值得表扬的优点。因为这种程序员看上去就像是“天生注定爱上这种框架的程序员”,对于自己喜欢的技术可以说是放不开、丢不掉。甚至在生活里也是一个打破砂锅问到底的人。

不管问题是什么,他的回答总是跟他的性格类型脱不了关系:

  • “嘿,我们需要在 Rails 框架里实现一个内容管理系统,但是我们应该用哪一个数据库呢?”Mongo
  • “多用户博客引擎吗?”Mongo
  • “关键业务一致性系统?”Mongo
  • “库存管理系统?”Mongo
  • “电子病历系统?”Mongo
  • “分布式数据仓库?”Mongo

宠物专家类型的程序员在任何软件开发项目里都会找出各种各样的理由,也不管这些理由是否具有实际意义。但是,一旦你试图反驳他的观点或者是想法的时候,他们在感情上是无法接受的,即使你和他的关系特别好也是没有用的。如果他知道自己的想法错了,也不会告诉任何,而是更愿意在最后一秒的关键时刻偷偷的使用别人的正确方案。

2. 奥术师型程序员:保守主义者,不到万不得已不做修复

奥术师类型的程序员的目标是至高无上的:不考虑成本,尽一切可能保护系统的正常运行和系统的完整性。除此之外,这类程序员信奉一个很简单的哲理,这个简单的哲理也就是引领他们在软件开发和管理实践中的一个基本准则:只要还能将就使用,不到万不得已千万不要去修复。

不管什么样的软件,只要是在奥术师的保护下,就一直是使用那个平台、那个部署程序、那个数据库还有那个永远不会改变的操作系统。但是你不必担心,因为奥术师会一直盯着这些看上去老旧的组件,也许他不能赢得每一场战斗,但是他一定会为了每一场战斗而凶猛拼杀。

在奥术师的世界观里,过去也代表着未来。所以,他将会和那些想要升级他的 1981 年发布的的 PASCAL 代码库的人作战到底,哪怕是泪流满面。

3. 未来派程序员:赶潮人,追求最前沿的技术

未来派程序员可以说是奥术师程序员的对立面——今天就是未来,任何使用昨天的开发工具编写的代码在未来派眼里看来都是无与伦比的厌恶。他们的目标可不是什么哲理——追求最新最前沿的技术。

如果你看到未来派程序员甩着鼻涕在你面前吹嘘最近在 Hacker News 上看到关于 JavaScript 的最新消息而滔滔不绝的时候,你千万不要惊讶,因为他们没像是在 Justin Bieber 演唱会上那样在你面前尖叫就已经很照顾你了。即使有的时候在 Microsoft Research or the Server and Tools Team 发布新产品的时候,即使他们根本不理解那些产品的用途,也会显得很热情。

不过,需要提醒的是,如果你是一个未来派程序员,那么 DevOps 工程师,QA 工程师和 Release 工程师这些职位是未来派程序员的天敌。

4. 信息囤积者型程序员:小心谨慎,不愿公布代码

信息囤积者型程序员是一个很谨慎的人,但是对自身的谨慎行为充满不确定性。他们生活在一个认知失调的世界里:对自己的工作感到自豪,但是需要帮助的时候又不愿意让别人知道。

所以囤积者通常会隐藏代码,不愿意公布代码。小心翼翼地避免访问记录,更不愿意别人跟踪他所做的一些修改记录。他最大的恐惧就是遇到代码合并冲突,因为这样的暴露风险是最大的。

也许囤积者型的程序员很乐意告诉你他的工作是多么了不起,但是如果你想要知道他的代码估计会很难。最终,信息囤积者型的程序员注定要失败,这样的做事行为不被别人接受,存在也是没价值的。只希望在短期内能有较好的改善。

5. 艺术家型程序员: 质量?美观?不可兼得

艺术家型程序员简直就是囤积者和未来派程序员的表兄弟,艺术家型程序员会倾入所有的心思来构建完美的代码行。此外,艺术家型程序员也是一个易动感情的人——他所创造出的软件就是他感情的流露,也是他个人才华的生动化身。

艺术家型程序员还会考虑这样的问题:如果我使用的 JavaScript 里不添加分号的话,在语句上是不是更加漂亮呢?如果把这个块包装起来,是不是更加完美?他们最在乎的是美观,其次才是质量。

艺术家型程序员也不是这个行业所提倡的那种程序员,他们无法客观的讨论评价自己的作品,也无法定位自己在同事当中的位置。

6. 孤岛型程序员:性格孤僻者,代码就是一切

孤岛型程序员是整个程序员行列里最孤独的人,这样的程序员在软件创造方面有很多很大的欲望,但是他们的短板是不愿与人交往。孤岛型程序员的理想工作条件是与外界交流最好是保持在最低限度,而且严格控制在他方便的时候。他的生活里只是代码,没有人类。

但不幸的是,现实和理想往往是有很大的区别的,但是这些程序员必须为了生存而去公司谋求工作,于是被迫与同事或客户沟通,这对他们来说的确是一个巨大的负担。所以他们只能躲避——躲避会议、躲避电话沟通、关闭邮件接收器等等。他们遇到问题的时候宁愿查询上百件项目文档也不愿意问自己的队友。

和信息囤积者型程序员一样,孤岛型程序员注定要失败。软件开发就像是一项团队运动,不接受那些不遵守规则的另类。

7. 敏捷型程序员:急功近利,常常半途而废

敏捷型程序员是一个功利主义者,致力于需求改善软件效率,以及个人和团队的生产力。但不幸的是,他对“敏捷”哲理的理解和实施策略实在是呆板和僵化,不禁使人发笑。

敏捷型程序员的初始意图是很高尚的:改善软件开发方式。这样的程序员做起事情来是比较雷厉风行的,但是也有缺点:任何讨论时间超过四小时的问题最后都会变成泡沫;任何在最后冲刺阶段所做的项目基本上都会缩水。

另外值得注意的是,大部分敏捷型程序员都有一个通病:自命不凡。在程序开发过程当中,尤其是在选用一些小的组件的时候,坚持己见,导致网络文件系统出现错误或者是驱动程序实现效果不理想。

8. 文盲型程序员:编程入门者,功底浅薄

顾名思义,文盲型程序员在阅读别人的源代码的时候总是会遇到很多麻烦,有的时候基本上是看不懂别人的代码。

换句话说,文盲型程序员和孤岛型程序员像是一对表兄弟,只对他们钟爱的编程语言花时间去理解基本的编程结构,全面掌握编程语法,但是看到其他程序员所写的代码的时候,完全是一窍不通。在这种情况下,我们称之为“code-blind”程序员。

当面对其他开发者问“你为什么不使用我们标准的接口来生成一个对话”的时候,文盲型程序员通常是盯着自己的脚尖然后是喃喃自语。

以上只是列举了一部分类型的极品程序员案例,当然,极品并不代表不好,只要把这种极品特征合理应用,它就会成为你的特长。不知道你是不是一个极品程序员? 

本文链接

相关 [程序员] 推荐:

普通程序员、文艺程序员、2B程序员

- 可可 - 宇宙的心弦
希望能引起广大苦逼的正在学或者已经学过c++人的共鸣和会心一笑吧. 如何辨别自己在现实还是虚拟世界.

如何面试程序员?

- bluesnail - 阮一峰的网络日志
你要面试一个程序员,应该问他什么问题. 有人在Hacker News的讨论区里,请求指点,怎么才能在面试中发现合格的人. 众人纷纷出主意,有很多高质量的回帖,我觉得挺有启发,就整理出了下面这篇文章. 首先,最重要的是,你自己一开始就应该想清楚:. 哪些途径和方法可以发现这样的人. 只有明确这些根本性的问题,才能正确高效地完成面试.

程序员的本质

- Allen - 译言-电脑/网络/数码科技
来源What do programmers really do?.   很多人(包括我岳母)认为计算机变得如此智能,所以在不久的未来将不再需要程序员. 另外一些人认为程序员是天才,他们在电脑前能不断地解决复杂的数学难题. 甚至不少程序员对他们是做什么的都没有清晰的概念.   在这篇文章中,我想给不知情的人解释一下程序员到底是做什么的:.

程序员人生之路

- myartings - 博客园-首页原创精华区
   程序员人生之路(强烈推荐,分析的透彻. ),某程序达人的人生感悟,估计没有半个甲子的时间,是绝对不可能感悟出来的.    相对同时刚出校门同学从事其它行业而言优厚的薪水,以及不断学习更新的专业知识不仅仅让你感到生活的充实,更满足了你那不让外人知的虚荣心. 在刚出校门的几年中,你经常回头看看被你落在后面的同学们,在内心怜悯他们的同时,你也会对自已天天加班的努力工作感到心里平衡:“有付出才会有回报”这句话在那几年中你说的最多,不管是对自已的朋友们还是自已的爱人.

程序员装B指南

- Qing-Run - 博客园-首页原创精华区
1.电脑不一定要配置高,但是双屏是必须的,越大越好,能一个横屏一个竖屏更好. 一个用来查资料,一个用来写代码. 总之要显得信息量很大,效率很高. 2.椅子不一定要舒服,但是一定要可以半躺着. 3.大量的便签,各种的颜色的,用来记录每天要完成的事务,多多益善. 沿着电脑屏幕的边框,尽量贴满,显出有很多事情的样子.

程序员收入报告

- diaoxsh - cnBeta.COM
最近,波兰的程序员Chris(也叫KreCi)公布了他的第十四期程序员收入报告. 数据显示,上月是目前为止他收入最多的一个月. Chris的收入并不是指他的工资或薪水,Chris是一个自由职业者. 他的收入也不是来自个人承包软件工程的收入,他更像是一个果农,种了优良的果树,只要不断的给这些果树施肥浇水,这些果树会给他带来源源不断的财富.

程序员的利器-SourceInsight

- Alex - 博客园-首页原创精华区
作为程序员,大部分时间是在已有的代码上代码工作. 要对已有的代码进行调整,首先就要搞清楚当前代码中蕴含的逻辑关系. 所以常常有程序员调侃说花了大半天时间看代码,最后写代码的时间只有几分钟. 所以,对已有代码的分析质量将影响(甚至会决定)最终代码修改的质量. SourceInsight在代码分析上给予程序员极大的帮助.

程序员?还是小丑?

- Vingel - cnBeta.COM
和你从不认识的人坐在一起,试图弄清楚他是个程序员还是个小丑. 我没有想侮辱任何人的意思,而且,我是第一个要感谢这么多年的教育和努力终于把我变成一个专业小丑的人. 对于程序员新手,我充满怜悯,为了和缓的帮他热热身,我给了他一道温和的问题来消解我们之间的陌生. 我让Ada写一段程序,在纸上,打印出“hello“这个词10次.

程序员必读经典

- - 搜索引擎技术博客
你面试微软前必须要读的十本书:. Code: The Hidden Language of Computer Hardware and Software (《编码的奥秘》). Computer System: A Programmer’s Perspective (《深入理解计算机系统》) /Windows via C/C++ (《Windows核心编程》 / 《程序员的自我修养》.