《卓有成效的程序员》
David Bock
首席咨询师
CodeSherpas
在我们这个行业里,不同程序员的个人生产效率可谓判若云泥──大多数人也许要花一周时间才能干完的活,有些人一天之内就搞定了。这是为什么?简单来说,这些程序员比他们的大多数同行掌握了更多趁手的工具。说得更明白一点,他们真正了解各种工具的功用,并且掌握了使用这些工具所需的思维方式。这些“高产程序员”的秘密是某种方法学与哲学的混合体,而Neal在他的书中准确地捕捉到了这种神秘的东西。
时间回到2005年,在去机场的车上Neal问我:“你认为这个世界会需要再多一本关于正则表达式的书吗?”然后话题就变成了“我们希望有什么样的书”,并从此种下了你手上这本书的种子。回望自己的职业生涯中从“好程序员”跃升为“高产程序员”的那个阶段,思索当时的情景和前因后果,我这样说道:“书名我还没想好,不过副标题应该叫‘用命令行作为集成开发环境’。”那时我把自己的生产效率提升归功于使用bash shell带来的加速,但这并不是全部──更重要的是我对这些工具更加熟悉,我无须思索怎么完成一些日常工作,而是自然而然地就把它们做好。我们还花了一些时间讨论过度生产以及控制这种情况的办法。几年以后,在经过无数的私下讨论,以及围绕这个主题做了一系列演讲之后,Neal的大作终于得以付梓了。
在《Programming Perl》(O'Reilly出版)一书中,Larry Wall说到“懒惰,傲慢,缺乏耐性”是程序员的三大美德:懒惰,因为你一直致力于减少需要完成的工作总量;缺乏耐性,因为一旦让你浪费时间去做本该计算机做的事,你就会怒不可遏;还有傲慢,因为被荣誉感冲昏头的你会把程序写得让谁都挑不出毛病来。这本书不会使用这几个字眼(我已经用grep检查过了),但你会发现同样的理念在本书的内容中得到了继承和发扬。
曾经有那么几本书,它们影响了我的职业生涯,甚至改变了我看待这个世界的方式。说实话,我真的希望早10年看到这本书,因为我确信它会对它的读者造成极其深远的影响。