Skip to content

Latest commit

 

History

History
152 lines (75 loc) · 8.42 KB

coder.md

File metadata and controls

152 lines (75 loc) · 8.42 KB

必备书籍

1.《程序员修炼之道》

原作名:《The Pragmatic Programmer: From Journeyman to Master》

作者:(美国)亨特(Andrew Hunt) (美国)托马斯(David Thomas)

《程序员修炼之道》由一系列独立的部分组成,涵盖的主题从个人责任、职业发展,直到用于使代码保持灵活、并且易于改编和复用的各种架构技术,利用许多富有娱乐性的奇闻轶事、有思想性的例子及有趣的类比,全面阐释了软件开发的许多不同方面的实践和重大陷阱。

2.《计算机程序的构造和解释(原书第2版)》

原作名:《Structure and Interpretation of Computer Programs》

作者:(美国)Harold Abelson (美国)Gerald JaySussman Julie (美国)Sussman

第2版中大部分重要程序设计系统都重新修改并做过测试,包括各种解释器和编译器。作者根据其后十余年的教学实践,还对其他许多细节做了相应的修改。

书中强调了几个新问题,其中重要的是有关的不同的途径中,计算模型里对于时间的处理所起的中心作用:带有状态的对象、并发程序设计、函数式程序设计、惰性求值和非确定性程序设计。这里为并发和非确定性新增加了几节,我们也设法将这一论题集成到整本书里,贯穿始终。

3.《人月神话》

原作名:《The Mythical Man-Month:Essays on Software Engineering Anniversary Edition》

作者:(美)Frederick P.Brooks (小弗雷德里克·布鲁克斯)

本书内容源于作者Brooks在IBM公司任System/360计算机系列以及其庞大的软件系统OS/360项目经理时的实践经验,该项目堪称软件开发项目管理的典范。

在本书中,Brooks为人们管理复杂项目提供了最具洞察力的见解,既有很多发人深省的观点,又有大量软件工程的实践,为每个复杂项目的管理者给出了自己的真知灼见。

大型编程项目深受由于人力划分产生的管理问题的困扰,保持产品本身的概念完整性是一个至关重要的需求。本书探索了达成一致性的困难和解决的方法,并探讨了软件工程管理的其他方面。

4.《人件》

原作名: People ware

作者: Tom DeMarco / Timothy Lister

本书专门讨论了软件开发和维护团队的管理问题,并向人们的传统认识提出了挑战。

深刻地洞察到软件开发的和维护问题不在于技术,而在于人。

作者在书中推崇人本管理思想,正确指出知识型企业的核心是人,而不是技术,呼吁给予软件工作者充分的自由和信任。任何需要管理软件项目或软件组织的人员都能从本书中寻找到有价值的建议。

全书从管理人力资源、创建健康的办公环境、雇用并留用正确的人、高效团队形成、改造企业文化和快乐工作等多个角度阐释了如何思考和管理软件开发的大问题——人(而不是技术),以得到高效的项目和团队。

5.《重构:改善既有代码的设计》

原作名:《Refactoring: Improving the Design of Existing Code》

作者:Martin Fowler

本书清晰揭示了重构的过程,解释了重构的原理和具体的实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。

书中每个重构都介绍了一种经过验证的代码变换手法的动机和技术。

本书提出的重构准则将帮助你一次一小步地修改你的代码,从而减少了开发过程中的风险。

6.《黑客与画家》

原作名:《Hackers and Painters: Big Ideas from the Computer Age》

作者:Paul Graham

本书是硅谷创业之父Paul Graham 的文集,主要介绍黑客即优秀程序员的爱好和动机,讨论黑客成长、黑客对世界的贡献以及编程语言和黑客工作方法等所有对计算机时代感兴趣的人的一些话题。

书中的内容不但有助于了解计算机编程的本质、互联网行业的规则,还会帮助读者了解我们这个时代,迫使读者独立思考。

“我们生活中的一切,都正在成为计算机 。所以,如果你想理解我们目前的世界以及它的未来动向,那么多了解一些黑客的想法会对你有帮助。”

7.《编程珠玑》

原作名: 《Programming Pearls Second Edition》

作者:Jon Bentley

本书内容围绕程序设计人员面对的一系列实际问题展开。

作者以其独有的洞察力和创造力,引导读者理解这些问题并学会解决方法,而这些正是程序员实际编程生涯中至关重要的。

本书的特色是通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行了透彻而睿智的描述,为复杂的编程问题提供了清晰而完备的解决思路。

本书对各个层次的程序员都具有很高的阅读价值。

8.《代码大全(第2版)》

原作名:Code Complete (Second Edition)

作者:Steve McConnell(史蒂夫·迈克康奈尔)

它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。

这本书中所论述的技术不仅填补了初级与高级编程技术之间的空白,而且也为程序员们提供了一个有关编程技巧的信息来源。

9.《深入理解计算机系统(原书第三版)》

原作名:《Computer Systems:A Programmer's Perspective》

作者: (美)Randal E.Bryant,(美) David R.O'Hallaron

主要介绍了计算机系统的基本概念,包括最底层的内存中的数据表示、流水线指令的构成、虚拟存储器、编译系统、动态加载库,以及用户应用等。

书中提供了大量实际操作,可以帮助读者更好地理解程序执行的方式,改进程序的执行效率。程序员的视角全面讲解了计算机系统,深入浅出地介绍了处理器、编译器、操作系统和网络环境,是这一领域的权威之作。

10.《算法导论》

原作名: 《Introduction to Algorithms, Third Edition》

作者:Thomas H. Cormen(托马斯•科尔曼)

本书将严谨性和全面性融为一体,深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受。

全书各章自成体系,可以作为独立的学习单元;算法以英语和伪代码的形式描述,具备初步程序设计经验的人就能看懂;说明和解释力求浅显易懂,不失深度和数学严谨性。

全书选材经典、内容丰富、结构合理、逻辑清晰,对本科生的数据结构课程和研究生的算法课程都是非常实用的教材。

11.《代码整洁之道》

原作名: 《Clean Code: A Handbook of Agile Software Craftsmanship》

作者:Robert C. Martin(罗伯特·C. 马丁)

软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。

本书提出一种观念:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,本书作者给出了一系列行之有效的整洁代码操作实践。这些实践在本书中体现为一条条规则(或称“启示”),并辅以来自现实项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。

本书阅读对象为一切有志于改善代码质量的程序员及技术经理。书中介绍的规则均来自作者多年的实践经验,涵盖从命名到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。