读书是一项极其有益的活动,可以让人们学习新知识,拓展视野,提高写作和思考能力。在这个特殊的日子里,我想向大家推荐10 本我最喜欢的技术书籍,你可以挑选感兴趣的来读一读。
01、《代码整洁之道》
尽管糟糕的代码也能运行,但如果代码不整洁,会使整个开发团队泥足深陷,写得不好的代码每年都要耗费难以计数的时间和资源。但是,这种情况并非无法避免。
我可以这么肯定地说:《代码整洁之道》值得所有的程序员读一读。软件的质量,不仅依赖于架构,更与代码质量息息相关。而代码的质量与其整洁度成正比关系,越整洁的代码,其质量毫无疑问的就会越高。
如何写出整洁的代码呢?代码简单直接,不仅能够提高代码的效率,还能够让阅读代码的人赏心悦目。
本书的第一章,对整洁代码下了一个定义,同学们都应该铭记在心。
1、整洁的代码力求专注,每个方法、每个类都应该全神贯注于一件事;命名更要给人一种“顾名思义”的感觉。
2、整洁的代码简单直接,从不隐藏设计者的意图。
3、整洁的代码应当有单元测试。
4、整洁的代码拒绝重复,其表达力直击人的心灵。
阅读本书需要你做些什么呢?你将阅读代码——大量代码。本书会促使你思考何谓正确的代码,何谓错误的代码。更重要的是,本书将促使你重新评估自己的专业价值观,以及对自己技艺的承诺。
02、《设计模式之禅》
《设计模式之禅(第 2 版)》是设计模式领域公认的 3 本经典著作之一,也是我们国内程序员写的一本书,趣味化十足,读起来也非常容易理解。
同学们都听说过,学习设计模式非常的重要,那么为什么这么重要呢,设计模式到底是什么?打个比喻学编程就像学武功一样。
武功要练得很牛逼,有两样东西不能丢。第一,是内功;第二,是武功秘籍。内功对应到编程就是我们编程基础能力,那编程的设计模式就可以想象成武术中的武功秘籍。
设计模式就是根据不同类型场景,设计优雅的(编码)解决方案。学好设计模式有很多好处,比如,容易看懂经典代码中的逻辑(很多优秀的开源框架大量使用了设计模式);应对面试时对答如流(设计模是面试重点);可以编写出优雅的解决方案(或者代码)。
03、《重构——改善既有的代码设计》
这本书在业界的名声也非常的响,只不过看起来就需要一些精力和耐力,上面这些书看完后,可以看这一本,对于重新审视现有代码有极大的帮助。
重构代码对提高整体的架构能力非常有帮助,因为是站在宏观的角度去思考的。不然很容易把原有的功能给整出 bug 了。
04、《人月神话》
在软件领域,很少能有像《人月神话》一样具有深远影响力并且畅销不衰的著作。
作者为人们管理复杂项目提供了最具洞察力的见解,既有很多发人深省的观点,又有大量软件工程的实践。
这本书算得上是饱经沧桑了,毕竟年月已久,但书中包含的思想恐怕永远不会过时。我读完后的感觉是,编程的确和生孩子有一定的相似性,追加人手会在一定程度上缩短项目周期,但并不能改变十月孕期的普遍规律。
05、《编程珠玑》
记得作者在前言中说过一句话:“一次不要读太多,一章足矣。”
本书是计算机科学方面的经典名著。 本书的确在强调算法,但是除了常规的算法,作者更多的是在表达出一种算法以外的思想:高效的算法没错,但是正确的事情应该用正确的方法来做。 每个算法都有高效的经典例子,但是什么时候用什么样的算法,探究问题的本质,真正的优雅的解决问题,才是本书所要传达的精神。
06、《程序是怎么跑起来的》
本书和《计算机是怎么跑起来的》是一对。这本书的特点就是书的开本比较小,全彩印刷,内容相对简单,整本书很轻。两本书结合起来读会更有趣。
07、《黑客与画家》
第一次看到这本书的书名时,感觉有点爱上的感觉。对于我们程序员来说,当一名“黑客”简直不要太帅。
这是一本能引发技术人思考的佳作,真正意义上的黑客精神、创业、编程语言,是这本技术散文集的三个主题。阮一峰的翻译很到位,很喜欢他的译文。
08、《图解 HTTP》
图解,顾名思义,里面有大量的图片,可以帮助我们快速的理解 HTTP。对于我们程序员来说,懂得 HTTP 的大致原理,可以无形装逼。
把一本书写薄还好读并且覆盖主要的知识范围并不是一件容易的事情。但是这本书做到的,而且从对 HTTP 知识的覆盖程度到易读性都做得相当好。
09、《软技能:代码之外的生存指南》
这本书的作者是真的牛逼,挣了很多钱,完全超乎我的想象。第一次读的时候,感觉一个程序员原来还可以干这么多事,并且和编码是不冲突的,大开眼界吧。
这本书中有一个观点,就是有意识地建立和维护个人品牌,把自己当做一件产品,既要负责生产,保证品质,也要负责销售,推向市场。这个观点对于我来说,还是蛮有影响力的。
10、《算法》
可能很多同学会存在这样一个误区:算法在工作当中很少会用到,需要的时候面向搜索引擎解决一下就行了。
但我想说的是,跳槽的时候很有用,因为一些大厂就喜欢考算法。除此之外,算法对阅读源码也很有帮助;况且,谁不想做一名编程的艺术家呢?长期来看,大脑思考能力是一个人最重要的核心竞争力,而算法是为数不多的能够有效训练大脑思考能力的途径之一。