《编程匠艺》代码猴子

从这些猴子里面或多或少都能找到自己的影子,我们并不是某一只特定的猴子,而是这些猴子的合体,给自己定位,让自己提升…

 

(1)卖力的程序员
特点:
手脚勤快,一边编码一边思考,满怀激情,天生的程序员
一有想法就开始编写代码,不会后退一步先做思考。
虽然有着很好的技术能力,但是他的代码从来没有显示出他真正的潜能
优点:
高产,喜欢新东西,对编程有特别的热情,工作卖力,发至内心地想编写出优秀的代码
缺点:
性急,代码写的快,质量不高,调试花的时间少,时间估计这方面很差劲,会做出合理的情况估计,但是却从来不能按照计划进行。所用的时间总是会比预期的要长
怎么办:
不要休掉热情,编写单元测试,编写代码前三思而后行
与这类人打交道:
最佳的编程伙伴,看看他每天在做些什么,计划是什么,关注他的设计,鼓励他多思考,如果依赖这么一位程序员的工作,尽早向他要一个预发行版本,并检查他的单元测试
一个卖力工作的程序员会从恰当的管理中受益,帮助他自律,确保他谨慎地按照项目计划安排他的时间

(2)代码猴子
特点:
代码可靠,但是没创意,会诚心诚意完成任务,并时刻准备着下一项任务,总是干粗活,被称为"平凡的程序员"
性格天井,害怕好工作的压力,维护老代码,只能分到低风险的工作
如果给予一定的指导,初级代码猴子就会学习和进步,年长的代码猴子更乐意以代码猴子的身份退休
优点:
准时并且不错地完成任务,有条不紊,面面俱到,并且能很好地估计时间,按时完成任务
缺点:
虽然细心并且有条理,但是思维局限性很强,缺乏设计的眼光和直觉,会无条件遵循现有的代码设计约定,不会提出问题,也不会为出现的问题承担责任,也不会主动修正问题,对新的技术不感兴趣
怎么办:
勇于承担更多项目和责任,并参加到设计的工作中,采取主动的工作态度,尽早确定可能失败的地方,并找出方案
与这类人打交道:
不要看不起代码猴子,赞扬他们的代码,教给他们改善工作的技巧

(3)权威
特点:
传说中的天才,程序界的圣贤,安静,谦虚,代码很出色,却无法与凡人沟通,独自做最基础的工作:框架,体系结构和内核等
优点:
经验丰富,了解所有的现代技术,也清楚哪些旧技术更好,能编写成熟,可维护的代码
缺点:
能够良好沟通的权威为数不多,思维跳跃太快,超出凡人的水平,沟通能力差使他成为一个糟糕的导师
怎么办:
试着走出理想的世界,不要期望每个人都像你那么敏捷,或按照你的思维去思考,为了把问题说简单清楚,需要运用很多技巧
与这类人打交道:
学习,学习。。。

(4)半权威
特点:
自认为天才,其实不是,他的话听起来很有道理,实际上是垃圾,最危险的代码猴子。管理人员认为他是天才,张扬,傲慢,自以为是。
优点:
自信
缺点:
太高估自己的能力,他的决策会危机项目的成功
怎么办:
对自己的技术做一个中肯的评价,不要高估自己,关注自己的代码质量,而不是你看上有多重要,有多聪明
与这类人打交道:
一定要非常小心,过滤他说的废话,抓住他设计的缺陷,检查他糟糕的代码

(5)傲慢的天才
特点:
各种权威中数量很少但是很重要的一支,速度快,效率高,质量高,有很强的优越感,时常觉得屈就
爱与人争辩,如果你是正确的,他会一直不停地说下去,一直到争论的内容对他有利
优点:
相当强的技术能力,与强大的技术领导力,如果得到团队的支持,将成为团队的催化剂
缺点:
不喜欢被证明错误,从来不说不知道,不愿意遭受受冷落的羞辱
怎么办:
谦虚待人处事,尊重他人意见,向更有阅历的人学习,不要自欺欺人,一定要对自己诚实
与这类人打交道:
表达敬意,还要向他周围的其他程序员表达敬意,避免与他进行毫无建设性的争论,如果你有理由据,坚持你的观点,不要被他吓到

