每个程序员应阅读的最具影响力的单一书籍是什么?

时间:2008-08-04 23:50:23

标签: resources

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

我希望这个清单可以改变,涵盖范围很广。

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

inquestion:this "Code Complete"

214 个答案:

答案 0 :(得分:1745)

答案 1 :(得分:9)

Programming from the ground up.它在互联网上是免费的。这本书教我AT& T asm。它很容易阅读。

alt text

答案 2 :(得分:9)

Systemantics: How Systems Work and Especially How They Fail。让它用得便宜。但是,在你完成一些失败的项目之前,你可能不会得到幽默。

这本书的美丽是版权年。

可能是书中提出的最深刻的“法律”:

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

这个想法是在任何给定的软件中都有失败的部分被其他部分的失败或其他部分的验证掩盖。查看Therac-25 radiation machine的实际示例,其软件缺陷被硬件故障屏蔽。当硬件故障被删除时,那些年未被发现的软件竞争条件导致该机器造成3人死亡。

答案 3 :(得分:9)

我个人最喜欢的一个是Hacker's Delight,因为阅读和教育一样有趣。

我希望第二版即将发布!

答案 4 :(得分:9)

Database System Concepts是您阅读有关理解良好数据库设计原则的最佳书籍之一。

alt text

答案 5 :(得分:9)

答案 6 :(得分:9)

肯特贝克

Extreme Programming Explained: Embrace Change。虽然我不提倡硬件XP或高速公路上的软件开发,但我希望在我职业生涯的早期就已经介绍过本书的原理。单元测试,重构,简单性,持续集成,成本/时间/质量/范围 - 这些改变了我对开发的看法。在敏捷之前,这完全是关于调试器和对变更请求的恐惧。在敏捷之后,那些恶魔并没有那么大。

答案 7 :(得分:9)

Discrete Mathematics For Computer Scientists http://ecx.images-amazon.com/images/I/51HCJ5R42KL._SL500_BO2,204,203,200_AA219_PIsitb-sticker-dp-arrow,TopRight,-24,-23_SH20_OU02_.jpg

