每个程序员都应该读的最有影响力的书是什么?

如果你能回到过去,告诉自己在你作为开发人员的职业生涯开始时阅读一本特定的书,那会是哪本书?

我希望这份清单是多种多样的,涵盖广泛的事情。

要搜索:使用右上角的搜索框。使用inquestion:this搜索当前问题的答案,例如:

inquestion:this "Code Complete"
1110340 次浏览
  • 代码完成(第2版)史蒂夫·麦康奈尔
  • 务实的程序员
  • 计算机程序的结构和解释
  • C编程语言由Kernighan和Ritchie
  • 算法概论 by Cormen, Leiserson, Rivest&Stein
  • 设计模式四人帮
  • 重构:改进现有代码的设计
  • 神秘的人月
  • 计算机编程的艺术 by Donald Knuth
  • 编译器:原理、技术和工具作者:Alfred V. Aho,Ravi Sethi和Jeffrey D. Ullman
  • 哥德尔、埃舍尔、巴赫 Douglas Hofstadter
  • 干净的代码:敏捷软件工艺手册 Robert C. Martin
  • 有效C++
  • 更有效的C++
  • 代码 Charles Petzold
  • 编程珍珠乔恩·本特利
  • 有效地使用遗留代码迈克尔·C·费瑟斯
  • Peopleware由Demarco和Lister
  • 工作中的程序员 Peter Seibel
  • 你在开玩笑吧,费曼先生!
  • 有效Java第二版
  • 企业应用程序架构模式马丁·福勒
  • 小阴谋家
  • 经验丰富的阴谋家
  • 为什么(尖锐)Ruby指南
  • 囚犯正在经营庇护所:为什么高科技产品让我们疯狂以及如何恢复理智
  • Unix编程的艺术
  • 测试驱动开发:示例 Kent Beck
  • 敏捷开发人员的实践
  • 不要让我思考
  • 敏捷软件开发、原则、模式和实践 Robert C. Martin
  • 领域驱动设计埃里克·埃文斯
  • 日常事物的设计唐纳德·诺曼
  • 现代C++设计安德烈·亚历山大斯库
  • 最佳软件写作I Joel Spolsky
  • 编程实践由Kernighan和派克
  • 务实的思考和学习:重构你的Wetware安迪·亨特
  • 软件估计:揭开黑色艺术的神秘面纱史蒂夫·麦康奈尔
  • 热情的程序员(我的工作去了印度)查德·福勒
  • 黑客:计算机革命的英雄
  • 算法+数据结构=程序
  • 编写实体代码
  • JavaScript-好的部分
  • 变得真实 by 37信号
  • 编程基础由Karl Seguin
  • 计算机图形学:C语言原理与实践(第二版)
  • 思考Java by Bruce Eckel
  • 计算系统的元素
  • 重构到模式 Joshua Kerievsky
  • 作者:Andrew S. Tanenbaum
  • 带注释的图灵
  • 让我们变得聪明的东西唐纳德·诺曼
  • 永恒的建筑方式克里斯多夫亚历山大
  • 截止日期:一本关于项目管理的小说汤姆·德马科
  • C++编程语言(第3版)由Stroustrup
  • 企业应用程序架构模式
  • 计算机系统-程序员的观点
  • C#中的敏捷原则、模式和实践 Robert C. Martin
  • 不断增长的面向对象软件,引导测试
  • 框架设计指南布拉德·艾布拉姆斯
  • 对象思维 David West博士
  • 作者:W. Richard Stevens
  • 黑客和画家:计算机时代的大创意
  • 新机器的灵魂 Tracy Kidder
  • CLR通过C#杰弗里·里希特
  • 永恒的建筑方式克里斯多夫亚历山大
  • C#中的设计模式 Steve Metsker
  • 爱丽丝梦游仙境刘易斯·卡罗尔
  • 禅与摩托车维修艺术 by Robert M. Pirsig
  • 关于脸-交互设计的要点
  • 每个人都来了:没有组织的组织的力量 Clay Shirky
  • 编程之道
  • 自然的计算美
  • 编写实体代码史蒂夫·马奎尔
  • 菲利普和亚历克斯的网络出版指南
  • 面向对象的分析和设计与应用 Grady Booch
  • 有效Java Joshua Bloch
  • 作者:N. J. Cutland
  • 编程大师
  • 《道德经》
  • 高效程序员
  • 欺骗的艺术凯文·米特尼克
  • 职业程序员:不完美世界的游击战术克里斯多夫邓肯
  • 人工智能编程范式:Common Lisp中的案例研究
  • 末日大师
  • 使用NUnit在C#中进行实用的单元测试安迪·亨特和戴夫·托马斯与马特Hargett
  • 如何解决它乔治·波利亚
  • 炼金术士保罗·科埃略
  • Smalltalk-80:语言及其实现
  • 编写安全代码(第二版)迈克尔·霍华德
  • 作者:Philip Wadler和Richard Bird
  • 没有虫子! by David Thielen
  • 返工 Jason Freid和DHH
  • JUnit在行动

@Peter Coulton——你不读Knuth,你研究它。

对我来说,我的工作……纯功能数据结构非常适合思考和开发函数式语言。

代码完成是首选,但我也引用了四人组的设计模式和Craig Larman的应用UML和模式。

克里斯多夫·亚历山大的《建筑的永恒之路》是另一部伟大的著作。尽管它是关于建筑结构的,但它包含在我已经读过的许多伟大的编程书籍的书目中。

另一个,我从中学到了很多新东西,是Clifton Nock的数据访问模式。

我已经有一段时间了,所以我发现有影响力的大多数书不一定适用于今天。我确实认为理解你正在为其开发的平台(硬件和操作系统)是至关重要的。我也认为从别人的错误中学习也是很重要的。所以我推荐的两本书是:

计算灾难寻找愚蠢:二十多年的高科技营销灾难

务实的程序员:从熟练工到大师毫无疑问。其中的建议非常好,简单,给人的感觉就像是“常识程序员”。喜欢它。

K&R

@Juan:我知道Juan,我知道-但是有些事情只有真正开始做手头的工作才能学到。整天说抽象的理想只会让你成为一个学者。只有在抽象的应用中,我们才能真正理解它们存在的原因。: P

@Keith:Alan Cooper提到了“囚犯正在经营庇护所”-这肯定让人大开眼界,自从我读了那本书以来,任何与我合作的开发人员都听过我提到它所支持的想法。

弗雷德·布鲁克斯的神话人月http://en.wikipedia.org/wiki/The_Mythical_Man-Month

有效地使用遗留代码是一本非常棒的书,它非常详细地介绍了如何正确地单元测试代码以及它的真正好处。它真的让我大开眼界。

