《编程匠艺》读书笔记之十四

第十六章 代码猴子——培养正确的编程态度和方法
  • 面对同一件事情,不同的程序员会以不同的方式工作,他们会各有各的解决方法,总是会有“不止一种方法来做这件事情”的想法,不同程序员的态度也会导致他们作出截然不同的决策。
  • 软件工厂中居住着许多奇怪的不能适应社会的人,我们把他们叫做代码猴子,任何重要软件系统都是由这些人来构建的,他们具有不同的技术水平和态度,并且都为同一个目标而努力。
  • 我们在一起工作的方式以及我们所编写的代码的类型,将不可避免的受到我们工作态度的影响,就像收我们的技术能力影响一样。

    我们可以将程序员分为以下种类:
  • 卖力工作的程序员。他会一边编码一边思考,常常会因为时髦而试着使用新的功能或语言习惯,这种尝试新技术的渴望,意味着他甚至在不恰当的情况下使用技术。这类程序员非常多产,喜欢学习新东西,而且对编程抱有特别的热情。这类程序员的缺点是比较急躁,在进行仔细思考之前就开始编码。
  • 代码猴子。编写的代码很可靠,但是没有创意。这类程序员性格恬静,他们把自己定位为维护程序员,在具有开拓精神的人去开发替代产品的时候,他们却在维护这旧代码库的运行。教代码猴子学习新东西是件很困难的事。
  • 权威。通常很安静和谦虚,他编写的代码很出色,但是却无法与凡人很好的沟通。他一般会独自做最基础的工作:框架、体系结构和内核等,他是万能的,无所不知无所不晓。但是能够良好的沟通的权威是很少的,某个权威的沟通能力越差,他就越有可能是个糟糕的导师,权威很难理解为什么其他人懂得不如他多,或者思考问题没有他们快。
  • 半权威。这类人可能是代码猴子中最危险的一种,他们自认为是天才,但是不是。他们通常比真正的权威更加张扬,并且非常自以为是,他委任自己做权威人士。
  • 傲慢的天才。这是各种权威中数量很少但是非常重要的一支,他们速度快,效率高,并且编写高质量的代码,虽然不完全算是权威,但是很受关注。他们非常爱与人争辩,因为他们通常是正确的,并且总是需要让自己正确的观点压倒其他人错误的意见。
  • 牛仔。这是一类糟糕的程序员,他们故意逃避艰苦的工作,一头扎到代码中,做最小量的工作来解决直接的问题,到处寻找捷径。他们急于完成每个任务,并转到下一个,如果他多少对过程有些了解,他就会把这叫做敏捷开发。
  • 规划者。他们会对要做的事情做太多的思考,以至于在他开始编写任何代码之前,项目早就过期了。这主要是“过度设计”的原因,他们的开发更集中于方法和建模,而不是原型设计和解决方案的创建。
  • 老前辈。这是老派的资深程序员,他们要么对从事最喜爱的工作而感到非常幸福,要么对错过了无数次升职机会而十分痛苦。他们一般不会乐于遭受愚弄。
  • 狂热者。他们盲目的认为所有大公司制作的东西都是最优秀的,他们追随大公司的产品,排斥任何其他的方法,并且很少知道其他的可选产品。他们既不实际,也不客观,这样会错过很多更好的非大公司的设计。
  • 单线条程序员。这类人以技术为生,呼吸的都是技术,这就是他的全部生命。他们具有明显的单向思维,专心致志,他将确保项目能够正常运行,否则他会拼命的努力。他的最大问题是会忽略一些事情,因为他总是和问题距离太近了。
  • 拖沓者。这是一种不愿意工作的懒散的人,这种人很难发现,因为他已经学会如何让自己看起来很忙碌。还有一种情况,他只会做自己想做的事,或者做一点他认为应该做的事,而不是他必须做的事情,所以虽然他总是在不停的工作,但是他从来也做不完。
  • 勉强的团队领导。这是很典型的情况:一位开发人员被提拔为团队领导,原因只是对他而言在技术上已经没有再升职的余地。这类人是程序员,他们愿意编程,不是团队的组织者和管理者,并且沟通能力很差。如果团队领导试图编写代码,事情就会变得很糟糕。我们要有同情心,尽一切可能去帮助团队领导。

    传说中理想的程序员应该具有以下品质:
  • 政治家。必须很老练,去应付那些怪异代码猴子的小过失,能够协调人员。
  • 亲切。可以愉快的和别人合作。
  • 艺术感。可以设计出优雅的解决方案。
  • 技术天才。编写的代码可靠耐用。

  • 我们要了解自己是哪种类型的程序员,确定如何利用你的有点,如何弥补你的缺点。

    作为一名优秀的程序员,你必须学会:
  • 团队精神。
  • 诚实和谦虚。
  • 不断的提高。
  • 体贴。
  • 热情。

  • 优秀的程序员:具备了优秀程序员的所有气质。
  • 糟糕的程序员:1. 对于编写优秀的代码不感兴趣;2. 在团队中与别人无法很好的合作;3. 总想让自己看起来比实际情况要好;4. 停滞不前——他们不努力提高自己。

你可能感兴趣的:(读书笔记)