Logo

卓有成效的程序员

卓有成效的程序员

ISBN:9787111264064

作者:Neal Ford

译者:thoughtworks公司(中国)

出版社:机械工业出版社

出版时间:2009-3

评价:☆☆☆☆☆

讲述技巧只能“授之以鱼”,而不能“授之以渔”。作者给出了编程过程中的各种生产率法则:加速、专注、自动化和规范化。所以归根结底,我们需要拥有“捕鱼”的能力。第一部分:机制,讲述了提高生产率的原理;第二部分:实践,则说明了根据原理,我们如何去实践。让我们放下鼠标,成为键盘手。学习使用UNIX(Linux),并且学会一门脚本语言(Python、Ruby),能够自动化就自动化,不要让你的计算机闲着,而你却累死了。要记住对于计算机我们是主人,它们是仆人。

在《Programming Perl》一书中,Larry Wall说道“懒惰、傲慢和缺乏耐性”是程序员的三大美德。懒惰,因为你一直致力于减少需要完成的工作总量;缺乏耐性,因为一旦让你浪费时间去做本该计算机做的事,你就会怒不可遏;还有傲慢,因为被荣誉感冲昏头的你会把程序写得让谁都跳不出毛病来。

注意力是难以维持的,尤其是当电脑似乎决心把你的注意力从工作中拖开时。阻止视觉和听觉的打扰可以帮助你保存良好的状态。

手工执行简单重复的任务会让你变傻,会消耗你的注意力,而注意力是最重要的生产率之源。相反,找出一种聪明的方法来自动化这些任务,这会让你变聪明,因为你能从中学到一些东西。并且以创造性的方式解决问题,有助于在将来解决类似的问题。

盲目固守标准就跟完全没有标准一样糟糕。有时候标准反而限制了一些有价值的变通。对于软件开发中给你所做的每一件事,你都要确保自己明白做这件事的原因。否则,你可能因为“愤怒的猴子”们而被受折磨。

太多的选择非但不能使用户高兴,反而使他们面临过多选择,以至于麻痹了他们做出决策的能力。

编程是工程和技巧的高度结合,它要求开发人员掌握多种多样的技能:分析思维能力,对各层次的细节以及美学的高度敏感,同时关注宏观和微观两个层面,以及对软件服务的目标对象具有敏锐和细致的理解能力。毫不夸张地说,开发人员必须比实际的业务执行者对业务流程更加知根知底:业务人员可以根据经验队新情况作出感性决定,而我们必须把一切都编码成算法和明确的行为。

开发人员有时候会陷入泥潭,需要旁人提供一些帮助或带给他们一些新思维。(PS:在了解到新思维时,注意不要成为“愤怒的猴子”,小心思维定式。)

comments powered by Disqus