我有一些关于这个主题的(相当古老的)博客文章

没有特别的顺序,除了它们如何排列在我的书架上:

  • 务实的程序员
  • Rafactoring by Fowler
  • 羽毛的有效地使用遗留代码。这实际上是业务重构的配套卷。
  • UML Distilled福勒。它的其他优点之一是简洁。
  • 调试开发过程史蒂夫·马奎尔
  • 设计模式(又名“四人帮”)由Gamma等人

Kent Beck的实现模式。

alt texthttp://ecx.images-amazon.com/images/I/51JHn-6oNwL._SL500_AA240_.jpg

您可以学习如何通过编程与人交流。

Deitel和Deitel,“C++:如何编程”

XUnit测试模式

阅读Head First设计模式比GoF书更容易理解的介绍。我记得在每一章之后我都感觉自己已经升级了。

Kent Beck的TDD示例测试驱动开发

除了其他人的建议之外,我建议购买SICP的副本,或者在线阅读。这是我读过的少数几本书之一,我觉得大大提高了我在设计软件方面的技能,特别是在创建良好的抽象层方面。

一本与编程无关的书,但也是程序员(IMO)的好书是具体数学。其中的大多数(如果不是全部)主题对程序员都很有用,它比我迄今为止读过的任何其他数学书都更好地解释了事情。

我是罗伯特·C·马丁的大多数作品的忠实粉丝,尤其是敏捷软件开发、原则和实践干净的代码:敏捷软件工艺手册

敏捷软件开发 Alistair Cockburn

我觉得《The Art of Unix Programming》是Eric S. Raymond写的一本很好的书,他试图让我们理解软件设计的几个原则(主要是简单性)。这本书是每一个准备在Unix平台下开始一个项目的程序员的必读书。

兔子先生的ActiveX指南

我有几本对我影响很大的好书,到目前为止我还没有在这个列表中看到:

日常事物的心理学作者:Donald Norman。为他人设计的一般原则。这似乎对UI最有好处,但如果你仔细想想,它几乎在任何地方都有应用程序,除了原始开发人员之外,还有人必须使用界面;例如。G. API和设计界面的方式,使其他开发人员形成正确的心理模型,并从API本身获得适当的反馈。

软件测试的艺术作者:Glen Myers。对测试软件的一个很好的、一般的介绍;适合程序员阅读,以帮助他们像测试人员一样思考。e.想想可能出错的地方并为此做好准备。

顺便说一句,我意识到这个问题是“最具影响力的一本书”,但讨论似乎已经变成了列出供开发人员阅读的好书,所以我希望我能原谅我列出两本好书而不是一本好书。

虽然我同意上面的许多书都是必读的(实用程序员、神话人月、计算机编程艺术和SICP立即浮现在脑海中),但我想从一个稍微不同的方向推荐Edsger Dijkstra的编程的一门学科。尽管它已经32岁了,但对“可验证性设计”的强调是高度相关的(即使“可验证性”意味着“证明”而不是“单元测试”)。

有很多人投票支持史蒂夫·麦康奈尔的《代码完成》,但他的软件项目生存指南书呢?我认为它们都是必读的,但原因不同。

我最近读了在代码中做梦,发现这是一本有趣的书。也许自从我开始读它的那天起,钱德勒1.0发布后就更是如此。阅读一个由才华横溢的人组成的项目团队试图“改变世界”的成长痛苦和错误给你很多值得学习的地方。斯科特也带来了很多程序员的传说和智慧,这只是一本有趣的书。

美丽的代码有一两件事让我有了不同的想法,特别是关于自上而下运算符优先级的章节。

这不是对这个问题的直接回答,因为我觉得上面已经回答过了,然而,其中一本对我如何编码产生影响的书是代码阅读,第1卷:开源视角

alt texthttp://g.bookpool.com/covers/405/0201799405_140_30O.gif

代码就是法律-你正在用[你选择的语言]进行所有这些写作、编辑和思考,但是为什么?你编码的意思是什么?它实际上会做什么?

(我本可以推荐一本关于QA的书,但我没有…)

Pro Spring是对控制反转和依赖注入世界的极好介绍。如果你不知道这些实践及其含义-Pro Spring中主题和技术细节的平衡非常好。它建立了一个很好的案例和随之而来的个人基础。

我建议的另一本书是Robert Martin的敏捷软件开发(ASD)。代码气味、敏捷技术、测试驱动开发、原则……许多不同编程方面的良好平衡。

更传统的经典包括臭名昭著的GoF设计模式,Bertrand Meyer的面向对象的软件构建,Booch的面向对象分析与设计Scott Meyer的“有效C++'”系列以及我喜欢的Gunderloy的一本鲜为人知的书,编码器到开发人员

虽然书很好,但不要忘记无线电

…让我再补充一件事。如果你还没有发现Safari-看一看。它比堆栈溢出更容易上瘾:-)我发现我的谷歌类型习惯-我需要更昂贵的订阅,这样我就可以随时查看任何书籍-但我会向任何感兴趣的人推荐试用版。

