读后感:《The Clean Coder: A Code of Conduct for Professional Programmers》
这本书作者分享了自己四十多年的编程经验,一些专业的程序员如何做的更好的一些职业习惯,项目排期,测试,应对压力,团队协作等,给我印象最深刻的是最后一章,将程序员和医生进行比较:
医生们是怎么做的呢?医院会在刚毕业的学生第一天报到时就马上把他们扔进手术室里去负责心脏手术吗?当然不会。医学专业已经建立起一套严密的辅导体系,这已经成为一种传统。医学专业人士会从大学选拔候选人,确保他们拥有最好的教育。这些教育中包含有大量的课堂学习以及在医院中和专业人士一起进行的临床活动。毕业后,在获得从业资格证书前,这些新医生需要花一年时间在导师的指导下进行实践训练,这时他们被称为“实习医生”,这段时间称为“实习期”。这是一种密集型的在岗训练。实习医生身边一直有示范者和导师陪伴。一旦实习期结束,每名医学专业人士都要参加三到五年以上的进一步的督导实训,这段时期称为“住院实习期”。通过和许多资深医生一起工作,在他们的督导下做更多工作,这些住院医生能够获得更大的信心。许多专业要求额外的一到三年时间的“搭档合作期”,让这些学生接受专门的训练和督导实践,直到他们通过考试,获得从业资格。这里关于医学专业人士的描述可能有些理想化,有些地方甚至可能不太确切。但是有一点是不争的事实:人命关天之时,我们不会把这些毕业生扔进手术室,随便安排他们一些病人,然后期望能产生好的结果。那么为什么在软件行业中会这么做呢?相对而言,由软件错误引起的伤亡的确少很多。但是也曾因软件错误造成过巨大的经济损失。由于对软件开发人员培训不足,不少公司曾遭遇过巨额的经济损失。但是,在软件开发行业中已经形成一种观点,认为程序员就是程序员,一旦毕业后就肯定会编程。事实上,一些公司在雇用一些刚从学校里出来的毛头小孩后,就会立马将他们组织成“团队”,把他们扔到关键系统的开发中,类似这样的情形屡见不鲜。这真是荒唐透顶!画家不会这么做,管道工不会这么做,电工也不会这么做。天哪,我甚至认为快餐厨师也不会这么做!在我看来,这些雇用计算机科班毕业生的公司在新员工培训上的投资,起码应该比麦当劳在服务生身上的投资要多些才对吧。我们不要自欺欺人地说这无关紧要。这很要紧。我们的文明运行在软件之上。是软件在传送和操纵我们日常生活中无处不在的信息,是软件在控制我们的汽车引擎、变速箱和刹车,是软件在维护我们的银行账户、发送账单和接收付款,是软件在帮我们洗衣服,是软件在告诉我们时间,是软件在电视上显示图片,是软件在发送短消息和拨通电话,是软件在我们疲劳时为我们带来娱乐。软件无处不在。假使我们在生活的各个方面,从最微不足道的地方到性命攸关的地方,都要极度信赖软件开发人员,那么我认为,大学毕业生在成为软件开发人员之前有一段合理的督导实训期,并不是什么不合时宜的过分建议。
越加觉得编程如果拿体育运动中的一种比较的话,和羽毛球很像,任何一个人都可以拿起来挥两拍子,经过简单的学习也能打的有模有样,但是想提高打的很好却非常的难,需要专业的教练指导,需要自己的不断地练习,需要在一次一次和高手的对决中掌握战略战术的运用。