(6)牛仔
故意避免艰苦的工作,到处找捷径,急于完成任务,并转到去做下一个,用敏捷作为接口
优点:
牛仔写的代码可运行,但不是很优雅。喜欢新的东西,但是很少深入研究
缺点:
需要话费大量的时间来在牛仔后面做清理工作,只会有限的技术,没有真正的工程技能
怎么办:
学会如果正确地快速编写代码,为你的工作而骄傲,多花些时间,并试着去改变
与这类人打交道:
永远不要和牛仔的代码打交道,他们并不是居心不良,只是有点懒,要组织对他们代码的审查,让他们结对编程

(7)规划者
对项目作太多的思考,以至于项目拖延太长时间
受过良好的教育,进行过大量的学习和阅读,了解什么是"正确的开发过程",最终会成为中层管理人员,然后被开除
优点:
他们确实会设计。他们也确实在思考,也不会写出没有经过深思熟虑的代码
缺点:
过度设计,创建出非常复杂的系统,思考太多,没有足够的时间来做事,懂得很多,但是无法从理论升华到实践
怎么办:
在规划与行动之间建立一个更好的平衡,安慰自己说花过长的时间进行设计,总比编写糟糕的代码要好
与这类人打交道:
在时间上超前一些,插入"设计完成"关键点,避免与规划者开会。

(8)老前辈
资深程序员,要么对他仍在从事编码而幸福,要么对错过无数次升职而十分痛苦,不愿意学习,容易发怒
优点:
成熟的编码方法,丰富的经验和智慧,
缺点:
不愿意学习新技术,受够了那些名不符实的时髦理念,对新事物反映慢,抵制改变
怎么办:
不要对年轻的程序员过于苛刻
与这类人打交道:
搞清楚他是热爱贬称还是职业生涯已经穷途末路,不要和他混在一起,明智地选择你与他之间的战斗,对他表示尊重。

(9)狂热者
经受了洗脑的皈依,盲目地认为大公司只制作的东西都是最优秀的,盲目追求大公司的产品,排斥其他方法,很少知道其他的可选产品
优点:
对大公司的产品极为熟悉,而且会基于这些产品做出真正优秀的设计,但不一定是他的最高效率
缺点:
不客观也不实际,会不停地热捧大公司的产品
怎么办:
不要成为技术上的盲从者,要接纳不哦听那个方法和新的思维方式,要不用高人一等的眼光看待其他技术,也不要有偏见
与这类人打交道:
不要陷入与狂热者进行哲学讨论的麻烦当中,不要试图解释你所喜欢的技术的优点---他们不会听
如果遇到愚蠢的辩论,就用准备充分的,准确的,详细的信息告诉他你方法的优点,以及他方法的缺点

(10)单线条程序员
以技术为生,呼吸的都是技术,技术是他的生命,明显的单向思维。
优点:
专心致志,非常坚定,保证项目能够正常运行,否则他会拼命地努力,愿意去做大量的额外工作,而且当截止日期临近时,他确实很有用
缺点:
他希望别人也像他那样专心投入,对那些不想这样的人会表示反感,最大的问题就是会忽略一些事情,因为他总是与问题距离太近了
怎么办:
开始集邮,或开始做类似的事情,文武之道一张一弛....
与这类人打交道:
与他们合作会非常棒,他们热情是有传染性的,如果团队有他们的加入,项目推动会非常快,只要有半点机会,他们会把你的工作也做了,但是以后你不得不维护陌生人的代码

(11)拖沓者
不愿意工作的懒散的人,这种人很难发现,因为他们已经学会如何让自己看起来很忙
还有一种是他只会做自己想做的事,频繁地参加派对,知道如何找乐子
优点:
知道如何找乐子。。。
缺点:
明显的负担
怎么办:
要有职业精神,开始在工作中投入精力
与这类人打交道
不要抱怨他,他很快会得到报应的,给一些明确的截止日期让他紧张起来。

(12)勉强的团队领导
一位开发人员被提拔为团队领导,原因只是对他而言技术上已经没有再升职的机会
没有正确的领导技巧,却在竭力维持
优点:
对程序员的境遇有真切的同情,保护程序员不被管理层挑毛病
缺点:
很天真地安排自己在一天中既做管理也编程,结果,哪一件都做不好
怎么办:
接受培训,如果做得不开心,试着调动,做你憎恨并且不擅长的工作,是对生命的浪费,且毫无意义
与这类人打交道:
要有同情心,尽一切可能去帮助团队领导,按时向他回报,尽量按计划完成工作。

做最"愚蠢"的人
团队精神,诚实和谦虚,不断提高,体贴,热情

posted @ 2010-12-26 21:55  疯狂的咸鱼  阅读(636)  评论(0编辑  收藏  举报