(啊,是的,今天有点obj-C,明天可可,模式?soa?那本食谱中的例子是什么?史蒂夫在第二版中说了什么?我应该买这本书吗?…如果你想要一些连续性和上下文,像这样的订阅很棒。

调试开发过程:保持专注、赶上出货日期和建立坚实团队的实用策略史蒂夫·马奎尔。

无无意义,脚踏实地,寓教于乐,意义深远。

我发现“Prolog的艺术”是一本非常好的书。

我想我成长在与这里大多数人不同的一代。

我读过的最有影响力的书之一是APUE

或者几乎所有W. Richard Stevens的作品。

Roger S. Pressman-软件工程(从业者方法)。它有很多有用的信息。

这不是一本真正适合初学者的书,但如果您正在寻找SOA设计书籍,那么实践中的SOA:分布式系统设计的艺术适合您。

用户是否碰过你的代码?如果你不只是做后台工作,我推荐关于脸:用户界面设计的要点——现在已经是第三版了(链接)。我曾经认为我的用户很愚蠢,因为他们没有“理解”我的界面。当然,我错了。关于Face让我改变了主意。

不是一本编程书,但仍然是每个程序员都应该阅读的非常重要的书:

戈登·麦肯齐的《围绕巨型毛球运行》

软件工具作者:Brian W. Kernighan和P. J. Plauger

它对我如何编写软件产生了深远的影响。

为了在Prolog中取得进步,我喜欢这两本书:

Prolog的艺术

Prolog的技巧

真正打开了逻辑编程和递归方案的思路。

这里有两个我没有看到提到:
我希望我能早点读到Koenig和Moo的“沉思C++”。那本书让OO概念真正吸引了我。
我向任何计划在90年代中期开始编程生涯的人推荐Michael Abrash的“代码优化之禅”。

“世界是平的”托马斯·弗里德曼。

精通编程需要投入脑力,并致力于继续学习,这与医学或法律专业相当。它的薪酬只是这些专业薪酬的一小部分,更不用说进入金融行业的精通数学的人的工资了。0号的工资正在下降,因为在大多数经济体,聪明和自律的人都很容易进入这个行业。

编程已经被侵蚀到支付比管道工程更少的程度。管道工程不能“外包”。你不需要支付2395美元每隔一年参加一次专业管道工会议,就能有幸获得一套全新的管道技术,这些技术需要你一年的时间来学习。

如果你生活在北美或欧洲,年轻又聪明,编程不是一个理性的职业选择。编程涉及的企业,绝对是。学习商业,对编程有足够的了解来完善你的BS检测器:聪明。但是把你大部分的精神能量投入到掌握库、数据结构和算法上?只有当编程对你来说不仅仅是一种经济选择时,这才有意义。

如果你是编程,出于这个原因打算把它当作你的职业,那么你有必要对各种力量有一个冷眼的理解,这些力量正在并将继续使它成为一个越来越难谋生的职业。《世界是平的》不会教你如何命名你的变量,但它会让你沉浸在已经到来的经济现实中6到8个小时。如果你能读懂它,并且不害怕,然后出去买《代码完成》。

人工智能编程范式: Common Lisp的案例研究Peter Norvig

输入图片描述

我开始读它是因为我想学习Common Lisp。当我读到一半时,我意识到这是我迄今为止读过的关于编程的最伟大的书。

这不是一本严格意义上的开发书籍,我相信我在另一个答案中提到过它,但这是一本我真的相信所有开发人员都应该阅读的书,从php到Java到汇编开发人员。

代码

它真正汇集了计算机的本质,为什么不应该浪费内存以及计算历史中一些更有趣的部分。这是对计算机及其本质的介绍。它给了我对低级编程的终极热情,并帮助我比任何其他计算机更了解指针和内存。

现代C++设计安德烈·亚历山大斯库

我认为代码完成将是这个问题的一个非常受欢迎的问题,对我来说,它纠正了我的许多坏习惯,并重新肯定了我的良好实践。

对于我的Perl背景,我真的很喜欢Damian Conway的Perl最佳实践。如果你不使用风格和最佳实践,Perl可能是一门讨厌的语言,这是我在阅读(有时编写)的脚本中看到的。

我喜欢《头第一系列》,当你没有心情阅读更严肃的风格书籍时,它们非常好,很容易阅读。

Steve Maguire编写Solid Code

Grady Booch的《面向对象分析与应用设计》。我很久以前读过这本书,它向我展示了开发面向对象软件的方法论。从那时起,许多其他书籍对我产生了影响,但这本书让我开始了。

面向对象编程语言的解释伊恩·克雷格

因为它向我展示了OO比标准的C++/Java习语有多重要

Perl编程(O'Reilly)

Java思考(模式),Bruce Eckel

专业Excel开发本书展示了如何在最普遍的编程平台之一中制作高质量的应用程序。

精益软件开发 by Mary and Tom Poppendieck绝对是每个开发人员的书架之一

可可编程 for Mac OS X by Aaron Hillegass

这是一个折腾头第一设计模式,上面提到的许多原因,和Perl测试:一个开发人员的笔记本,这应该是任何想要编写可维护代码的Perl程序员的圣经之一。

有效C++更有效的C++斯科特·迈尔斯。

这让我开始进入真正的OOA&D。

应用UML和模式:面向对象分析与设计和迭代开发入门-Craig Larman

这些也会在那里:

  • 企业应用程序架构中的模式-Fowler
  • 领域驱动设计-Eric Evans

“如何成为一名程序员:简短,全面和个人总结” by罗伯特·雷德

不完全是一本书,而是一篇文章,但当我开始编码时,这绝对是对我的启发。喜欢进入一个部落的想法。值得一读。

Charles Petzold的Win32编程

快速开发麦康奈尔

我想我们可以每隔几周问一次同样的热门问题,并更新所有提到代码完成务实的程序员的人。

并不是说有什么问题:-)

C++的设计与演变”Bjarne Stroustrup

除了提供C++的背景知识外,它还对大型项目中涉及的权衡和设计问题进行了冗长的研究。

BN.com

学习C#2005,杰西·利伯蒂和布莱恩·麦克唐纳(O'Reilly)。

ISBN 10:0-596-10209-7.

当我第一次在VS2005中从ASP经典过程代码跳到面向对象的C#代码时,这本书让我走上了正确的道路。

虽然不是严格意义上的软件开发书籍,但我强烈建议在这个列表中考虑不要让我思考!

Brian W. Kernighan和P. J. Plauger的软件工具对我影响最大。

斯坦·李普曼的C++对象模型。它让C++终于“点击”了我,在它变得“神奇”之前。这本书让我在接触一种新的编程语言时有了不同的心态。

Donald Knuth的文学编程,这是一本关于代码结构的好书。

Unix编程环境由Kernighan和派克。

Unix编程环境

它比其他任何一本书都更能教会我构建小型、易于测试的工具的好处,这些工具可以组合起来做大事。

Bertrand Meyer的面向对象软件构建

专家C编程:深度C秘密 byPeter Van Der Linden

Kent Beck的极限编程

这是一个收藏,令人惊叹。Edsger Dijkstra(在C. A. R. Hoare的帮助下)的小黑书结构化编程和部分题为“关于我们无法做很多事情”的文章。

我的高中数学老师借给我一本你的灯光有问题吗,我已经重读了很多次。作为一名开发人员,它在生活中都是无价的。

问题是,“什么书真正影响了你作为开发人员的工作方式?”毫无疑问,用MFC编程Windows是Jeff Prosise写的,这本书对我作为开发人员的工作方式影响最大。它没有教我“编程”的基础知识,但它为我和成千上万的其他开发人员打开了Windows平台开发的世界。

在MFC开发之前,我曾以“佩佐尔德风格”编写过一点Windows代码。我很快决定,在Windows平台上,作为一名开发人员,我们不值得这么麻烦。当Prosise出版他的MFC一书时,我意识到(和其他成千上万的非Windows程序员一样)我可以创建一个易于使用的界面,用户不仅可以理解,而且实际上喜欢使用。我如饥似渴地读了这本书,在里面做了很多笔记,翻了很多角落,最终我买了第二本。

使用MFC第二版编程Windows。Microsoft Press 1999ISBN:1-57231-695-0

福特的高效程序员

我还没有完全完成这个,但我已经对我学到的一些技巧/技巧感到兴奋,这些技巧/技巧让我变得更……好……富有成效。

当然,有很多我们都已经知道的东西(使用键盘快捷键,DRY等)。但是有很多新的东西伴随着它。细心的读者会很快开始看到如何将事物组合起来以获得更大的效果。

面向对象的分析和设计-Grady Booch

Deitel和Deitel的C++系列编程书籍

“思考C++” by Bruce Eckel

领域驱动设计Eric Evans

管理千兆字节是思考繁重信息的即时经典。

C#对于有经验的程序员

或者Dietel&Dietel的任何东西。我读过他们的几本书,一切都很棒。

几年前,Bruce Eckel在C++的思考教会了我很多关于C++的知识,也教会了我将问题隔离到一个小“沙盒”中进行研究/分析的重要性。这种技术极大地影响了我的职业生涯,并经常帮助我为自己和他人解决问题。

这些天,我指的是用同样的风格写的《Java思考》。不知何故,这种风格不仅仅是简单的“例子”,而是深刻地抓住了问题的核心。

我很感激,我会买几乎任何东西由埃克尔,看不见的。

http://ecx.images-amazon.com/images/I/519J3P8ANML._SL500_AA240_.jpg

将我的编程提升到一个全新的水平。

当我刚开始的时候,有Tom Swan的《掌握Turbo Pascal》。这本书没有什么特别深刻的。它清晰简洁,有可用的例子。基于这些知识,我在15年多的时间里开始了软件开发职业生涯。

C++黑皮书,一路亲吻

唐纳德·诺曼《日常事物的设计》

不是关于编程本身,而是关于世界上的事物应该如何工作——一种可用性心理学。

在设计最终用户界面和API方面,这对我来说是无价的。

掌握C++汤姆·斯旺的。这是最好的书,它有足够简单的例子来教授概念,但足够有用来解决其他问题。它非常可读性,这是我上大学时读的第一本书,只需要读一次。

Tenenbaum的第一本操作系统书。我第一次看内核级编程。

Sedgewick的“C语言中的算法”(第1版)教会了我所有关于算法的知识,也教会了我所有关于留档和复制/粘贴代码的陷阱,因为这个版本中的所有示例代码都取自“Pascal算法”版本,只是通过一个简单的代码翻译器传递,它没有针对不同的索引方案进行调整。

我最喜欢的是Matthew Telles的C#Back Book。

在代码中做梦可能在过去6个月中产生了最深刻的影响。

“C++编程语言”Bjarne Stroustrup

编码器到开发人员,作者:Mike Gunderloy。

实际上,有两本书比较突出。第一本是《代码完成》。尽管年代久远,这仍然是一本非常有用的书,关于过早优化的危险的章节本身就值得这本书的价格。

第二个是日常事物的心理学(我想现在叫日常事物的设计),它改变了我在设计应用程序时对用户界面的看法。它让我更加以用户为中心。

Amiga ROM内核手册:)