J.K.的{p> Discrete Mathematics For Computer Scientists桁架。

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

这里确实有很多有趣的信息可以让你以不同的方式思考问题。这样做很方便,只是为了学习一些新的东西。

答案 8 :(得分:9)

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

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

答案 9 :(得分:9)

Benjamin C Pierce的

Types and Programming Languages彻底了解了编程语言的基础。

答案 10 :(得分:9)

Paradigms of Artificial Intelligence Programming:Peter Norvig的Common Lisp案例研究

enter image description here

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

答案 11 :(得分:9)

最终软件工艺

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

本书解释了很多关于软件工程,系统开发的内容。理解不同类型的产品开发之间的区别也非常有用:Web VS shrinkwrap VS IBM框架。人们在设想瀑布模型时会想到什么?阅读本文,我们将变得清晰(希望如此)

答案 12 :(得分:9)

答案 13 :(得分:9)

K&R

@Juan:我知道Juan,我知道 - 但是有些事情只能通过实际掌握到手头的任务来学习。整天在抽象的理想中说话只会让你成为一名学者。正是在抽象的应用中,我们才真正理解它们存在的原因。 :P

@Keith:很高兴提到Alan Cooper的“The Inmates are the Asylum” - 这是一个让人大开眼界的开明者,自从我读到这本书之后,任何与我合作的开发者都听到我提到它所支持的想法。 1

答案 14 :(得分:8)

答案 15 :(得分:8)

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

卓越的编程需要投入精神能量,并致力于继续学习,与医学或法律专业相媲美。它只支付了这些职业支付的一小部分,更不用说支付给进入金融领域的数学精明的工资。 构建代码的工资正在下降,因为对于大多数经济体中的智能和自律而言,这是一个相对易于进入的职业。

编程已经被削弱到支付低于管道的程度。管道不能“离岸外包”。您无需每隔一年支付2395美元参加专业水管工会议,因为他们有权获得一套全新的管道技术,这将花费您一年的时间来学习。

如果你生活在北美或欧洲,年轻,聪明,编程不是理性的职业选择。绝对是涉及编程的企业。学习业务,了解编程以改进您的BS探测器:辉煌。但是,将精神能量的大部分用于掌握图书馆,数据结构和算法?只有编程对你来说比经济选择更重要,才有意义。

如果你编程,并且因为这个原因打算将它作为你的职业生涯,那么你应该对那些现在和将来会继续发挥作用的力量形成一种冷漠的理解。以谋生为生的越来越难的职业。 “世界是平的”不会教你如何命名你的变量,但它会让你沉浸在已经到达的经济现实中6或8小时。如果你可以阅读它,而不是害怕,然后出去买“代码完成。”

答案 16 :(得分:8)

The New Turing Omnibus http://ecx.images-amazon.com/images/I/51HlYd-%2BRwL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg

真是好书。具有高级品味的计算机科学最重要的领域。是的,CS!=编程,但这对每个程序员都有用。

答案 17 :(得分:8)

Python语言对我很有影响力,我希望多年前我会阅读这些书。 Python语言的美观和简洁性确实影响了我用其他语言编写代码的方式。

alt text alt text

答案 18 :(得分:8)

黑客,Steven Levy。

人格和生活方式必须先行。其他一切都可以学习。

答案 19 :(得分:8)

答案 20 :(得分:8)

alt text

去年我参加了一些课程。我读了

The Innovator's Dilemma (disruptive tech)
The Mythical Man Month (managing software)
Crossing the Chasm (startup)
Database Management Systems, The COW Book
Programming C#, The OSTRICH Book
Beginning iPhone Developmen, The GRAPEFRUIT Book

每本书都令人惊叹,但Clayton Christensen(1997 !!!)的创新者困境真的是一本很棒的书,它让我真正想到了现代软件世界。所面临的挑战是颠覆性技术,以及磁盘驱动器公司和非技术公司如何总是被新的,改变游戏规则的技术所破坏。在考虑谷歌(可能是最大的“网络”公司)时,它给了一个新的视角。为什么他们有他们的手在一切?这是因为他们不希望他们的位置被新东西打乱。谷歌上的预览很容易得到这个想法。读吧!

答案 21 :(得分:8)

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

对我而言,我的工作...... 纯功能数据结构非常适合思考和开发功能语言。

答案 22 :(得分:7)

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

C++ How to Program这对初学者来说很好。这本书是完整的1500页。

答案 23 :(得分:7)

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

答案 24 :(得分:7)

Martin Fowler的 Refactoring: Improving the Design of Existing Code 已经上市。但我会详细说明它为何影响了我。

整本书的本质是关于构造代码,以便更容易阅读和理解。它强烈地告诉我,我写的代码是为了让我的同事和后继者消费并可能从中学到一些 good 。它有意识地激励我program in a manner that leaves people praising my name, and not cursing me to damnation for all eternity

答案 25 :(得分:7)

Masters of doom.就你的职业的动机和爱情而言:它不会比本书中描述的更好,真实地鼓舞人心的故事!

答案 26 :(得分:7)

The TCP/IP Guide,来自Charles M. Kozierok

虽然它被描述为一个“百科全书式的参考文献”,但作为叙述,令人难以置信地可读。

本作者提供了一个非常,非常,非常好的全面的网络介绍和网络基础设施。所有程序员都应该知道的东西。

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

如果你给了一个12岁的极客一份“代码”和一份“The TCP / IP Guide” - 他们将在17岁之前建立下一个Google。

换句话说,如果我可以回到过去并告诉自己在我作为开发人员的职业生涯开始时阅读一本特定的书籍,那么(加上代码)就会出现在顶部我的清单。

答案 27 :(得分:7)

虽然我同意上面的许多书都是必读书(实用程序员,神话人月,计算机程序设计艺术和SICP​​立即浮现在脑海中),但我想要的方向略有不同,由Edsger Dijkstra推荐A Discipline of Programming。尽管它已有32年历史,但对“可验证性设计”的强调具有高度相关性(即使“可验证性”意味着“证明”而非“单元测试”)。

答案 28 :(得分:7)

我认为“Unix编程的艺术”是一本优秀的书,由优秀的黑客/聪明的头脑作为Eric S. Raymond,他试图让我们理解软件设计的一些原则(主要是简单性)。对于即将在Unix平台下启动项目的每个编程人员来说,本书都是必读的。

答案 29 :(得分:7)

Kernighan&普劳格的Elements of Programming Style。 它说明了噱头聪明和优雅聪明之间的区别。

答案 30 :(得分:7)

答案 31 :(得分:7)

这是一本优秀的书,并没有得到广泛的掌声,但却充满了深刻的洞察力:Agile Software Development: The Cooperative Game,Alistair Cockburn。

它有什么特别之处?好吧,显然每个人都听过“敏捷”一词,而且现在看来大多数人都是信徒。不管你是否相信,敏捷运动存在的背后都有一些深层原则。本书以精确,科学的方式揭示和阐述了这些原则。一些原则是(顺便说一句,这些是我的话,而不是Alistair的):

  1. 团队软件开发最难的事情是让每个人的大脑都有相同的理解。我们正在建造庞大,精细,复杂的系统,这些系统在有形世界中是看不见的。你越是让更多人的大脑分享更深入的理解,你的团队在软件开发方面的效率就越高。 这是结对编程有意义的根本原因。大多数人都不赞成(我最初也是这样做的),但考虑到这个原则,我强烈建议你再给它一次。你结束了两个深刻理解你刚建立的子系统的人......没有太多其他方法可以如此快速地进行如此深入的信息传输。这就像瓦肯人的思想融合。
  2. 你并不总是需要语言来快速传达深刻的理解。还有一个推论:太多的话,你超过了听众/读者的能力,这意味着你正在尝试的理解转移不会发生。考虑到孩子们通过“沉浸”和“吸收”来学习如何说语言。不仅仅是语言......他举了一些孩子在地板上玩火车的例子。另外一个孩子以前从未 SEEN 一列火车......但是通过观察其他孩子,他汲取了游戏的主旨并且一直在玩。这种情况一直发生在人类之间。这一点以及太多单词的推论可以帮助您了解在旧的“瀑布式”时代,如果试图编写700页的详细要求规范,这是多么误导。
  3. 那里还有更多。我现在闭嘴了,但我强烈推荐这本书!

答案 32 :(得分:6)

答案 33 :(得分:6)

Brian W.Kernighan撰写的“编程实践”; Rob Pike。

语言很容易,主题也很有趣。

答案 34 :(得分:6)

McConnell的

Rapid Development

答案 35 :(得分:6)

当我开始使用Java进行开发(并且至今仍在这样做)时,我必须推荐该领域的杰出工作:Mr Bunny's Big Cup o' Java

来自作者的模糊:

  

没有更好的学习Java的方法,而不是将专业Java程序员的松果腺手术植入大脑。可悲的是,大多数HMO拒绝支付这种职业挽救程序,认为Java太过实验性。最后,对于那些不能等待全面医疗改革的人来说,还有另一种治疗方法。

     

先生。 Bunny's Big Cup O'Java是由十分之一的医生推荐的,其中n是你想要弥补的任何整数,以打动一个令人震惊的容易上当的公众。本书首先概述了本书,并迅速扩展到本书中。只需看看所涵盖的主题:

     
      
  • 爪哇
  •   
     

简而言之,MBBCOJ将教你在当今兔子发展环境中成功发展所需的一切。

仅仅洞察像素会缩短我的软件开发寿命。

答案 36 :(得分:6)

答案 37 :(得分:6)

到目前为止,我有一些强烈影响我的好书,我在这个名单上没见过:

唐纳德·诺曼的

The Psychology of Everyday Things 。其他人设计的一般原则。对于用户界面来说,这看起来似乎有点好处,但是如果你考虑一下,它几乎可以在任何地方都有应用程序,除了原始开发人员之外还有其他人可以使用它;即G。 API和设计界面,使其他开发人员形成正确的心理模型,并从API本身获得适当的反馈。

Glen Myers的

The Art of Software Testing 。对测试软件的一般性介绍;有利于程序员阅读,以帮助他们像测试人员一样思考。即想一想可能出现的问题并做好准备。

顺便说一下,我意识到问题是“单一最具影响力的书”,但讨论似乎已经改为列出供开发人员阅读的好书,所以我希望我可以原谅列出两本好书而不仅仅是一本

答案 38 :(得分:6)

我已经有一段时间了,所以我发现有影响力的大多数书今天不一定适用。我相信理解您正在开发的平台(硬件和操作系统)是非常重要的。我也认为从其他人的错误中吸取教训是很重要的。所以我推荐的两本书是:

Computing CalamitiesIn Search of Stupidity: Over Twenty Years of High Tech Marketing Disasters

答案 39 :(得分:6)

用户是否曾触摸过您的代码?如果您不是单独进行后端工作,我建议About Face: The Essentials of User Interface Design - 现在是第三版(链接)。我曾经认为我的用户是愚蠢的,因为他们没有“获得”我的界面。我当然是错的。关于Face转过身来。

答案 40 :(得分:6)

先生。兔子的ActiveX指南

答案 41 :(得分:6)

除了如何安排在我的书架上之外,没有特别的顺序:

  • 实用程序员
  • Fowler的
  • Rafactoring
  • 由Feathers有效地使用遗留代码。这实际上是重构的配套卷。
  • Fowler的
  • UML Distilled 。其他优点包括简洁。
  • 调试开发过程由Steve Maguire
  • Gamma等人的
  • 设计模式(又名“四人帮”)

答案 42 :(得分:6)

毫无疑问,{p> The Pragmatic Programmer: From Journeyman to Master。它中的建议是如此精确,简单,它就像是“常识程序员”。喜欢它。

答案 43 :(得分:5)

答案 44 :(得分:5)

对于初级程序员来说,这本书并不是一本书,但如果您正在寻找SOA设计书籍,那么SOA in Practice: The Art of Distributed System Design就适合您。

答案 45 :(得分:5)

Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML

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

Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML

答案 46 :(得分:5)

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

20世纪50年代南非的学生青年的叙述者,长期以来一直在策划逃离他的祖国:从他母亲的窒息爱情,以及失败困扰他的父亲,以及他是什么样的肯定是迫在眉睫的革命。学习数学,阅读诗歌,省钱,他试图确保当他到达现实世界时,无论在哪里,他都会准备好充分体验生活,并将其转化为艺术。然而,最后到达伦敦,他既没有诗歌也没有浪漫。相反,他屈服于作为计算机程序员的生活单调,随机的,无爱的事情从中得不到任何解脱。没有灵感,他停止写作。作为一个尴尬的殖民者,一个宪法的局外人,他开始了一个黑暗的朝圣之旅,在那里他不断受到考验并不断发现缺乏。

youth cover http://img440.imageshack.us/img440/5140/youthgd4.jpg

答案 47 :(得分:5)

Brian W. Kernighan和P. J. Plauger的软件工具

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

答案 48 :(得分:5)

The Back of the NapkinDan Roam

The Back of the Napkin http://www.coverbrowser.com/image/bestsellers-2008/302-7.jpg

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

答案 49 :(得分:5)

Facts and Fallacies of Software Engineering by Robert L. Glass http://www.codinghorror.com/blog/images/facts-and-fallacies-of-software-engineering.jpg

Facts and Fallacies of Software Engineering by Robert L. Glass是一本非常出色的书。在我阅读它之前,我已经成为一名职业黑客已有近10年了,而且我仍然学到了很多东西。

答案 50 :(得分:5)

FA Turbak的

Design Concepts in Programming Languages生成了许多编程概念的详细实现,对于理解幕后发生的事情非常有用。

答案 51 :(得分:5)

史蒂夫麦康奈尔的代码完成有很多选票,但他的Software Project Survival Guide书呢?我认为他们都需要阅读,但出于不同的原因。

答案 52 :(得分:5)

Perfect Software: And Other Illusions about Testing

TITLE Cover http://ecx.images-amazon.com/images/I/51j3BSRspAL._SL500_AA240_.jpg

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

ISBN-10:0932633692

ISBN-13:978-0932633699

答案 53 :(得分:4)

我的投票是“如何像计算机科学家一样思考:用Python学习” 它既可以book也可以free e-book

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

答案 54 :(得分:4)

Scott Myers的

Effective C++More Effective C++

答案 55 :(得分:4)

Bertrand Meyer的面向对象软件构建

答案 56 :(得分:4)

alt text

Mastery: The Keys to Success and Long-Term Fulfillment, by George Leonard

这是关于在任何技能中达到掌握所需的心态,以及为什么。它太棒了,也很容易阅读。

答案 57 :(得分:4)

Code Complete是第一选择,但我也引用Gang of Four的设计模式和Craig Larman的应用UML和模式。

克里斯托弗亚历山大的永恒建筑方式是另一个伟大的方式。虽然它是关于建筑的,但它已经包含在我已经读过的许多优秀编程书目的参考书目中。

我正在学习很多新东西的另一个是Clifton Nock的数据访问模式。

答案 58 :(得分:4)

答案 59 :(得分:4)

我想到了三本书。

  • Eric S. Raymond的Unix编程艺术。
  • 由Rick Cook编辑的巫术。
  • Donald Knuth的计算机编程艺术。

我也喜欢写Paul Graham.

答案 60 :(得分:4)

答案 61 :(得分:4)

似乎没有人提到Stroustup的The C++ Programming Language这是一本每本C ++程序员都应阅读的好书。

我还认为每个程序员和经理都应该阅读Extreme Programming Explained: Embrace Change。书中的许多想法现在都是常识,但本书给出了对软件工程质量追求的智能和鼓舞人心的解释。

我会推荐Knuth和Gang of Four的经典推荐。

答案 62 :(得分:4)

一本书的影响力通常取决于读者以及他们阅读本书时的职业生涯。我必须向Head First Design Patterns致敬。伟大的书和它所创造的非常有创意的方式应该被用作其他科技书籍作者的榜样。即它的编写是为了促进学习和内化概念。

Head First Design Patterns http://ecx.images-amazon.com/images/I/51LSqrgoT1L._SS500_.jpg

答案 63 :(得分:4)

Mary和Tom Poppendieck的

Lean Software Development绝对是每个开发者书架的一部分

答案 64 :(得分:4)

编程Perl(O'Reilly)

答案 65 :(得分:4)

我最近阅读Dreaming in Code,发现这是一篇有趣的读物。自从我开始阅读它的那一天起,Chandler 1.0就被释放了。阅读有关人才试图“改变世界”的项目团队日益增长的痛苦和错误,可以为您提供很多东西。斯科特还带来了很多程序员的传说和智慧,这只是一个有趣的阅读。

Beautiful Code有一两件事让我思考方式不同,特别是有关自上而下运算符优先权的章节。

答案 66 :(得分:4)

答案 67 :(得分:3)

Kernighan和Pike

The Unix Programming Environment

The Unix Programming Environment

与其他任何一本书相比,它教会了我构建小巧,易于测试的工具的好处,这些工具可以结合起来做大事。

答案 68 :(得分:3)

一个全新的思想,丹尼尔·粉红。有趣地看待我们行业的未来。

我假设大多数阅读此内容的人已经阅读了列表顶部的书籍。所以,我会提供一本书,对我们的行业有不同的看法。

alt text http://www.danpink.com/images/wnm.jpg

答案 69 :(得分:3)

我觉得代码完整对于这个问题会非常受欢迎,对我而言,它纠正了我的许多坏习惯并重新肯定了我的良好做法。

同样对于我的Perl背景,我非常喜欢Damian Conway的Perl最佳实践。如果你不使用样式和最佳实践,Perl可能是一种讨厌的语言,这就是我在阅读的脚本中看到的(有时是写作)。

我喜欢Head First系列,当你不喜欢更严肃的时尚书时,它们非常好读且容易阅读。

答案 70 :(得分:3)

要获得prolog的进步,我喜欢这两本书:

The Art of Prolog

The Craft of Prolog

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

答案 71 :(得分:3)

这不是这个问题的直接答案,因为我觉得它已经在上面得到了回答,然而,其中一本对我的编码方式产生影响的书籍Code Reading, Volume 1: The Open Source Perspective

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

答案 72 :(得分:3)

所有思考... 书籍。

布鲁斯·埃克尔是教育学的天才! 理解C ++中多态的实现非常容易。它包含了您应该了解的有关C ++,基本和高级概念的所有内容。方式比Stroustrup更好。 我也和他一起学习Java。

最后但并非最不重要:

C ++版本是免费的!

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

答案 73 :(得分:3)

答案 74 :(得分:3)

克雷格拉尔曼

Applying UML and Patterns

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

答案 75 :(得分:3)

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

应用UML和模式:面向对象的分析和设计及迭代开发简介 - Craig Larman

这些也将在那里:

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

答案 76 :(得分:3)

Peter Norton's Assembly Language Book for the IBM PC

alt text

我曾在电脑前(DOS)度过无数个夜晚,探索未知世界:-D

答案 77 :(得分:3)

Coder to Developer,来自Mike Gunderloy。

答案 78 :(得分:3)

令我感到惊讶的是,Leo Brodie还没有提到这本书:Starting Forth。毕竟Forth是一种基于堆栈的语言,应该适合这个网站的观众......

不可否认,Forth是一种奇怪的语言,现在并不是很受欢迎。但是这本书很难读。它有卡通!这本书以及Brodie的另一本书Thinking Forth都可以在网上免费获得。

答案 79 :(得分:3)

我读过大多数关于这个问题得分高的书籍 - 但不是全部(感谢上帝!)而且我将其他书籍加入了我的亚马逊愿望清单

(有人应该在亚马逊上为这些书创建一个列表......也许是一个名为“Stackoverflow最佳书籍”的列表?任何人都知道如何做到这一点?

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

然后,我的第二本最好的书是编写固体代码 - 学习如何理解,知道如何编写可靠代码真是太棒了。

然后是很多非常好的书,但这里没人提。直到2001年,我认为:框架设计指南:可重用.NET库的约定,成语和模式。一颗宝石!我多次阅读这本书,它仍然在我的桌子上,就在我的LCD旁边,还有Code Complete(真的!)。我喜欢它的写作方式(喜欢这里和那里添加的评论 - 书籍应该都是这样写的!)

但是,我忘记了我读过的第一本好书!那些让我热爱计算机科学的人,充满激情:

  • 计算!(C64杂志 - 永远不会忘记 Jim Butterfly :o)
  • Borland C ++用户指南(旧的,大约1991年,那些试图引入面向对象编程的人,编写得很好)。
  • 大多数 Microsoft Developpement Tools用户指南,大​​约1990-1995。不知道是谁写的,但他们很酷!我记得在深夜,周六晚上读它们......

嗯,优秀的问题:o)

答案 80 :(得分:3)

由于我是C#程序员,并且已经提到了大多数通用书籍,我想推荐Bill Wagner的书"More Effective C#

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

Composite Application Guidance

答案 81 :(得分:3)

Aaron Hillegass为Mac OS X

Cocoa Programming

答案 82 :(得分:3)

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

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

答案 83 :(得分:3)

Kent Beck的极限编程

答案 84 :(得分:3)

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

答案 85 :(得分:3)

对我来说,它是Design Patterns Explained它为我提供了一个'哦它是如何工作'的时刻,在设计模式方面,并且在向其他人教授设计模式时非常有用。

答案 86 :(得分:3)

无论您是否使用Smalltalk进行编码Smalltalk Best Practice Patterns都是一个很好的阅读。充满了小观察,会改变你的编码方式;为了更好。

答案 87 :(得分:3)

这不是严格意义上的开发书,我相信我已经在另一个地方提到了它,但它是一本我真的相信所有开发人员应该阅读的书,从php到Java再到汇编开发人员。

Code

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

答案 88 :(得分:2)

这可能不算作“开发书”,但无论如何我都要抛弃它:Stephen Levy的黑客。我发现它与编程的情感方面有关。

答案 89 :(得分:2)

Peter Van Der Linden的“专家C编程 - 深C秘密”发生了什么 - 这是一本经典而愉快的读物。应该在学习C年之后立即阅读,但在学习C 3年后得到它!一本推荐的书,它回答了关于指针最常见的SO问题(我最喜欢的主题)。住它,吃它,呼吸它! 10/10!

答案 90 :(得分:2)

Charles Petzold的Win32编程

答案 91 :(得分:2)

由于很多人都列出了Head First Design Patterns,我同意这是一本非常好的书,我想看看是否有这么多人知道名为Design Patterns Explained: A New Perspective on Object-Oriented Design的标题。

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

这个标题还介绍了设计模式背后的概念,涵盖了Christopher Alexander在建筑方面的初步工作,首先在SmallTalk中实现了记录模式。

我认为任何喜欢Head First Design Patterns但仍然发现GoF非常干燥的人应该将设计模式解释为更具可读性(尽管不是那么全面)的选择。

答案 92 :(得分:2)

另外,我会提到Hugh Darwen和CJ Date的The Third Manifesto。如果您对理解数据(这在程序员中似乎不常见)感兴趣,那么这本书是必读的。当你意识到SQL有多么糟糕,它也会让你感到难过,但它也会帮助你应对这种破坏。了解工具如何被破坏可以让您在设计时考虑到这些缺陷。

答案 93 :(得分:2)

Working Effectively with Legacy Code是一本非常了不起的书,详细介绍了如何正确地对代码进行单元测试以及它的真正好处。它真的让我大开眼界。

答案 94 :(得分:2)

阅读Head First Design Patterns以获取比GoF书更容易获得的介绍。我记得在每一章之后感觉我已经升级了。

Kent Beck的Test Driven Development by Example代表TDD。

答案 95 :(得分:2)

What Every Programmer Should Know About Memory

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

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

答案 96 :(得分:2)

专家C编程:Deep C Secrets Peter Van Der Linden

答案 97 :(得分:2)

答案 98 :(得分:2)

虽然不是严格意义上的软件开发书,但强烈建议您在此列表中考虑Don't Make me Think!

答案 99 :(得分:2)

Steve Macguire的Writing Solid Code

答案 100 :(得分:2)

另一本尚未提及的书,应该是每个程序员都必须阅读,任何编程语言的新手都是新手,是MSPress的迈克尔霍华德写作安全代码(第2版)。

答案 101 :(得分:2)

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

答案 102 :(得分:2)

我在一篇关于Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools的博客上看到XI-Factory的评论,我读了它,我必须说这本书是必读的。尽管并非专门针对程序员,但它很清楚地解释了编程领域现在正在发生的模型驱动架构等等。

答案 103 :(得分:2)

我的高中数学老师借给我一本Are Your Lights Figure Problem的副本,我已多次重读。作为开发人员,它在生活中一直是非常宝贵的。

答案 104 :(得分:2)

C ++的设计和演变”作者:Bjarne Stroustrup

除了提供很多关于C ++的背景知识外,它还是一项关于大规模计划所涉及的权衡和设计问题的长篇研究。

BN.com

答案 105 :(得分:2)

我会说“Beyond Code - Learn to Distinguish Yourself in 9 Simple Steps”是一本非常好的动机书。我不介绍技术问题,但它描述了与人合作的方式,专业,......对我来说,如果你需要一些鼓舞人心的话,这本书可以一次又一次地阅读。除此之外,它在3到4个小时内便宜且非常容易阅读。

my blog处进行了一些审核。

答案 106 :(得分:2)

我想我们可以每隔几周询问一次same top rated question,并提及所有提及code completeThe Pragmatic Programmer的人。

不是说它有任何问题: - )

答案 107 :(得分:2)

我现在正在阅读Agile Software Development, Principles, Patterns and Practices。对于那些对XP和面向对象设计感兴趣的人来说,这是一个经典的阅读。

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

答案 108 :(得分:2)

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

答案 109 :(得分:2)

Ray Duncan的高级MS-DOS。

答案 110 :(得分:2)

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

答案 111 :(得分:2)

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

答案 112 :(得分:2)

由于上面提到的许多原因,以及Perl测试:开发人员的笔记本,这是Head First Design Patterns之间的折腾,它应该是任何希望编写可维护代码的Perl程序员的圣经之一。

答案 113 :(得分:2)

Amiga ROM内核手册:)

答案 114 :(得分:2)

Craig Larman的应用UML和模式。虽然四人帮书设计模式非常有启发性,但我发现在编程课程中遇到Larman的书之前我没有“得到”如何使用设计模式。

答案 115 :(得分:2)

Eric Evans的领域驱动设计

答案 116 :(得分:2)

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

在MFC开发之前,我曾在“Petzold风格”中编写过一些Windows代码。我很快决定使用Windows平台作为开发人员,我们不值得这么麻烦。当Prosise推出他的MFC书时,我意识到(和其他数千名非Windows程序员一样)我可以创建一个易于使用的界面,用户不仅可以理解,而且实际上喜欢使用。我吞噬了这本书,在里面写了很多笔记并且拒绝了很多角落,我最终买了第二本。

杰普斯,杰夫。 使用MFC 2nd Ed。编程Windows 微软出版社1999 ISBN:1-57231-695-0

答案 117 :(得分:2)

Solid Code Optimizing the Software Development Life Cycle

尽管这本书只有300页,并且有利于微软的技术,但它仍然提供了一些不错的语言信息。

答案 118 :(得分:2)

答案 119 :(得分:2)

我认为我的成长时间与大多数人不同......

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

或者W. Richard Stevens的几乎任何东西。

答案 120 :(得分:2)

答案 121 :(得分:2)

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

答案 122 :(得分:1)

程序员的练习曲Charles Wetherell,更多编程珍珠(Jon Bently),

答案 123 :(得分:1)

尽管我多年来一直在编写rofessional,但Rocky Lhotka关于他的CSLA框架的“Business Objects”系列却让我眼前一亮。

他的想法让我对软件开发模式和理论再次感到兴奋。它让我对学习如何成为更好的开发人员感兴趣,而不仅仅是了解最新的gee-whiz控件或库。 (别误会我的意思,我仍然喜欢一本好的技术书 - 你要跟上!)

答案 124 :(得分:1)

推荐用于Windows程序员Programming Windows

答案 125 :(得分:1)

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

XUnit测试模式

答案 126 :(得分:1)

答案 127 :(得分:1)

Stanley Lippman的

Inside the C++ object model

答案 128 :(得分:1)

我发现The Algorithm Design Manual是非常有益的读物。我也强烈推荐Programming Pearls

答案 129 :(得分:1)

Andrei Alexandrescu的现代C ++设计

答案 130 :(得分:1)

Gerard Meszaros在 xUnit Test Patterns: Refactoring Test Code 之前没有看到的。这本书真的帮助我从新的角度看单元测试。

答案 131 :(得分:1)

学习C#2005 ,作者:Jesse Liberty&布莱恩麦克唐纳(O'Reilly)。

ISBN 10:0-596-10209-7。

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

答案 132 :(得分:1)

“用C ++思考”作者:Bruce Eckel

答案 133 :(得分:1)

GW Basic简介。有了它,我从来没有学会如何编程,任何其他书籍都不会对我有任何好处。

答案 134 :(得分:1)

似乎大多数人已经触及了一些非常好的书。真正帮助我的是Effective C#: 50 Ways to Improve your C#。如果我没有提到The Tao of Pooh,我会失职。哲学书籍可以对灵魂和代码有益。

答案 135 :(得分:1)

答案 136 :(得分:1)

我迟到了这个问题,但显然还有一些独特的东西...... {em>软件工程经济学Barry Boehm总结说,如果你想要真正提高软件生产力得到更好的人,因为更好的工具,硬件,语言,方法等都会产生微不足道的影响。只有更好的人才能大幅提高生产力。我强调,这是更好的工程师,而不是更多的工程师!

不是那种你和你一起上床的书,就像你可能会在 Coders At Work 那样做,但这本书让我们的行业一直在努力学习为了心。证实离岸外包是一种虚假的经济,而Boehm的模型预测这种经济只会产生微不足道的积极影响,如果有的话。看看吧。

答案 137 :(得分:1)

Edward Tufte的任何内容:定量信息的视觉显示;展望信息;视觉解释

答案 138 :(得分:1)

You.Next():将您的软件开发职业转移到领导力轨道 ~Michael C. Finley(作者),HonzaFedák(作者) link text

答案 139 :(得分:1)

游戏设计的艺术 - 镜头作者Jesse Schell

  

自2002年以来,Jesse Schell一直在Carnegie Mellon的娱乐技术中心教授游戏设计并领导研究项目。

努夫说。

The Art of Game Design - A Book of Lenses http://i50.tinypic.com/iekw0l.jpg

PS:对不起如果我是双重发帖,我在答案中找不到这本书 - 因为标题不准确或者没有图像。让我知道,如果是的话,我会删除它。

答案 140 :(得分:1)

答案 141 :(得分:1)

这里有两个我没见过的提到:
我希望我早点读过Koenig和Moo的“Ruminations on C++”。这本书让OO的概念真正为我点击。
对于计划在90年代中期开始编程生涯的其他人,我推荐Michael Abrash的“代码优化之禅”。

答案 142 :(得分:1)

史蒂夫马奎尔编写固体代码。

答案 143 :(得分:1)

答案 144 :(得分:1)

Object Oriented Design Heuristics非常精彩。我无法拒绝。

答案 145 :(得分:1)

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

答案 146 :(得分:1)

第一本对我产生实际影响的书是Tom Swan的 Mastering Turbo Assembler

其他有影响的书籍是Linus Torvalds和David Diamond的 Just For Fun ,当然还有Andrew Hunt和David Thomas的 The Pragmatic Programmer

答案 147 :(得分:1)

当我是一个完整的新手时我买了这个,并且只是在短时间内知道Java存在于一个可靠的团队成员之后就把我带走了

答案 148 :(得分:1)

How to Solve It: A new aspect of mathematical method 虽然与计算机编程没有直接关系,但它确实教会了解决问题的艺术,而这正是计算机编程的全部。

答案 149 :(得分:1)

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

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

Introduction to Algorithms by Udi Manber http://vig-fp.prenhall.com/bigcovers/0201120372.jpg

前两个将教授许多编程技巧,模式,并真正打开他/她自己的创造力;另外两个是不同的。它们更具理论性,但也非常重要,专注于设计正确有效的算法(并且需要更多的数学运算)。

我看到很多人在推出“优秀编程书籍”的主题时推荐三本第一本书,但最后一本(由Manber撰写)是一本很好的书,很少有人知道。这是一个耻辱! Manber通过使用归纳的定理证明来关注算法的增量开发。

答案 150 :(得分:1)

Stan Lippman在C ++对象模型中。它让C ++终于为我“点击”了,然后才变得“神奇”。在接近新的编程语言时,本书给了我不同的思路。

答案 151 :(得分:1)

Grady Booch的“面向对象的应用分析与设计”。我很久以前就读过它,它告诉我可能有一种开发面向对象软件的方法。从那时起,许多其他书籍对我产生了影响,但这一本让我开始了。

答案 152 :(得分:1)

Scelbi-Byte Primer

我多次仔细阅读本书中的源代码清单,直到有一天,我突然讨论了8080汇编语言编程。

答案 153 :(得分:1)

Algorithms in C++对于我学习Big O符号以及各种排序算法的来龙去脉是非常宝贵的。这是在Sedgewick决定通过将其划分为5本不同的书之后可以赚更多钱之前发布的。

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

答案 154 :(得分:1)

The Pink Shirt book

IBM PC程序员指南。粉红衬衫书。

......好吧,某人不得不说出来。

答案 155 :(得分:1)

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

答案 156 :(得分:1)

如果你用C编写代码,那么Expert C Programming就是一个大开眼界。它解决了你想知道为什么它以这种方式工作的所有事情。 Peter Van Der Linden具有出色的写作风格,使得奥术概念具有很强的可读性。必须阅读所有C开发人员

答案 157 :(得分:1)

我会在这里添加一些我没有看到的对我有影响力的人:

  • Yourdon和Constantine,“结构化设计”。如果您愿意为此进行一些挖掘,那么您需要了解的有关软件设计的一切都在这里。
  • Leonard Koren,“Wabi-Sabi:艺术家,设计师,诗人和哲学家”。平衡美和实用主义的务实哲学。

答案 158 :(得分:1)

答案 159 :(得分:1)

How to think like a computer scientist: learning with python

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

答案 160 :(得分:1)

唐纳德诺曼,'日常事物的设计'

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

在设计最终用户界面和API方面,这对我来说非常宝贵。

答案 161 :(得分:1)

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

这本书教会了我第一种编程语言,当时我在打卡机上编程。 3年后,这本书全都破烂,因为我已经使用了这么多。

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

Fortran是一门很棒的语言!它有一个超级优化器并生成非常快的代码。它在英国仍然很受欢迎,FTN95现在是一个功能齐全且功能强大的编译器。我有时希望我可以继续使用它,但德尔福是一个非常充分的替代品。

答案 162 :(得分:1)

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

alt text http://images.barnesandnoble.com/images/14870000/14878097.JPG

答案 163 :(得分:1)

{p {3}}“The Fortran Coloring Book”(1978,ISBN:0262610264)

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

这足以让十岁的孩子对编程感兴趣......

alt text

(在Dr. Roger Kaufman上找到封面照片)

答案 164 :(得分:1)

这是一个非常丰富和有用的编辑,然而,我有点惊讶我没有遇到作者中的Andrew S. Tanenbaum。 IMO他是最好的CS教授之一,他的天才主要是以他非凡的能力为CS本科生提供相当困难的材料。 His books(现代操作系统,或计算机网络可能会响铃)在为我提供坚实的CS基础同时做我的BS并且我强烈推荐它们时做了出色的工作。 Tanenbaum上的其他一些有趣的东西,证明了他的技能超越了教学:一个名为MINIX的操作系统的作者 - 在实施Linux时,Linus从中获得了灵感。 Amoeba - 分布式操作系统;无龟无匿名p2p网络。

答案 165 :(得分:1)

Ken Schwaber和Mike Beedle

Agile Software Development with Scrum

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

答案 166 :(得分:1)

福特的生产程序员

我还没有完全通过这个,但我已经对我已经采取的一些提示/技巧感到激动,以便更好......生产效率。

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

答案 167 :(得分:1)

Code is Law - 您正在用[您选择的语言]进行所有这些写作,编辑和思考但是为什么?你的MEAN代码是什么?它究竟会做什么?

(我可以推荐一本关于质量保证的书,但我没有......)

答案 168 :(得分:1)

Interface Hall of Shame仍然值得经典。这个网站详细介绍了各种各样的界面设计失礼,非常有趣。最初的iarchitect.com不再存在,但其他人已经在自己的网站上重新建立了HOS。

答案 169 :(得分:1)

面向对象的分析与设计 - 作者:Grady Booch

答案 170 :(得分:1)

Kent Beck的实施模式。

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

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

答案 171 :(得分:1)

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

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

更传统的经典作品将包括臭名昭着的GoF Design Patterns,Bertrand Meyer的Object Oriented Software Construction,Booch的Object Oriented Analysis and DesignScott Meyer的“Effective C++”系列和我很喜欢Gunderloy所熟知的那本书Coder to Developer

虽然书籍很好......但不要忘记radio

...让我再补充一点。如果您还没有发现safari - 请看一下。它比堆栈溢出更容易上瘾:-)我发现我的谷歌类型的习惯 - 我需要更昂贵的订阅,所以我可以随时查看任何书籍 - 但我建议任何人甚至远程感兴趣的试用

<啊>(啊是的,今天有点obj-C,明天可可,模式?soa?那个食谱中的例子是什么?史蒂夫在second edition说了什么?我应该买这本书吗?...如果您想要一些连续性和上下文来搜索您的内容,那么这样的订阅就很棒。)

答案 172 :(得分:1)

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

Windows 95 System Programming Secrets"

我知道 - 外面看起来有点俗气,而且可能已经过了一段时间 - 但这是基于作者(Matt Pietrek)使用他自己的工具调查的Win95内部的一个很棒的解释 - 本书附带的代码。请记住,这是在整个开源之前,微软仍然非常谨慎地发布内部文档 - 更不用说源代码了。 在那里有一些引用,例如“如果你正在解决一些问题并找到一些关键点,那么你需要停下来,真正深入了解这一部分并真正理解它是如何工作的”。我发现这是一个非常好的建议 - 特别是在你经常拥有图书馆资源的时候,可以去看看。 它也激励我深入了解系统如何工作的内部,这在我的职业生涯中已被证明是非常宝贵的。

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

答案 173 :(得分:1)

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

答案 174 :(得分:1)

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

之后你会感到很沮丧,但如果你想在Unix环境中认为自己是一名专业程序员(使用任何语言),你需要阅读它。

答案 175 :(得分:1)

近年来,'Nicolai M. Josuttis'一直是'C ++标准库'。这是我的圣经。

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

答案 176 :(得分:0)

掌握Tom Swan的C ++。这是最好的一本书,它有一些例子,它们足够简单,可以教授概念,但足以解决其他问题。它非常易读,这是我上大学时读到的第一本书,只需要阅读一次。

答案 177 :(得分:0)

可能是“C for Dummies”第1卷,早在1997年左右。真的只是一个介绍,但在Atari ST上获得GFA Basic编程的味道后,这是一个很好的阅读。同时,Coronado C教程也有所帮助。

答案 178 :(得分:0)

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

它没有巧妙的技巧或魔法,但3年后,我从来没有找到更全面的书

答案 179 :(得分:0)

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

答案 180 :(得分:0)

Object-Oriented Programming in Turbo C++。不是很受欢迎,但它是让我开始的那本书,也是第一本真正帮助我理解对象的书。高中读回这篇文章。这有点让我眼前一亮......

答案 181 :(得分:0)

思考Java(模式),Bruce Eckel

答案 182 :(得分:0)

对我而言“内存作为C和C ++中的编程概念”真正让我看到了内存管理真正起作用的方式。如果您是C或C ++开发人员,我认为这是必读的。你会挑衅地学习一些东西,或者记住你在路上可能忘记的事情。

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

答案 183 :(得分:0)

答案 184 :(得分:0)

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

答案 185 :(得分:0)

它是一个集合,令人惊叹。 Edsger Dijkstra(在C.A.R. Hoare的帮助下)小黑书Structured Programming,特别是题为“我们无法做多少”的文章。

答案 186 :(得分:0)

答案 187 :(得分:0)

当我刚开始时,汤姆·斯旺有“掌握Turbo Pascal”。这本书没有什么特别深刻的东西。它清晰简洁,有可用的例子。基于这些知识,我在15年以上的时间里催生了一个软件开发职业。

答案 188 :(得分:0)

C ++ BlackBook。一路吻过

答案 189 :(得分:0)

我最喜欢的是马修泰勒斯的C#Back Book。

答案 190 :(得分:0)

除了其他人的建议外,我建议您购买SICP副本或reading it online。这是我读过的为数不多的几本书之一,我觉得非常提高了我设计软件的技能,特别是在创建好的抽象层时。

一本不是直接与编程有关的书,但对于程序员(IMO)来说也是一本很好的读物是Concrete Mathematics。大多数(如果不是全部)主题对于程序员来说都是有用的,并且它比我迄今读过的任何其他数学书籍更能解释事物。

答案 191 :(得分:0)

Beginning Visual C++

当我第一次开始使用OOP语言进行编程时,我发现本书不仅是一本关于C ++和MFC的综合性书籍,而且还有我见过的面向对象概念的最佳解释之一。

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

答案 192 :(得分:0)

Alistair Cockburn的

Agile Software Development

答案 193 :(得分:0)

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

答案 194 :(得分:0)

Dreaming in Code可能在过去6个月中产生了最深远的影响。

答案 195 :(得分:0)

PHP对象,模式和实践。 http://www.apress.com/book/view/9781590599099

答案 196 :(得分:0)

Schaum用John C Hubbard编写的C ++编程大纲。

当我开始使用C ++时,这是我读过的第一本编程书。有人看到我对编程的兴趣,这给了我天赋。这本书非常适合初学者 - 它从基本概念开始,到模板和向量。给出的例子非常相关。这本书让你思考并提出更多问题,并为自己尝试一些事情。

答案 197 :(得分:0)

Michael Abrash汇编语言的禅宗

答案 198 :(得分:0)

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

这些天,我指的是Thinking in Java,它以相同的风格编写。不知何故,这种风格不仅仅是简单的“例子”,而且深刻地解决了问题的核心。

我很感激,我会在看不见的情况下通过Eckel购买任何东西。

答案 199 :(得分:0)

Ian Craig的Interpretation of Object-Oriented Programming Languages

因为它向我展示了OO比标准C ++ / Java习语更多的东西

答案 200 :(得分:0)

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

答案 201 :(得分:0)

'How to be a Programmer: A Short, Comprehensive, and Personal Summary' Robert L Read

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

答案 202 :(得分:0)

应用UML和设计模式。

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

答案 203 :(得分:0)

答案 204 :(得分:0)

实际上,两本书脱颖而出。第一个是Code Complete。尽管它已经很久了,但它仍然是一本非常有用的书,关于过早优化的危险的章节本身就值得本书付出代价。

第二个是日常事物的心理学(现在称为日常事物的设计,我认为),这改变了我在设计应用程序时对用户界面的看法。这让我更注重用户。

答案 205 :(得分:0)

Beginning C# 3.0: An Introduction to Object Oriented Programming

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

答案 206 :(得分:0)

我有关于此主题的几篇(相当古老的)博客文章

答案 207 :(得分:0)

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

Orbiting the Giant Hairball by Gordon MacKenzie

答案 208 :(得分:0)

Managing Gigabytes是思考繁重信息的一个经典之作。

答案 209 :(得分:0)

有经验的程序员的C#

或者Dietel&amp ;; Dietel。我已经阅读了他们的几本书,而且一切都很棒。

答案 210 :(得分:0)

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

有很多种类(C,C ++,Java)

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

答案 211 :(得分:0)

答案 212 :(得分:0)

Bjarne Stroustrup撰写的“C ++编程语言”

答案 213 :(得分:0)

史蒂夫麦克奎尔

"Writing Solid Code: Microsoft's Techniques for Developing Bug-Free C Programs (Microsoft Programming Series)"

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