飞龙的程序员书单 – 思想、工程、架构、职业发展
思想
编程珠玑,字字珠玑。这本书并不单纯讲解算法,而是由一系列实际问题切入,引导读者理解这些问题并学会解决方法,使用现有的算法,或者程序设计技巧解决问题。本书的特色是通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行了透彻而睿智的描述,为复杂的编程问题提供了清晰而完备的解决思路。
33章,有38位作者,每位作者贡献一章。在每章中的漂亮代码都是来自独特解决方案的发现,而这种发现是来源于作者超越既定边界的远见卓识,并且识别出被多数人忽视的需求以及找出令人叹为观止的问题解决方案。每位作者都将自己心目中对于“美丽的代码”的认识浓缩在一章当中,张力十足。38位大牛,每个人对代码之美都有自己独特的认识,现在一览无余的放在一起,对于热爱程序的每个人都不啻一场盛宴。
本书是lisp的入门书,也是讲授函数式语言思想的一本书。由于函数式语言特性,放在编程思想里也是可以的。这绝对不是一本初学者需要的书,但是是一本接触函数式编程就必须要读的书。十年前这本书出版了,十年后肯定会有机会需要读这本书。
作为程序员,我们需要不断地学习——既要学习新技术,也要学习如何解决各种领域的问题。为了提升学习效率,我们需要学习如何学习。程序员的思维修炼正是这样一本讲如何学习的书,它集合了认知科学,神经学,以及行为理论的最新研究成果,并系统的介绍了大脑的工作机制。通过这本书,你将学会如何高效的使用自己的大脑,从而提高思考能力,改善学习效率。
架构
这本书不用说了,gof book,设计模式相关书籍的鼻祖。任何讲设计模式的书,其实都离不开这23种设计模式。这本书不仅仅解释了每种设计模式的架构,还附上一个例子来讲解如何使用。
如果上面那本看不下去的话,来看看这本。
这本书主要讲解了企业应用(也就是大规模的web应用)所使用的架构风格,例如mvc,orm与事务。可以作为设计模式的补充。
所谓好的架构,使用者感觉不到,但是用起来顺手。这本书让最优秀的设计师和架构师来描述他们选择的软件架构,剥开架构的各层,展示他们如何让软件做到实现功能、可靠、易用、高效率、可维护、可移植和优雅。
如果说设计模式是涉及到类于类的关系,那这本书着重于类中方法的组织,和方法中代码的组织。这本书绝对不是仅仅是讲如何重构的书,它更像是一本编写可维护代码的指导手册。如何编写避免重构的代码才是本书的要义。
工程
这本书涵盖了从项目建立、需求分析、编码、测试到交付的所有细节、最佳实践和坑,堪称软件工程的百科全书。既然前人已经帮你把坑都踩过了,有什么理由不去读它呢?
作为软件工程的经典著作,《人月神话》的主要贡献是对软件开发过程的几个重要关键点,提出了独到的见解。主要包括:(1)外科手术式的团队组织;(2)核心概念要由很少的人来完成,保证概念的完整性;(3)必要的沟通;(4)保持适度的文档;(5)没有包治百病的银弹。
《人件》是项目管理图书中的经典之作,和《人月神话》齐名。这本书专门讨论了软件开发和维护的团队管理问题,并向人们的传统认识提出了挑战。书中指出了知识型企业的核心是人,而不是技术。《人月神话》关注“软件开发”本身,《人件》则关注软件开发中的“人”。
这本书介绍了时下最流行的时间管理方法之一:番茄工作法。早在小学语文课本上,李大钊先生就教育我们,“学就学个踏实,玩就玩个痛快。” 番茄法正是这样。这本书有助于提升拖延症人士的工作效率,让人受益良多。
职业发展
这本书并不局限于特定的编程语言或框架,而是提出了一套切实可行的实效(Pragmatic)开发哲学,并通过程序设计,测试,编程工具,以及项目管理等方面的实例展示了如何应用这套开发哲学,从而使得程序员更加高效专业。有人把这本书称之为迷你版代码大全——代码大全给出了大量的优秀程序设计实践,偏向术;而程序员修炼之道给出了程序设计实践背后的思想,注重道。
这本书运用其独特的思维方式,启发程序员不能只注重技能上的提高,还要关注自己的职业发展。书中涉及新旧技术的取舍、技术与业务的关系、技术是要专精还是要广博等,相信这也是长久以来困扰你的问题。带着这些问题去阅读此书,定会受益良多。此外,本书中的每一章都包含一篇或几篇各领域成功人士的文章,让你直接了解他们如何规划自己的职业生涯。