在C++对象模型中斯坦利·利普曼

如何像计算机科学家一样思考:使用python学习

可能不是世界上最先进的书,但它让我理解了我无法理解的编程概念,尤其是面向对象的主题。

这可能不算是一本“开发书籍”,但我还是得把它扔进去:斯蒂芬·利维的《黑客》。我发现它谈到了编程的情感方面。

作者:Steve MacGuire

有趣的是,这里提到的大部分书籍都是C/C++书籍。

对我来说,“C和C++中的内存作为一种编程概念”真的让我看到了内存管理的真正工作原理。如果你是一名C或C++开发人员,我认为这是必读的。你会挑衅地学习一些东西,或者记住一些你可能已经忘记的事情。

http://www.amazon.com/Memory-Programming-Concept-C/dp/0521520436

另外,我想提到Hugh Darwen和CJ Date的第三宣言。如果你有兴趣了解数据(这在程序员中似乎并不常见),这本书是必读的。当你意识到SQL有多糟糕时,它也会让你难过,但它也会帮助你应对这种破碎。知道工具是如何损坏的,让你在设计时考虑到这些缺陷。

使用Scrum进行敏捷软件开发由Ken Schwaber和Mike Beedle。

我用这本书作为理解敏捷开发的起点。

实用的程序员非常好。然而,当我开始时,真正产生影响的是:

Windows 95系统编程的秘密"

我知道——这听起来和看起来都有点俗气,而且可能已经过时了——但这是对Win95内部结构的一个很棒的解释,基于作者(Matt Pietrek)使用自己的工具进行的调查——这本书附带了代码。请记住,这是在整个开源之前,微软仍然对发布内部留档非常谨慎——更不用说源代码了。里面有一句名言,比如“如果你正在解决一些问题,遇到了一些症结,那么你需要停下来,真正深入研究这篇文章,真正理解它是如何工作的。”我发现这是一个非常好的建议——尤其是现在,当你经常有一个图书馆的源代码,可以去看看。它也激励我喜欢潜入系统如何工作的内部,这在我的职业生涯中被证明是无价的。

哦,我还会加入有效的. net-来自Don Box的. Net的内部解释。

SAP ABAP编程?“在21天内自学ABAP”是最好的书!

它没有巧妙的技巧或巫术,但三年后,我从来没有遇到过一本更全面的书

Schaum的C++编程大纲John R Hubbard

这是我刚开始C++时读的第一本编程书,是看到我对编程感兴趣的人送给我的。这本书非常适合初学者——从基本概念开始,到模板和向量。给出的例子非常相关。这本书让你思考,提出更多问题,并亲自尝试。

对我来说最有影响力的编程书是足够的绳子射自己的脚 byAllen Holub

书的封面http://ecx.images-amazon.com/images/I/71AE90J735L._SL500_AA240_.gif

哦,好,那是多久以前的事了。

近年来,它被尼古拉·M·约瑟提斯称为C++标准图书馆,是我的圣经。

alt texthttp://ecx.images-amazon.com/images/I/51BT5SKXTCL._SL500_AA240_.jpg

马丁·福勒的重构:改进现有代码的设计已经被列出来了。但我会详细说明为什么它会影响我。

整本书的精髓是关于构建代码,以便人类更容易阅读和理解。它强烈地告诉我,我编写的代码是为了让我的同事和继任者消费,并可能从中学到一些东西。它激励我有意识地让人们赞美我的名字,而不是永远诅咒我

另一本尚未提及的书,应该是每个程序员,新手到大师的必读书,在任何编程语言中,是MSPress的Michael Howard编写安全代码(第2版)。

第一本对我产生真正影响的书是Tom Swan的掌握Turbo汇编程序

其他有影响的书籍是Linus Torvalds和David Diamond的只是为了好玩,当然还有Andrew Hunt和David Thomas的实用的程序员

