程序员修炼之道:从小工到专家
译 序
本书原名“The Pragmatic Programmer”,也就是“注重实效的程序员”。正如书名所示,本书将围绕“注重实效”讲述关于编程的各种话题:个人责任、曳光弹开发、调试策略、元程序设计、按合约设计(Design By Contract)、重构、无情的测试,等等。看到本书的目录,你也许会奇怪,300多页的篇幅,怎么能涵盖如此多内容?但本书的两位作者Andy Hunt和Dave Thomas的确做到了,他们知道抵达编程的各种维度的途径,并找到了一种言简意赅的方式讲述这些途径;与此同时,在书中还提供了大量资源,可以帮助你找到各种更深入讨论这些话题的读物。本书的各个小节既独立又相关,你可以从头开始阅读,也可以随手翻开任何一页开始阅读——Dave Thomas就将本书视为一本“洗手间读物”。如果你是编程初学者,你可以从本书中了解到各种编程技术和方法,根据书中的指引拓展你的编程生涯;如果你是富有经验的程序员,同样可以从本书中获益:如果一本书能够全面、明晰地总结你从实践中获得的各种认识、总结你从其他书里散乱地读到的技术和方法,这本书就一定不是无益的。
除了是程序员,Andy Hunt还是一位木匠和音乐家,而Dave Thomas则喜欢驾驶单引擎飞机。尽管作者未曾明言,在本书的许多地方,你都将看到与这样的背景相关的叙述。我想,对于两位作者而言,编程就和木匠活、和音乐创作、或是驾驶飞机一样,既需要禀赋,更需要坚持不懈的学习和训练——这也正是书中所说的,编程是一种技艺,一种需要用心学习的技艺。也许,只有在长久的学习之后,我们才会开始明白书中提到的“hacker”的真正含义:“Someone who loves to program and enjoys being clever about it”(摘自《自由软件杂志》)。
我仍然要感谢侯捷先生和周筠老师,他们像以前一样,为了行业的发展扶掖后进,竭尽心力。谢谢你们的支持和帮助。倘若我未能始终如一,请你们原宥。感谢本书的编辑方舟先生,他是一个诚恳、好学的年轻人,从不因我的苛刻批评而存有怨言。他的热情、他的年轻,常常让我想起自己那些古怪的、正渐渐没入记忆深处的青春时光。
这是一本“注重实效”的书,其实也可以说,是一本“实用主义”的书。但正因为这样,两位作者在书序的最后给家人的谢辞或许就更加意味深长:
谢谢你们让我们梦想。
马维达于贵阳
E-mail: weida@flyingdonkey.com