作为一名程序员,日常的工作除了上班撸代码就是加班撸代码了。撸码其实不难,无非询问Google,StackOverflow,解决方法和demo一箩筐,可是撸的一手好代码着实不易。无独有偶,码农一抓一大把,优秀的程序员却不易寻觅。优秀的程序员既不可能出自各种天花乱坠的培训机构,更不可能来自挖掘机摇篮山东布鲁斯特,大多数优秀的程序员有一个共同点,那就是自学。
为什么是自学呢?首先大学的教育不可能让你成为专家级别的程序员,其次为了能从团队脱颖而出必然付出更多的努力来学习。自学其实是一种很强有力的能力,一旦掌握,许多技术和问题都可以轻松搞定。
中学物理常客牛顿曾说,”如果我比别人看得更远,那是因为我站在巨人的肩上“。他山之石,可以攻玉。阅读大师巨匠的作品无疑是最有效的自学方式之一。业界知名的Bob大叔是代码整洁和面向对象编程的坚定支持推进者,其在这方面的著作可以称得上权威。Martin Fowler同样名声在外,他的关于重构的著作《重构—-改善既有代码的设计》应该是人手一本。阅读诸如上面两位大家的著作,对技术提到大有裨益。
本文讲列举六本业界牛人的著作,也是编程书籍中经典的经典,这几本书并非简单的教程书籍,而是教给你方法和思想来解决现实遇到的问题,提高编码的技艺和境界。
重构—-改善既有代码的设计
何为重构,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。本书虽然使用Java语言书写示例代码,但是其概念与思想同样适合于其他语言。书中,作者以一些平淡无奇,甚至带有坏味道的代码开始,一步一步地修改转变成更加灵活,可重用的代码。通过书中的示例,你会清楚地明白什么才是整洁的代码。重构其实依然成为经验丰富的程序员的必备技能,当你想要改善重构代码时,读一读这本书就会让你有章可循,豁然开朗。
代码整洁之道
这是我最喜欢的一本书,不止一次我将它推荐给我的同事,读者还有学生。我认为它可以称得上软件开发与编码方便最好的一本书。Bob大叔我想无需做介绍,他写过一个关于敏捷开发的系列书籍,我的书架上就有他的《代码整洁之道》,《程序员的职业素养》,《敏捷软件开发(原则模式与实践)》,《敏捷软件开发(原则模式与实践)》,《UML for Java For Programmers》, 《Extreme Programming in Practice》等这些书籍。虽然他的这些书有点老旧,但是这些书仍然很有价值,纵使数十年之后,这些书依旧受用,尤其是在面向对象编程方面。 本书不仅仅是告诉你要做什么,还教会你什么不能做。书中有关于代码味道的一个章节,全面列举了大多数程序员遇到的各种错误,其后的章节则详细描述如何纠正这些错误。比如如何将过长的switch声明转换成遵循开放闭合原则的模型,如何利用集成和多态。再次啰嗦一下,这本书确实值得每个程序员拥有。和上本书一样,书中的例子使用Java语言,但依然适合使用其他面向对象编程语言的开发者阅读。想要撸的一手好码,这本书必不可少。
想必这本书大家都曾阅读过,这就是鼎鼎大名的《代码大全》,从某个角度看,它其实就是C++版的《代码整洁之道》。本书的目标就是帮开发者使用做高质的代码写出更好的软件。同样书中也涉及了编程中常见问题和最佳实践。这本书也可以称得上是必读书籍,尤其是对于C和C++程序员。《代码大全(第2版)》中所论述的技术不仅填补了初级与高级编程实践之间的空白,而且也为程序员们提供了一个有关软件开发技术的信息来源。《代码大全(第2版)》对经验丰富的程序员、技术带头人、自学的程序员及没有太多编程经验的学生都是大有裨益的。可以说,只要你具有一定的编程基础,想成为一名优秀的程序员,阅读《代码大全(第2版)》都不会让你失望。
单元测试的艺术如果非要做一件改善项目,提高开发者水平的事情,我想那就是让开发者掌握单元测试的能力。对于专业的开发者来说,单元测试是一项必备的技能,多数的程序员却不具备TDD(测试驱动开发)的能力。我虽然在不太遵循TDD这种模式,但是也会为自己写的或维护的代码编写单元测试。对于工程来说,开源项目基本都严格遵守执行单元测试,而很多商业的工程则在单元测试方面有所缺失。一个拥有单元测试的项目会变得更加容易维护和更改。本书会介绍成功的项目与失败项目的差别,可维护的代码库与不可维护的代码库之间的区别。本书示例为.NET代码,但这并不会影响你了解单元测试。如果你是一名技术负责人或者项目负责人,这本书可以帮你更好地把控项目代码质量。如果你看Java更舒服的话,也可以看一看这本书《JUnit实战(第2版)》。
精益软件开发管理之道《精益软件开发管理之道》是一本软件开发方法学的书。作者从24个不同的视角,在更大的空间、时间、行业、文化背景下,考察了敏捷和精益方法。《精益软件开发管理之道》详细阐述了敏捷和精益开发方法取得成功的深层原因。《精益软件开发管理之道》包括以下内容:系统思考,以适当足够的方式关注客户;技术杰出,介绍了杰出软件开发的基础-低耦合的架构、测试驱动的开发过程等;可靠交付,讨论了工作流和日程计划,以及反馈的重要作用;无情改进,讨论了所有精益组织的基本特点:持续不断、永不满足的改进;卓越的人,卓越的结果来自于卓越的人;一致的领导,讨论在领导团队中达成一致。
设计模式 可复用面向对象软件的基础
这本书要么你读过,要么就是听说过,这就是经典的GOF(Gang of Four 中文译为四人帮)设计模式一书。该书作者为四人,分别是Eric Gamma, Richard Helm, Ralph Johnson, 和John Vissides。四位顶尖的面向对象领域专家精心选取了最具价值的设计实践,加以分类整理和命名,并用简洁而易于重用的形式表达出来。本书已经成为面向对象技术人员的圣经和词典,书中定义的23个模式逐渐成为开发界技术交流所必备的基础知识和语汇。使用这些设计模式,我们可以设计出灵活,优雅和可重用的可扩展的设计。
原文参考:6 Books to Learn and Master Programming and Coding – Must Read
出处:droidyue.com/blog/2015/07/04/six-books-every-programer-must-read
热门评论
有其中三本
值得推荐
mark