由于很多人都列出了Head First Design Patterns,我同意这是一本非常好的书,我想看看是否有这么多人知道一个名为解释设计模式:面向对象设计的新视角的标题。

这个标题很好地处理了设计模式。本书的前半部分非常容易理解,剩下的章节只需要牢牢掌握已经涵盖的内容。我觉得本书的后半部分不太容易理解的原因是它涵盖了模式,作为一个年轻的开发人员,我承认缺乏经验,没有太多使用。

这个标题还介绍了设计模式背后的概念,涵盖了克里斯多夫亚历山大在架构方面的初步工作,以及GoF首次在SmallTalk中实现文档化模式。

我认为,任何喜欢Head First Design Patterns但仍然觉得GoF非常枯燥的人,都应该将Design Patterns解释为更具可读性(尽管不是那么全面)的替代方案。

Craig Larman的应用UML和模式。虽然四人帮的第一本书非常有启发性,但我发现我并没有“了解”如何使用设计模式,直到我在编程课上遇到Larman的书。

高级MS-DOS by Ray Duncan

可能是1997年左右的“C for Dummies”第1卷。真的只是一个介绍,但在Atari ST上学习了GFA Basic编程之后,这是一本很好的读物。大约在同一时间的Coronado C教程也有帮助。

对于低级娱乐,我建议迈克尔·阿布拉什的
i)-代码优化之禅-和
ii)-图形编程黑书-
即使你不做任何图形编程。

Michael Abrash汇编语言之禅

应用UML和设计模式。

它有助于设计模式,并为UML提供了一个理由,这在“UML as Sketch”的措辞中对我来说是有意义的。也就是说,UML应该被用作系统的简要草图,它具有额外的好处,即您不必向其他人解释符号(他们要么已经知道UML,要么您给他们一本UML书来阅读)

Robert Sedgewick的算法书。应用程序开发人员的必读书。

有多种口味(C,C++,Java)

http://www.cs.princeton.edu/~rs/

如果你正在Unix/Linux /MacOS等等中做任何事情,你必须阅读已故的W Richard Stevens所写的《Unix环境中的高级编程》(也称为首字母缩写APUE)。如果你不知道文件描述符是如何工作的,也不知道会话是什么,或者当你自己守护时应该做的所有事情(承认吧,你不知道),那么这本书会告诉你。

之后你会觉得自己有点业余,但如果你想在Unix环境中认为自己是一个专业的程序员(任何语言),你需要阅读这篇文章。

我会说“超越代码-通过9个简单步骤学会区分自己”是一本很好的励志书。我不涉及技术问题,但它描述了与人合作的方式,专业,……对我来说,如果你需要一些鼓舞人心的话,这是一本你可以反复阅读的书。除此之外,它很便宜,在3到4个小时内阅读非常容易和愉快。

我的博客上有一个小评论。

无论您是否在Smalltalk中编码Smalltalk最佳实践模式都是一本很棒的读物。充满了将改变您编码方式的小观察;变得更好。

尽管我多年来一直在进行编程,但Rocky Lhotka关于他的CSLA框架的“Business Object”系列还是让我大开眼界的书。

他的想法再次让我对软件开发模式和理论感到兴奋。这让我对学习如何成为一名更好的开发人员产生了新的兴趣,而不仅仅是学习最新的令人惊叹的控件或库。(别误会我的意思,我也仍然喜欢一本好的技术书——你必须跟上!)

我发现算法设计手册是一个非常有益的阅读。我也强烈推荐编程珍珠

"Fortran着色书"by罗杰·考夫曼博士(1978, ISBN: 0262610264)

多么愚蠢的概念-甚至比“傻瓜”书更基本!但它适用于任何语言(当然还有一些fortran特定的例子),以非常容易理解和“痛苦有趣”的方式解释逻辑,变量,i/o等的基本概念。

这足以让一个十岁的孩子对编程感兴趣…

alt文本

(在Flickr用户帐户上找到封面照片)

推荐给Windows程序员,Windows编程

我很惊讶还没有提到这本书:Leo Brodie的开始Forth。毕竟,Forth作为一种基于堆栈的语言,应该适合这个网站的受众…

不可否认,Forth是一种奇怪的语言,现在不太流行。但这本书读起来很有趣。而且它有漫画!这本书和Brodie的另一本书思考Forth都可以在网上免费获得。

alt texthttp://ecx.images-amazon.com/images/I/61dECNkdnTL._SL500_AA240_.jpg

C++如何编程这是很好的初学者。这是一本优秀的书,完整的1500页。

丹尼尔·平克的《全新思维》。对我们行业的未来有一个有趣的看法。

我想大多数读这篇文章的人都已经读过列表顶部的书了。所以,我将提供一本不同的书来看待我们的行业。

alt texthttp://www.danpink.com/images/wnm.jpg

爱德华·塔夫特的任何东西:定量信息的视觉显示;设想信息;视觉解释

计算机科学家的离散数学http://ecx.images-amazon.com/images/I/51HCJ5R42KL._SL500_BO2,204,203,200_AA219_PIsitb-贴纸-dp-箭头, TopRight,-24,-23_SH20_OU02_. jpg

计算机科学家的离散数学 J. K. Truss

虽然这并没有教你编程,但它教你每个程序员都应该知道的基础数学。你可能还记得大学里的这些东西,但实际上,做谓词逻辑会提高你的编程技能,如果你想使用集合进行编程,你需要学习集合论。

这里确实有很多有趣的信息,可以让你以不同的方式思考问题。拥有它很方便,只是偶尔拿起东西学习新东西。

好吧,所以问题不是“什么是最好的编程书”,而是“如果你能告诉自己在职业生涯开始时该读什么”。

可能是“On Lisp”和SICP之一,加上Udi Manber的CLRS或“算法:创造性方法”之一。

Udi Manber的算法简介http://vig-fp.prenhall.com/bigcovers/0201120372.jpg

前两个课程将教授很多编程技术、模式,真正让人们对自己的创造力敞开心扉;另外两个课程则不同。它们更具理论性,但也非常重要,专注于设计正确有效的算法(并且需要更多的数学知识)。

我看到一提到“好的编程书籍”这个话题,很多人都在推荐前三本书,但是最后一本(Manber写的)是一本好书,很少人知道。太可惜了!Manber专注于通过归纳法定理证明算法的增量开发。

如果你用C编写代码,那么专家C编程会让你大开眼界。它回答了你想知道为什么它以这种方式工作的所有问题。Peter Van Der Linden有很好的写作风格,使神秘的概念非常易读。所有C开发人员必读

厄运大师。至于对你职业的动机和热爱:它不会比这本书中描述的更好,真实鼓舞人心的故事!

