最受欢迎的25本计算机编程书籍
- 相关推荐
程序员培养
《程序员培养》由一系列的独立的部分组成,涵盖的主题从个人责任、职业发展,直到用于使代码保持灵活、并且易于改编和复用的各种架构技术。利用许多富有娱乐性的奇闻轶事、有思想性的例子以及有趣的类比,全面阐释了软件开发的许多不同方面的最佳实践和重大陷阱。无论你是初学者,是有经验的程序员,还是软件项目经理,本书都适合你阅读。
代码清洁度
《代码清洁度(英文版)》提出一种观念:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,《代码清洁度(英文版)》作者给出了一系列行之有效的整洁代码操作实践。这些实践在《代码清洁度(英文版)》中体现为一条条规则(或称“启示”),并辅以来自现实项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。
代码大全
史蒂夫·麦康奈尔(Steve McConnell)被公认为软件开发社区中的主要作家和演讲者之一。他是Construx Software的首席软件工程师。他的著作包括《代码百科全书》和《快速软件开发》,并被《软件开发》杂志授予“杰出产品冲击奖”,以及《软件项目生存指南》和《专业软件开发》。
重建
重建,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。多年前,正是本书原版的出版,使重建终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。本书也因此成为与《设计模式》齐名的经典著作,被译为中、德、俄、日等众多语言,在世界范围内畅销不衰。
本书凝聚了软件开发社区专家多年摸索而获得的宝贵经验,拥有不因时光流逝而磨灭的价值。今天,无论是重建本身,业界对重建的理解,还是开发工具对重建的支持力度,都与本书最初出版时不可同日而语,但书中所蕴涵的意味和精华,依然值得反复咀嚼,而且往往能够常读常新。
轻松解释设计模式
《轻松解释设计模式》(影印版)的编写运用许多最新的研究,包括神经生物学、认知科学以及学习理论,这使得《轻松解释设计模式》(影印版)能够将这些设计模式深深地烙印在你的脑海中,不容易被遗忘。你将会更擅长于解决软件设计中的问题,并能够和你的团队成员用模式的语言来更好地沟通
人月神话
畅销20多年的经典杰作,以及软件工程领域的圣经收藏! IBM大型计算机之父Fred Brooks拥有20多年的开发经验,是有远见的。技术独具匠心与人文之美的完美结合!原件原件影印本,真正理解大师的明智思维,不再被翻译模棱两可打扰!它还包括最新的四篇经典论文,包括“ No Silver Bullet”!
代码清洁度-程序员的职业素养
收集超过40年编程生涯的编程大师经验
解释软件技术的原理,技术,工具和实践
帮助专业软件开发人员拥有令人钦佩的专业素质
成功的程序员在过去的工作和生活中经历了大小不确定性,并承受着无尽的压力。他们之所以成功是因为它们有共同点,并且深深关注创建软件所需的实践。他们将软件开发视为需要精湛工艺的技能。他们通过专业标准要求自己。他们具有专业素养。
软件开发专家Robert C. Martin在本书中介绍了真正的软件技能的原理,技术,工具和实践,展示了如何以自豪,自尊和自信来开发软件,如何实现出色的性能和丰硕的成果,要实现有效的沟通和准确的估算,如何以坦率的态度面对困难,引导读者认识到专业程序员肩负的重大责任,并说明什么是程序员的专业素质。
本书的具体内容包括:
●成为一名真正的软件专业人员的要求是什么,如何应对矛盾和紧张的时间表以及不合理的管理人员;
●如何实现平滑编程并克服阻塞状态;
●如何应对无尽的工作压力,避免倒塌;
●如何培养持之以恒的态度以及如何接受新的发展方法;
●如何善于安排时间,避免陷入困境。
●如何营造有利于程序员和开发团队繁荣的环境;
●我什么时候该说“不”,怎么说?
●我什么时候应该说“是”,承诺意味着什么。
该软件功能强大,简洁实用,令人赞叹。开发人员和用户都乐于使用此类软件。它们不是由机器编写的,而是由对软件技能有坚定信念的专业软件开发人员编写的。这本书将帮助读者成为专业软件开发人员,并赢得只有他们才能拥有的荣誉感和成就感。
修改代码的艺术
世界级计算机专家Michael C. Feathers的经典之作,软件开发大师Robert C. Martin作序倾情推荐,修改遗留代码的权威指南。深入剖析修改遗留代码的各种方法和策略,从理解遗留代码、为其编码测试、重建及增加特性等方面给出大量实用建议,是所有程序开发人员必读之作。
设计模式
本书结合了设计师实例,从面向对象的设计中选择了23种设计模式,总结了最有价值的面向对象设计经验,并以简洁和可重用的形式进行了表达。本书描述了一组设计良好且表达清晰的软件设计模式,这些模式在实际环境中特别有用。本书适用于大学计算机专业的学生,研究生和相关人员。
本书涉及的设计模式不描述新的或未经验证的设计,仅描述那些已在不同系统中多次使用的成功设计。
程序员访谈经典
这本书是原始Google高级面试官的经验。它与程序员面试的各个方面紧密相关。它全面而透彻地介绍了程序员应如何对面试做出回应以在面试中脱颖而出。第1章到第7章主要涉及对访谈过程的分析,访谈者的幕后决策和可能的问题,访谈之前的准备以及访谈结果的处理;第8章至第9章从数据结构,概念和算法,知识开始。共有4种类型的问题和其他面试问题。它向读者提供来自许多知名公司(如Microsoft,Apple和Google)的150个编程面试问题,并为每个面试问题提供详细的解决方案。
软技能
这本书真正着眼于从“人员”(而不是技术或管理)的角度着眼于软件开发人员的开发。本书讨论的内容不仅涉及生活习惯,而且还涉及思维方式,突出了技术中的“人为”因素,并全面解释了软件行业从业人员需要了解的所有“软技能”。本书着重于软件开发人员生活的方方面面,从揭示面试过程到集中制作杀手resume,从创建受欢迎的博客到建立您,从提高工作效率到如何处理“ procrastination”。甚至包括如何投资房地产以及如何关注自己的健康。本书分为七个章节,包括职业文章,自我营销文章,学习文章,生产力文章,财务文章,健身文章和精神文章。它总结了软件行业从业者所需的“软技能”。通过阅读本书,软件工程师,程序员和其他技术人员可以积极思考自己的职业,丰富自己的生活,并使自己更接近成功。
计算机程序的构建和解释
《计算机程序的构建和解释(原书第2版)》1984年出版,成型于美国麻省理工学院(MIT)多年使用的一本教材,1996年修订为第2版。在过去的二十多年里,《计算机程序的构建和解释(原书第2版)》对于计算机科学的教育计划产生了深刻的影响。第2版中大部分重要程序设计系统都重新修改并做过测试,包括各种解释器和编译器。作者根据其后十余年的教学实践,还对其他许多细节做了相应的修改。
编码:计算机硬件和软件背后隐藏的语言
这本书是关于计算机如何工作的。作者使用丰富的想象力和清晰的笔触,以一种易于理解的方式来解释看似复杂的理论,您根本不会感到呆板和僵硬。更重要的是,您将对计算机的工作方式有更深入的了解。这种理解不是抽象的,而是有一定深度的
算法导论
本书全面介绍了该算法。每种算法的分析既简单易懂,又非常有趣,并且保持了数学上的严格性。本书的设计目标是全面的,适合多种用途。内容包括:算法在计算中的作用,概率分析和随机算法介绍。该书专门讨论了线性规划,介绍了动态规划的两个应用,线性规划的随机化和近似算法等,以及递归解,快速排序中使用的除法和预期线性时序统计算法贪婪算法的元素的讨论。该书还介绍了强连通子图算法正确性的证明,哈密顿环的NP完备性的证明以及子集和问题。本书提供了900多个练习题和思考题,以及更详细的案例研究。
人文软件
在软件管理领域,几乎没有与这本书可比的书籍。作为一本经久不衰的畅销书,这本书深入了解了软件开发的最大问题不是技术而是人。人为因素不容易解决,一旦解决,您将更有可能取得成功。
这本书是软件管理领域的传奇经典,被称为“对美国软件业影响最大的一本书”。整本书从管理人力资源,创建健康的办公环境,雇用和保留合适的人员,有效的团队形成,转变企业文化和快乐的工作人员(更确切地说,从以下角度)解释了如何思考和管理软件开发的最大问题。技术)来获得高效的项目和团队。
作者在第三版中增加了6章,并对先前的内容进行了调整,以使其更能够应对当今的软件开发环境和挑战。例如,第三版讨论了领导力的一些病理症状,在上一版中未将其归纳为病理学。该书还描述了会议文化的演变以及如何管理新老成员组成的混合团队。为什么有些日常工具会成为团队的阻力而不是动力。任何需要管理软件项目或软件组织的人都可以从本书中找到有价值的建议
编程珍珠
本书是计算机科学方面的经典名著。书的内容围绕程序设计人员面对的一系列实际问题展开。作者Jon Bentley 以其独有的洞察力和创造力,引导读者理解这些问题并学会解决方法,而这些正是程序员实际编程生涯中至关重要的。本书的特色是通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行了透彻而睿智的描述,为复杂的编程问题提供了清晰而完备的解决思路。本书对各个层次的程序员都具有很高的阅读价值。.多年以来,当程序员们推选出最心爱的计算机图书时,《编程珍珠》总是位列前列。正如自然界里珍珠出自细沙对牡蛎的磨砺,计算机科学大师Jon Bentley以其独有的洞察力和创造力,从磨砺程序员的实际问题中凝结出一篇篇不朽的编程“珠玑”,成为世界计算机界名刊《ACM通讯》历史上最受欢迎的专栏,最终结集为两部不朽的计算机科学经典名著,影响和激励着一代又一代程序员和计算机科学工作者。本书为第一卷,主要讨论计算机科学中最本质的问题:如何正确选择和高效地实现算法。..在书中,作者选取许多具有典型意义的复杂编程和算法问题,生动描绘了历史上众大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程,引导读者像真正的程序员和软件工程师那样富于创新性地思考,并透彻阐述和总结了许多独特而精妙的设计原则、思考和解决问题的方法以及实用程序设计技巧。解决方案的代码均以C/C++语言编写,不仅有趣,而且有很大的实战示范意义。每章后所附习题极具挑战性和启发性,书末给出了简洁的解答。
企业应用程序架构模型
《企业应用程序架构模型》作者是当今面向对象软件开发的权威,他在一组专家级合作者的帮助下,将40多种经常出现的解决方案转化成模式,最终写成这本能够应用于任何一种企业应用平台的、关于解决方案的、不可或缺的手册。《企业应用程序架构模型》获得了2003年度美国软件开发杂志图书类的生产效率奖和读者选择奖。《企业应用程序架构模型》分为两大部分。第一部分是关于如何开发企业应用的简单介绍。第二部分是《企业应用程序架构模型》的主体,是关于模式的详细参考手册,每个模式都给出使用方法和实现信息,并配以详细的Java代码或C#代码示例。此外,整《企业应用程序架构模型》中还用了大量UML图来进一步阐明有关概念。
《企业应用程序架构模型》是为致力于设计和构建企业应用的软件架构师、设计人员和编程人员而写的,同时也可作为高等院校计算机专业及软件学院相关课程的参考教材。
计算机程序的构建和解释
算机程序的构造和解释(原书第2版)》1984年出版,成型于美国麻省理工学院(MIT)多年使用的一本教材,1996年修订为第2版。在过去的二十多年里,《计算机程序的构建和解释(原书第2版)》对于计算机科学的教育计划产生了深刻的影响。第2版中大部分重要程序设计系统都重新修改并做过测试,包括各种解释器和编译器。作者根据其后十余年的教学实践,还对其他许多细节做了相应的修改。
计算机程序设计艺术
首先介绍编程的基本概念和技术,然后详细说明信息结构,包括计算机中信息的表示形式,数据元素之间的结构关系以及有效的信息处理方法。此外,这本书还描述了编程在模拟,数值方法,符号计算,软件和系统设计中的主要应用。第三版增加了数十种简单但重要的算法和技术,并根据当前的研究趋势对数学的预备作了许多更改。
域驱动设计
《域驱动设计:软件核心复杂性应对之道》是域驱动设计方面的经典之作。全书围绕着设计和开发实践,结合若干真实的项目案例,向读者阐述如何在真实的软件开发中应用域驱动设计。书中给出了域驱动设计的系统化方法,并将人们普遍接受的一些最佳实践综合到一起,融入了作者的见解和经验,展现了一些可扩展的设计最佳实践、已验证过的技术以及便于应对复杂领域的软件项目开发的基本原则。《域驱动设计:软件核心复杂性应对之道》适合各层次的面向对象软件开发人员、系统分析员阅读。
编程生活
业界顶级程序员是如何走上编程道路的?
他们的编程工作创造并改变了人类历史。在此过程中有哪些经验教训?
他们对计算机软件行业的过去,现在和未来有何独特见解和见解?
他们需要培训,发现,选择和面试优秀程序员的哪些建议?
放开手头的工作,听听这些软件先驱的故事和建议。视野可以更广阔,思维可以更清晰,方向可以更清晰,生活可以更加令人兴奋。
作者Peter Seibel采访了以下15位世界一流的编程大师。这本书是在将近80个小时的访谈记录的基础上编撰而成的。
Jamie Zawinski:Lisp程序员,XEmacs开发人员,Netscape浏览器和Mozilla核心开发人员。
d布拉德·菲茨帕特里克(Brad Fitzpatrick):这本书中仅有的80年代,LiveJournal和内存缓存开发人员。现在适用于Google。
Douglas Crockford:JavaScript权威,JSON之父。现任Yahoo架构师。
Brendan Eich:JavaScript之父。 Mozilla的CTO。
约书亚·布洛赫(Joshua Bloch):如果戈斯林(Gosling)是Java的父亲,那么布洛赫(Bloch)是使Java真正成熟的教父,他是Java 2至5的核心架构师。现在,他是Google的首席Java架构师。
Joe Armstrong:Erlang和OTP(开放电信平台)框架之父。
西蒙·佩顿·琼斯(Simon Peyton Jones):Haskell的先驱。 ACM会员。现在,他是Microsoft Cambridge Research Institute的研究员。
Peter Norvig:Google研发总监。ACM研究员。
Guy Steele:精通多种语言,是Common Lisp和Scheme的开发者之一,Java语言规范的作者之一,并且是Common Lisp,Fortran,C,ECMAScript和Scheme等语言标准化委员会的成员。高性能科学计算语言的堡垒设计师。 ACM研究员,美国工程院院士。太阳公司院士。
Dan Ingalls:与Alan Kay合作开发Smalltalk,是该语言的真正实现者。现在,他是Sun公司的杰出工程师。
Peter L. Peter Deutsch:JIT(即时)编译技术的发明者之一,也是PostScript文件浏览器GhostScript的作者。 ACM会员。太阳公司院士。
肯·汤普森(Ken Thompson):图灵奖获得者。 Unix之父。 UTF-8 Unicode编码的设计器。
弗兰·艾伦(Fran Allen):图灵奖的首位女性获奖者。编译技术公认的权威。 IEEE院士,ACM成员,美国工程院院士。 IBM院士。
Bernie Cosell:Internet的创始人,是ARPANET路由计算机IMP的最早设计师之一。
Donald Knuth:多卷经典著作《计算机编程艺术》的作者,排版软件TeX的作者,并获得了图灵奖。
快速软件开发
提高软件开发速度并按计划完成项目是软件开发项目管理中最常见,最难解决的问题。在总结包括Microsoft在内的美国软件行业的数以万计的软件开发项目的实践经验,研究成果和经验教训的基础上,本书列出了数十种可以直接在软件中使用的经过实践验证的软件。在开发过程中进行应用,以提高最佳实践方法,开发策略,实践技能等的开发速度,帮助开发人员和项目经理在了解软件开发中最常见的错误的基础上,根据他们的实际情况,制定出项目进度表成本,质量和其他目标的最佳解决方案。
算法
作为算法领域的经典参考书,“算法(英语版本第4版)”全面介绍了有关算法和数据结构的必要知识,并特别讨论了排序,搜索,图形处理和字符串处理。第四版专门提供了每个程序员都应该知道的50种算法,并提供了实际代码,并且这些Java代码以模块化编程样式实现,读者可以轻松修改它们。本书的支持网站提供了本书内容的摘要以及更多资源,例如代码实现,测试数据,练习和教学课件。
持续交付
Jez Humble的“持续交付(发布可靠软件的系统方法)”描述了如何实现更快,更可靠和成本更低的自动化软件交付,并描述了如何改善反馈并改善开发人员,测试人员和操作人员项目经理要实现这个目标。 “连续交付(发布可靠软件的系统方法)”包括三个部分。第一部分解释了持续交付背后的原则以及支持这些原则的实践。第二部分是本书的核心,它全面介绍了部署管道。第三部分讨论有关部署管道的输入和输出的更多详细信息,包括增量开发技术,高级版本控制模式以及基础结构,环境和数据的管理和组织治理。 “连续交付(发布可靠软件的系统方法)”适合所有开发人员,测试人员,运维人员和项目经理学习和参考。
软件架构设计
“软件体系结构设计:大型网站的技术体系结构和业务体系结构的集成方式”围绕软件体系结构设计,系统地梳理了技术体系结构和业务体系结构的方法论和实践。 “软件体系结构设计:大型网站的技术体系结构和业务体系结构的集成”的内容分为五个部分。第1部分定义了体系结构的概念和范围;第2部分包括编程语言,操作系统,网络,数据库,框架和中间件,从软件等方面入手,并介绍体系结构的基本知识。第三部分从高并发,高可用性和稳定性,一致性,CAP理论等角度分析了技术架构知识。第四部分从业务架构思想,技术架构和业务开始。架构的集成观点,阐述了业务架构的知识。第5部分从个人素质和团队能力两个方面解释了从技术到管理的转换方法。通过本书,读者可以对商业软件的体系结构方法有一个全面的了解,同时对软件体系结构的核心功能有深刻的理解,并为个人技术的发展起到一定的参考作用。
“软件体系结构设计:大型网站的技术体系结构和业务体系结构的集成方式”不仅适合工程师和建筑师阅读,而且适合包括企业系统开发人员在内的软件开发从业人员。