在日常工作里肯定会发现很多有趣的事情,极品程序员所做的事就是很有意思的。事实上,现在所讨论的极品程序员主要是从他们的判断力、行为举止、个人态度和匪夷所思的工作方式上来判断的,有的时候这些程序员一味的只是追求文档上的内容,而不擅于用分析方式来解决问题。
几乎每一个软件开发者多多少少都会出现头脑短路的现象,也就是说,下面所列举的各种极品程序员类型,总有一款是属于你的。
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”程序员。
当面对其他开发者问“你为什么不使用我们标准的接口来生成一个对话”的时候,文盲型程序员通常是盯着自己的脚尖然后是喃喃自语。
以上只是列举了一部分类型的极品程序员案例,当然,极品并不代表不好,只要把这种极品特征合理应用,它就会成为你的特长。不知道你是不是一个极品程序员?
本文向大家介绍程序员的八种境界,你在哪一境?,包括了程序员的八种境界,你在哪一境?的使用技巧和注意事项,需要的朋友参考一下 如果将程序员分为本文的8种类型,你会是哪一种呢? 在求职的时候,相信很多人都被问过这样的问题,“你对自己未来5年的职业规划是怎么样的?” 每当我被问起这个问题的时候,我的脑海里总是浮现出TwistedSister乐队1984年拍摄的一段视频里的这个场景:一位老师对着他的学生大
本文向大家介绍搞笑的程序猿:看看你是哪种Python程序员,包括了搞笑的程序猿:看看你是哪种Python程序员的使用技巧和注意事项,需要的朋友参考一下 不久前,在互联网上出现了一篇有趣的文章,讲的是对于同一个问题,不同层次的Python程序员编出的Python代码,显示出了不同的风格,代码都很简单,有趣。下面让我们一起来看看一个Python程序猿进阶的全过程吧。(偷笑) 编程新手 一年编程经验(学
本文向大家介绍关于程序员生活的一份调查,看看你属于哪一个群体吧,包括了关于程序员生活的一份调查,看看你属于哪一个群体吧的使用技巧和注意事项,需要的朋友参考一下 程序员周末都喜欢做什么?在公司加班?在家里加班?看电影?睡觉?程序员都怎么找女朋友?百分之八十的程序员表示,女朋友是啥,有好基友就够了。程序员都去哪些网站呢?嘿嘿嘿。。。
问题内容: 我正在尝试通过Java代码(hibernate)从MySQL DB获得MD5加密的通行证。但是我既不能得到String也不能得到任何合理的Java类型。 我得到的唯一消息是此无用的消息: java.lang.ClassCastException:[B不能转换为com.mysql.jdbc.Blob (或我尝试转换为的任何Java类型)。 这是我的方法: 这是完整的堆栈跟踪: 问题答案:
问题内容: Oracle JDBC驱动程序将哪些Java数据类型分配给Oracle SQL数据类型?这是否随类型的大小而变化? 问题答案: 正如其他人已经说过的:驱动程序将所有内容都映射到BigDecimal,即使将其定义为NUMBER(38)(可以将其映射到BigInteger)也是如此。 但是找出驱动程序映射很容易。只需在ResultSet的列上执行getObject(),然后查看驱动程序生成
问题内容: 例: 在package中,类型定义一个包装方法的接口。 什么是最简单的方法 找出 哪些类型 的标准库(即在此列在golang.org/pkg) 满足这个接口 ? 这仅仅是经验问题还是有其他帮助吗? 问题答案: 主要是根据经验。无论如何,例如: 而且golang.org网站还具有区分大小写的搜索功能。