Fortran IV与Watfor和Watfiv由Cress,Dirkson和Graham创作。

这本书教会了我当时编写在穿孔卡片上的第一种编程语言。3年后,这本书因为我用得太多而破烂不堪。

alt texthttp://g-ecx.images-amazon.com/images/G/01/ciu/4b/83/245d9833e7a03768eaf63110._AA240_.L.jpg

Fortran是一门伟大的语言!它有一个超级优化器,产生非常快的代码。它在英国仍然非常受欢迎,FTN95现在是一个功能非常全且功能强大的编译器。我有时希望我能继续使用它,但Delphi是一个足够的替代品。

似乎没有人提到Stroustup的C++编程语言,这是一本每个C++程序员都应该阅读的好书。

我还认为极限编程解释:拥抱变化应该被每个程序员和经理阅读。书中的许多想法现在是常识,但这本书对软件工程中追求质量的追求进行了明智而鼓舞人心的描述。

我会支持Knuth和四人帮的建议,这是经典。

应用UML和模式克雷格·拉曼。

这本书的标题有点误导;它确实涉及UML和模式,但它涵盖了更多。这本书的副标题告诉你更多:面向对象分析与设计和迭代开发简介。

系统学:系统如何工作,尤其是它们如何失败。便宜地使用它。但在你做过几个失败的项目之前,你可能不会得到幽默。

这本书的魅力在于版权年。

可能是书中提出的最深刻的外卖“定律”:

基本失效模式定理(F. F. T.):复杂系统通常以失效模式运行。

这个想法是,任何给定的软件中都有失败的部分,这些部分被其他部分的故障或其他部分的验证所掩盖。在Therac-25辐射机看到一个真实世界的例子,其软件缺陷被硬件故障保险所掩盖。当硬件故障保险被移除时,这些年来一直未被发现的软件竞争条件导致机器杀死3人。

作者:W. Richard Stevens

当我在Java开始开发时(至今仍在这样做),我必须推荐该领域的杰出工作:兔子先生的Java

摘自作者的简介:

没有比将专家Java程序员的松果体手术植入你的大脑更好的学习Java的方法了。可悲的是,大多数HMO拒绝为这种挽救职业生涯的程序付费,认为Java过于实验。对于我们这些迫不及待地等待全面医疗改革的人来说,终于有了另一种治疗方法。

兔子先生的大杯子O'Java是由十个医生中的n个推荐的,其中n是任何你想弥补的整数,以给一个令人震惊的容易受骗的公众留下深刻印象。这本书从书的概述开始,并迅速扩展到书本身。看看涵盖的主题:

  • Java

简而言之,MBBCOJ将教你所有你需要知道的在今天的兔子发展环境中成功的职业生涯。

仅对像素的洞察就会使我的软件开发寿命缩短数年。

Charles Wetherell的程序员练习曲,More Programming Pearls(乔恩·本特利),

绝对的软件工艺

alt texthttp://ecx.images-amazon.com/images/I/5186JKTDVWL._SL500_AA240_.jpg

这本书解释了很多关于软件工程、系统开发的事情。它对理解不同类型的产品开发之间的区别也非常有用:Web VS收缩包装VSIBM框架。当人们构思瀑布模型时,他们在想什么?阅读本文,我们就会变得清晰(希望如此)

对我来说,它为我提供了一个“哦,这就是它的工作原理”的时刻,在向他人教授设计模式时非常有用。

Scelbi-Byte入门

我曾多次仔细阅读本书中的源代码列表,直到有一天,我突然对8080汇编语言编程感到困惑。

TurboC++中的面向对象编程。不是很受欢迎,但它让我开始了,是第一本真正帮助我了解物体是什么的书。读这本书是在高中。它有点让我流泪…

尽管我从未编写过游戏,但这本书以一种有趣的方式帮助我理解了很多事情。

我bough这当我是一个完整的新手把我从只知道Java存在一个可靠的团队成员在很短的时间

界面羞耻大厅仍然是一个有价值的经典。这个网站详细介绍了各种各样的界面设计失礼,非常有趣。最初的iarchitect.com不复存在,但其他人在自己的网站上重新建立了居屋。

面向对象设计启发式算法是一个很好的阅读。我无法放下它。

我将添加一对我在这里没有看到的对我有影响的夫妇:

  • Yourdon和Constantine,“结构化设计”。如果您愿意稍微挖掘一下,您需要了解的有关软件设计的所有信息都在这里。
  • 伦纳德·科伦,“瓦比-萨比:艺术家、设计师、诗人和哲学家”。一种平衡美和实用主义的务实哲学。

不是最有影响力的,但值得一看的是J. M. Coetzee的青年

《青春》的叙述者是20世纪50年代南非的一名学生,长期以来一直在策划逃离祖国:逃离母亲令人窒息的爱,逃离失败困扰着他的父亲,逃离他确信即将到来的革命。学习数学、阅读诗歌、存钱,他试图确保当他到达现实世界时,无论在哪里,他都能准备好充分体验生活,并将其转化为艺术。然而,最终到达伦敦,他发现既没有诗歌也没有浪漫。相反,他屈服于计算机程序员的单调生活,随机、无爱的事务无法缓解这种生活。缺乏灵感,他停止了写作。作为一个笨拙的殖民地人,一个立宪的局外人,他开始了一段黑暗的朝圣之旅,在这段旅程中,他不断受到考验,不断发现自己的不足。

青年封面http://img440.imageshack.us/img440/5140/youthgd4.jpg

如何解决它:数学方法的一个新方面虽然与计算机编程没有直接关系,但它确实教你解决问题的艺术,这就是计算机编程的全部内容。

我在博客上看到一篇关于软件工厂:使用模式、模型、框架和工具组装应用程序的评论,也在谈论XI-工厂,我读了它,我必须说这本书是必读的。虽然不是专门针对程序员的,但它非常清楚地解释了现在编程世界中正在发生的事情,模型驱动架构等等。

开始C#3.0:面向对象编程简介

这是一本适合那些想了解使用C#3.0进行OOP的原因和方法的人的书。你不想错过它。

我现在正在阅读敏捷软件开发,原则,模式和实践。对于那些对XP和面向对象设计感兴趣的人来说,这是一本经典的读物。

alt texthttp://ecx.images-amazon.com/images/I/519J3P8ANML._SL500_AA240_.jpg

这是一本优秀的书,虽然没有得到广泛的赞誉,但却充满了深刻的洞察力:敏捷软件开发:合作博弈,作者Alistair Cockburn。

