每一个认真的程序员都应该读的10本经典书籍
书是知识和智慧的源泉,但是在今天已经很少有人读书了。程序员读书的情况更是少之又少,相反在更多的情况下我们是依赖网络去寻找答案。
科技正高速的向前发展,这个速度超过了人类历史上的任何时期,每隔几个月就会有新的编程语言或者工具产生以此弥补现有语言和工具的不足。
然而事实却是先前很多为人已经碰到了相同的问题并且找出了最好的解决方法,这些方法已经被编入了一些伟大的书中。
开发者可以从下面列出的书中选择其中的几本来阅读
The Pragmatic Programmer
这并不是我们所认为的一本普通的带有大量代码的编程书籍,事实上可以说它和任何编程语言都没有关系,相反的是这本书所包含的思想可以应用于任何编程语言。
这本书中包含的内容很广泛,像从模型中分离视图、打造一个高效的团队、避免重复知识等等都有涉及。此书不仅能改变你的编码习惯,它还将改变你作为一个程序员的品性。除此之外本书对你和你的代码之间也提出了很多具有实际意义的建议。
The Mythical Man-month: Essays on Software Engineering
这绝对是经典,一直以来都被作为软件领域的‘圣经’,在十九世纪七十年代首次出版,书中提到的很多概念在今天看来更加具有实际意义。不幸的是今天我们在软件开发中每年都在重复着书中所提到的那些错误的理念。因此这是每一个项目管理员和开发者都必须读的一本书。
正如题目所示,这是一本观点的集合。不过它是那样的经典,其唯一的缺点就是书中还在使用25年前的技术,但是这一点儿也不会削减这本书的价值。
Clean Code: A Handbook of Agile Software Craftsmanship
在软件行业这是一本史诗般的巨著,这本书不仅告诉你怎样写出好的代码,并且还能使你在软件开发中变得更有效率。
这本书描述了编写整洁代码的原则,模式和实践方法。书中学习整理代码的一些例子对于任何一个开发人员来说都是很有价值的。
书中所有的例子都是用java语言写的,但是学习方式对任何语言都是使用的。
The Clean Coder: A Code of Conduct for Professional Programmers
这是Rob Martin写的第二本书,强烈推荐在阅读完第一本Clean Code以后在阅读这本书,前者是关于Code(代码),而这本书是关于Coder(程序员)的。
·这本书讨论了程序员经常忽略的一些问题
·专业的程序员意味着什么
·如何将你自己看作一名真正的软件制作者
·处理冲突和工期紧的问题
·如何管理你的时间、如何扩展你的技能
·什么时候应该说‘不’
·释放压力
等等
Refactoring: Improving the Design of Existing Code
无论你多么努力,你的代码都不会是最优的除非你去改进它。因此,即使你的代码能正常工作,也必须对你的代码进行重构。
本书首先介绍了重构的原则:为什么要重构以及什么时候重构,如何解决重构的管理问题等等。接着本书将带你参观如何改进你的代码。
本书所有的例子都是由Java编写
Working Effectively With Legacy Code
我们每个人都会做一些自己所讨厌的事情,对于程序员来说最讨厌的事情莫过于接着前人遗留下来的代码进行编程,这也是我们在工作中不可避免的情况。
如何修改遗留代码?如何确定需要重构的部分?如何打破你要重构的代码之间的依赖性?如何保证你新写的代码能正常的工作?如何进行很小的改动来重构遗留代码?
以上都是很关键的问题,这本书中都给出了关键性的回答。如果我必须用一句话来概括这本书的本质的话那就是:“写单元测试,重构代码,保证测试能通过”。
Code Complete: A Practical Handbook of Software Construction
这是一项巨大的工作,对于任何一个想学习程序架构和最好的实践的人来说,这都是必须阅读的一本书。这是一本真正的百科全书——在最新一版中有960页。不要让这本书的页数吓住你,你可以用你自己的速度读完它,当你坚持读完这本书以后,你会很感激你读了这本书。
书中探索了软件开发的每一个方面。从对于代码结构,代码格式还有变量中的所有的问题这本书都提出了实用的建议;然后是方法和类的命名;一直到如何管理一个团队。而且书中提供了大量的可以覆盖特定主题的参考文献和额外的资料,这些文献和资料也是很值得我们阅读。
Head First Design Patterns
这是一本最非技术排版的编程书,每一页都包含涂鸦、图片和其他引人注目的东西。因此它可能给人一种很容易阅读的印象,但是它却讨论了编程中相当核心的话题——设计模式。
这本书并没有涵盖当前所有的设计模式,然而书中却覆盖了你需要的所有的设计模式。它将帮助你构造功能性的、高雅的、可重用的以及灵活的软件。而且书中还指出如何在各个设计模式中保持一个平衡。大多数关于设计模式的书都只是讨论了如何实现设计模式,本书的作者也讨论了为什么以及如何使用设计模式。
Peopleware: Productive Projects and Teams
这不是一本编程书,这是一本关于管理和激励程序员的书。很多时候,程序员(尤其是缺少经验的程序员)不能理解管理的思维过程,所以说对于开发人员来说这也是必须读的一本书。
软件开发是一个创造性的过程,但是大多数管理者将它看成是一个流水线过程,将开发者看作这台机器上的齿轮,并且将给开发者很短的时间作为提高开发者积极性的唯一方法。他们不关心开发者开心疑惑悲伤,不去理解开发人员或者他们的薪水。
如果你是一个管理员,如果你想要的是软件的质量而不是数量,请读一读这本书,里面肯定会有你想要的。
Soft Skills: The Software Developer's Life Manual
同样,这也不是一本关于编程的书籍,但是每一个程序员应该读一读这本书。
这是一本关于开发人员生活中其它方面的伟大书籍,它涉及到开发人员生活中可能出现的每件事情——关于你的职业、生活、身体、思想,不管你信抑或不信她还包含了灵魂。
作者本人就遵循书中的这些方式,现在他也是相当成功了。他的个人网站表明他已经可以放弃在早期的30年的工作。作者已经通过简短整洁的章节将工作生涯,销售你自己,学习,生产力,财产,健康和精神这些生活经验表达的淋漓尽致。每一章节都可以在一杯咖啡的时间充分的阅读完毕。
相关文章
程序员的工作经验真的有那么重要吗?
发布时间:2016/04/15 浏览次数:1969 分类:观点与感想
-
工作经验都是在工作中来的,不在这个公司中工作,对于这个公司来说何谈工作经验呢。其实工作经验反映的是你的解决问题的能力。作为一名程序员吗,在这一行摸爬滚打也有四五年
作为一名程序员,你值得骄傲
发布时间:2016/03/04 浏览次数:1653 分类:观点与感想
-
很多人都看不起程序员,一提到程序员人们都会想到‘屌丝’、‘宅男’、‘情商低’等等词语。网上也有很多调侃程序员的段子,当然其中不乏有一些是程序员自嘲,自嘲也好抑或是