它有什么特别之处?很明显,每个人都听说过“敏捷”这个词,现在似乎大多数人都是信徒。不管你信不信,敏捷运动存在的背后有一些深刻的原则。这本书以精确、科学的方式揭示并阐明了这些原则。其中一些原则是(顺便说一句,这些是我的话,不是阿利斯泰尔的):

  1. 团队软件开发最难的事情是让每个人的大脑都有相同的理解。我们正在构建巨大、精细、复杂的系统,这些系统在有形世界中是看不见的。你越能让更多人的大脑分享更深的理解,你的团队在软件开发方面的效率就会越高。这就是结对编程有意义的根本原因。大多数人都不接受它(一开始我也是这么认为的),但考虑到这个原则,我强烈建议你再试一次。你最终会得到两个深刻理解你刚刚构建的子系统的人……没有多少其他方法可以如此迅速地获得如此深入的信息传递。这就像火神的思想融合。
  2. 你并不总是需要单词来快速传达深刻的理解。一个推论是:单词太多,你就超过了听众/读者的能力,这意味着你试图的理解转移不会发生。考虑一下,孩子们通过“沉浸”和“吸收”来学习如何说语言。不仅仅是语言……他举了一些孩子在地板上玩火车的例子。还有一个孩子以前从未坐过火车……但是通过观察其他孩子,他学会了游戏的要点,并正确地玩了起来。这种情况在人类之间经常发生。这与关于太多单词的推论一起帮助您了解在旧的“瀑布”时代尝试编写700页详细需求规范是多么错误。

还有更多的东西在里面。我现在闭嘴,但我强烈推荐这本书!

我想到了三本书。

  • Eric S. Raymond的Unix编程艺术。
  • 由里克·库克编写的《巫术》。
  • 计算机编程的艺术由唐纳德·高德纳。

我也喜欢写保罗·格雷厄姆。

对GW Basic的介绍。没有它,我永远不会学习如何编程,任何其他书籍都不会对我有任何好处。

开始视觉C++

当我第一次开始用OOP语言编程时,我发现这本书不仅是一本关于C++和MFC的综合书籍,它也是我见过的最好的面向对象概念解释之一。

当我与刚开始使用面向对象语言编程的开发人员交谈时,我告诉他们阅读这本书。

C++算法对我学习Big O符号和各种排序算法的来龙去脉是无价的。这是在Sedgewick决定通过将其分成5本不同的书来赚更多钱之前发表的。

C++常见问题是一本很棒的书,它确实向您展示了在C++中应该做什么和不应该做什么。C++的向后兼容性留下了很多地雷,这本书帮助人们小心地避免它们,同时也是对OO设计和意图的一个很好的介绍。

Kernighan&Plauger的编程风格的要素。它说明了噱头聪明和优雅聪明之间的区别。

Solid Code优化软件开发生命周期

尽管这本书只有300页,并且偏爱微软技术,但它仍然提供了一些与语言无关的好花絮。

我个人最喜欢的一本书是黑客的喜悦,因为它既有趣又有教育意义。

希望第二版能早日发布!

我读了大多数在这个问题上得分很高的书——但不是所有的书(感谢上帝!),我马上把其他的书加到我的亚马逊愿望清单上!

(有人应该在亚马逊上为这些书创建一个列表……也许一个名为“Stackoverflow有史以来最好的书”的列表?有人知道怎么做吗?

对我来说,有史以来最好的书是代码完成。这是一个启示。我买了英文版的第二版,然后是法文版,我仍然认为它应该是任何计算机科学学校的必读书。数据结构很酷,但代码完整,不是开玩笑,更重要…

然后,我的第二本书是编写实体代码——学会了如何被理解,知道如何编写可靠的代码真是太好了。

然后有很多非常好的书,但没有人在这里提到。直到2001年,我想:框架设计指南:可重用的约定、习语和模式。NET库。一颗宝石!这本书我读了很多遍,它仍然在我的桌子上,就在我的液晶旁边,还有代码完成(真的!)。我喜欢它的编写方式(喜欢这里和那里添加的评论——书都应该这样写!)

但是,我忘记了我读过的第一本好书!那些让我充满激情地成为计算机科学0号的书:

  • 计算!(C64杂志-永远不会忘记吉姆蝴蝶: o)
  • BorlandC++用户指南(旧的,大约1991年,那些试图引入面向对象程序设计的人,写得很好)。
  • 大多数Microsoft开发工具用户指南,大约在1990-1995年。不知道是谁写的,但它们很酷!我记得在深夜,周六读它们…

很好的问题:o)

思考在…的书。

Bruce Eckel是教育学的天才!很容易理解多态在C++中的实现。它包含了你应该知道的关于C++、基本和高级概念的所有知识。比Stroustrup的好得多。我也Java了

最后但并非最不重要:

C++是免费的!

http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html

alt文本

去年我上了很多课,我读了

创新者的困境(颠覆性技术)
神话人月(管理软件)
跨越鸿沟(启动)
数据库管理系统,The COW Book
编程C#,OSTRICH Book
开始iPhone开发者,葡萄果书

克莱顿·克里斯滕森(Clayton Christensen,1997年出版)的《创新者的困境》(The Innovator’s Dilemma)确实是一本很棒的书,它让我真正思考了现代软件世界。书中提到的挑战是颠覆性技术,以及磁盘驱动器公司和非技术公司如何总是被新的、改变游戏规则的技术所颠覆。这本书给人们在思考谷歌时提供了一个新的视角,谷歌可能是最大的“网络”公司。他们为什么要涉足一切?这是因为他们不想用新的东西来保持自己的0号位置。谷歌的预览足以让人得到这个想法。读吧!

除了上面提到的那些伟大的:

企业应用程序架构模式

企业集成模式

由于我是一名C#程序员,并且已经提到了大多数通用书籍,我想推荐Bill Wagner的书”更有效的C#

我认为大多数开发复合WPF应用程序的人也应该看看Microsoft的复合应用程序指南(也称为Prism):

复合申请指南

Peter Norton的IBMPC汇编语言书

alt text

我在PC(DOS)前度过了无数个夜晚,探索未知的世界:-D

完美的软件:和其他幻想的测试

标题封面http://ecx.images-amazon.com/images/I/51j3BSRspAL._SL500_AA240_.jpg

完美软件:关于测试的其他幻想作者:Gerald M. Weinberg

ISBN-10:0932633692

ISBN-13:978-0932633699

一本书的影响力通常取决于读者,以及他们读这本书时的职业生涯。我必须大声喊出Head First设计模式。伟大的书和它非常有创意的写作方式应该作为其他科技书籍作者的榜样。也就是说,它是为了促进学习和内化概念而写的。

头优先设计模式http://ecx.images-amazon.com/images/I/51LSqrgoT1L._SS500_.jpg

Eric Evans的领域驱动设计是一本很棒的书!

极限编程解释:拥抱变化作者:Kent Beck。虽然我不提倡在软件开发上采取硬核XP或高速公路的态度,但我希望我在职业生涯的早期就被介绍到这本书中的原则。单元测试、重构、简单性、持续集成、成本/时间/质量/范围——这些改变了我看待开发的方式。在敏捷之前,一切都是关于调试器和对更改请求的恐惧。敏捷之后,这些恶魔没有那么大。

编程实践。作者:Brian W. Kernighan,Rob Pike。

这里显示的风格非常好——代码本身就说明了问题,整本书都遵循KISS原则。就个人而言,不是我选择的语言,但仍然对我有影响。

似乎大多数人都已经接触过一些非常好的书。真正帮助我的是有效的C#:改进C#的50种方法。如果我不提到维尼的道,我就失职了。哲学书对灵魂和代码都有好处。

我还没有在这里看到的是Gerard Meszaros的xUnit测试模式:重构测试代码。这本书真的帮助我从一个全新的角度看待单元测试。

《编程实践》作者:Brian W. Kerningan和Rob Pike。

语言简单,主题也很有趣。

我回答这个问题已经晚了,但显然我仍然有一些独特的东西可以提供……软件工程经济学 byBarry Boehm总结一下,它说如果你想真正提高软件生产力,就需要更好的人,因为更好的工具、硬件、语言、方法等都只会产生微小的影响。只有更好的人才能显著提高生产力。我强调,这是更好工程师,而不是更多的工程师!

不是那种你会带上床睡觉的书,就像你可能对程序员在工作所做的那样,而是那种让你回家的书,这是我们这个行业一直在努力记住的一个教训。见证离岸外包,一种Boehm模型预测的虚假经济,如果有的话,只会产生边际的积极影响。看看吧。

黑客,史蒂文·利维。

个性和生活方式必须是第一位的。其他一切都可以学习。

UNIX环境中的高级编程-W. Richard Stevens

Peter Van Der Linden的《专家C编程-深C秘密》怎么样了?一本经典而愉快的读物。几年前学习C后应该立即阅读,但学习C 3年后才明白!推荐书,回答了关于指针的最常见SO问题(我最喜欢的科目)。生活它,吃它,呼吸它!10/10!

这是一本程序员必读的书:Abraham Silberschatz的数据库系统概念。

alt texthttp://images.barnesandnoble.com/images/14870000/14878097.JPG

这是一个非常丰富和有用的汇编,然而,我有点惊讶我没有在作者中遇到Andrew S. Tanenbaum。在我看来,他是最好的CS教授之一,他的天才主要与他在为CS本科生提供相当困难的材料方面的非凡能力有关。他的书(现代操作系统,或计算机网络可能会敲响警钟)在做我的BS时为我提供了坚实的CS基础,我强烈推荐他们。关于Tanenbaum的其他一些有趣的东西,证明他的技能超越了教学:一个名为MINIX的操作系统的作者-Linus在实现Linux时从中获得了灵感;Amoeba-分布式操作系统;Turtle-免费匿名p2p网络。

新的图灵综合http://ecx.images-amazon.com/images/I/51HlYd-%2BRwL._BO2,204,203,200_PIsitb-贴纸-箭头单击, TopRight,35,-76_AA300_SH20_OU01_. jpg

非常好的书。对计算机科学最重要的领域有很高的品味。是的,CS!=编程,但这对每个程序员仍然有用。

游戏设计的艺术-镜头之书杰西·谢尔

Jesse Schell自2002年以来一直在卡内基梅隆娱乐技术中心教授游戏设计并领导研究项目。

纳夫说。

游戏设计的艺术-镜头之书http://i50.tinypic.com/iekw0l.jpg

PS:对不起,如果我重复发布,我在答案中找不到这本书——要么是因为标题不准确,要么是没有图像。让我知道,如果是这样,我会删除它。

每个程序员都应该知道的关于内存的知识

作者Ulrich Drepper解释了现代内存子系统的结构,并建议如何有效地利用它们。

PS:对不起,如果我是双重发布。

我的投票是“如何像计算机科学家一样思考:用Python学习”它可以作为免费电子书使用。

它不仅帮助我理解了Python的基础知识,还帮助我理解了一般的编程。虽然它使用Python来演示概念,但它们适用于大多数(如果不是全部的话)编程语言。还有:它是免费的!

粉红衬衫书

IBMPC程序员指南。粉红色衬衫书。

好吧,有人不得不说。

You. Next():将您的软件开发职业生涯转移到领导轨道~Michael C. Finley(作者), Honza Fedák(作者)链接文本

类型和编程语言由Benjamin C Pierce撰写,旨在深入了解编程语言的基础。

FA Turbak的编程语言中的设计概念生成了许多编程概念的详细实现,对于理解引擎盖下发生的事情非常有用。

餐巾的背面,由Dan Roam

餐巾的背面http://www.coverbrowser.com/image/bestsellers-2008/302-7.jpg

一本关于视觉思维技巧的好书。现在还有一个扩大版。我不能说那个版本,因为我不拥有它;还没有。

alt文本

《掌握:成功与长期成就的关键》,乔治·伦纳德著

这是关于掌握任何技能需要什么样的心态,以及为什么。这太棒了,也很容易阅读。

Python语言对我很有影响,我希望我几年前就读过这本书。Python语言的美丽和简单真的影响了我用其他语言编写代码的方式。

alt文本alt文本

企业模式和MDA:构建更好的软件与原型模式和UML

对于那些希望利用ORM和UML的人来说,这是一本很好的读物

企业模式和MDA:使用原型模式和UML构建更好的软件

数据库系统概念是您可以阅读的了解良好数据库设计原则的最佳书籍之一。

alt文本

从头开始编程。它在互联网上是免费的。这本书教会了我AT&T asm。它很容易阅读。

alt文本

史蒂夫·麦奎尔的编写实体代码

作者:Charles M. Kozierok

虽然它被描述为“百科全书式的参考”,但它作为叙述是可读的。

作者提供了一个非常、非常、非常好的、全面的关于网络和网络基础设施的介绍。所有程序员都应该知道的事情。

对我来说,这是Charles Petzold的“代码”的自然后续。如果“代码”向外行解释计算机如何工作,那么“TCP/IP指南”解释了它们如何连接在一起。

如果你给一个12岁的极客一份“代码”和一份“TCP/IP指南”,他们将在17岁时建立下一个谷歌。

换句话说,如果我能回到过去,告诉自己在我作为开发人员的职业生涯开始时阅读一本特定的书,这(加上代码)就在我的列表的顶部。

一开始是命令行。尼尔·斯蒂芬森。