<p>If you could go back in time and tell yourself to read a specific book at the beginning of your career as a developer, which book would it be?</p>

<p>I expect this list to be varied and to cover a wide range of things.</p>

<p><strong>To search:</strong> Use the search box in the upper-right corner. To search the answers of the current question, use <code>inquestion:this</code>.  For example:</p>

<pre><code>inquestion:this "Code Complete"
</code></pre>

[{'answer_id': 1713, 'author': 'Justin Standard', 'author_id': 92, 'author_profile': 'https://Stackoverflow.com/users/92', 'pm_score': 11, 'selected': False, 'text': "<ul>\n<li><em>Code Complete</em> (2nd edition) by Steve McConnell</li>\n<li><em>The Pragmatic Programmer</em></li>\n<li><em>Structure and Interpretation of Computer Programs</em></li>\n<li><em>The C Programming Language</em> by Kernighan and Ritchie</li>\n<li><em>Introduction to Algorithms</em> by Cormen, Leiserson, Rivest &amp; Stein</li>\n<li><em>Design Patterns</em> by the Gang of Four</li>\n<li><em>Refactoring: Improving the Design of Existing Code</em></li>\n<li><em>The Mythical Man Month</em></li>\n<li><em>The Art of Computer Programming</em> by Donald Knuth</li>\n<li><em>Compilers: Principles, Techniques and Tools</em> by Alfred V. Aho, Ravi Sethi and Jeffrey D. Ullman</li>\n<li><em>Gödel, Escher, Bach</em> by Douglas Hofstadter</li>\n<li><em>Clean Code: A Handbook of Agile Software Craftsmanship</em> by Robert C. Martin</li>\n<li><em>Effective C++</em></li>\n<li><em>More Effective C++</em></li>\n<li><em>CODE</em> by Charles Petzold</li>\n<li><em>Programming Pearls</em> by Jon Bentley</li>\n<li><em>Working Effectively with Legacy Code</em> by Michael C. Feathers</li>\n<li><em>Peopleware</em> by Demarco and Lister</li>\n<li><em>Coders at Work</em> by Peter Seibel</li>\n<li><em>Surely You're Joking, Mr. Feynman!</em></li>\n<li><em>Effective Java</em> 2nd edition</li>\n<li><em>Patterns of Enterprise Application Architecture</em> by Martin Fowler</li>\n<li><em>The Little Schemer</em></li>\n<li><em>The Seasoned Schemer</em></li>\n<li><em>Why's (Poignant) Guide to Ruby</em></li>\n<li><em>The Inmates Are Running The Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity</em></li>\n<li><em>The Art of Unix Programming</em></li>\n<li><em>Test-Driven Development: By Example</em> by Kent Beck</li>\n<li><em>Practices of an Agile Developer</em></li>\n<li><em>Don't Make Me Think</em></li>\n<li><em>Agile Software Development, Principles, Patterns, and Practices</em> by Robert C. Martin</li>\n<li><em>Domain Driven Designs</em> by Eric Evans</li>\n<li><em>The Design of Everyday Things</em> by Donald Norman</li>\n<li><em>Modern C++ Design</em> by Andrei Alexandrescu</li>\n<li><em>Best Software Writing I</em> by Joel Spolsky</li>\n<li><em>The Practice of Programming</em> by Kernighan and Pike</li>\n<li><em>Pragmatic Thinking and Learning: Refactor Your Wetware</em> by Andy Hunt</li>\n<li><em>Software Estimation: Demystifying the Black Art</em> by Steve McConnel</li>\n<li><em>The Passionate Programmer (My Job Went To India)</em> by Chad Fowler</li>\n<li><em>Hackers: Heroes of the Computer Revolution</em></li>\n<li><em>Algorithms + Data Structures = Programs</em></li>\n<li><em>Writing Solid Code</em></li>\n<li><em>JavaScript - The Good Parts</em></li>\n<li><em>Getting Real</em> by 37 Signals</li>\n<li><em>Foundations of Programming</em> by Karl Seguin</li>\n<li><em>Computer Graphics: Principles and Practice in C</em> (2nd Edition)</li>\n<li><em>Thinking in Java</em> by Bruce Eckel</li>\n<li><em>The Elements of Computing Systems</em></li>\n<li><em>Refactoring to Patterns</em> by Joshua Kerievsky</li>\n<li><em>Modern Operating Systems</em> by Andrew S. Tanenbaum</li>\n<li><em>The Annotated Turing</em></li>\n<li><em>Things That Make Us Smart</em> by Donald Norman</li>\n<li><em>The Timeless Way of Building</em> by Christopher Alexander</li>\n<li><em>The Deadline: A Novel About Project Management</em> by Tom DeMarco</li>\n<li><em>The C++ Programming Language (3rd edition)</em> by Stroustrup</li>\n<li><em>Patterns of Enterprise Application Architecture</em></li>\n<li><em>Computer Systems - A Programmer's Perspective</em></li>\n<li><em>Agile Principles, Patterns, and Practices in C#</em> by Robert C. Martin</li>\n<li><em>Growing Object-Oriented Software, Guided</em> by Tests</li>\n<li><em>Framework Design Guidelines</em> by Brad Abrams</li>\n<li><em>Object Thinking</em> by Dr. David West</li>\n<li><em>Advanced Programming in the UNIX Environment</em> by W. Richard Stevens</li>\n<li><em>Hackers and Painters: Big Ideas from the Computer Age</em></li>\n<li><em>The Soul of a New Machine</em> by Tracy Kidder</li>\n<li><em>CLR via C#</em> by Jeffrey Richter</li>\n<li><em>The Timeless Way of Building</em> by Christopher Alexander</li>\n<li><em>Design Patterns in C#</em> by Steve Metsker</li>\n<li><em>Alice in Wonderland</em> by Lewis Carol</li>\n<li><em>Zen and the Art of Motorcycle Maintenance</em> by Robert M. Pirsig</li>\n<li><em>About Face - The Essentials of Interaction Design</em></li>\n<li><em>Here Comes Everybody: The Power of Organizing Without Organizations</em> by Clay Shirky</li>\n<li><em>The Tao of Programming</em></li>\n<li><em>Computational Beauty of Nature</em></li>\n<li><em>Writing Solid Code</em> by Steve Maguire</li>\n<li><em>Philip and Alex's Guide to Web Publishing</em></li>\n<li><em>Object-Oriented Analysis and Design with Applications</em> by Grady Booch</li>\n<li><em>Effective Java</em> by Joshua Bloch</li>\n<li><em>Computability</em> by N. J. Cutland</li>\n<li><em>Masterminds of Programming</em></li>\n<li><em>The Tao Te Ching</em></li>\n<li><em>The Productive Programmer</em></li>\n<li><em>The Art of Deception</em> by Kevin Mitnick</li>\n<li><em>The Career Programmer: Guerilla Tactics for an Imperfect World</em> by Christopher Duncan</li>\n<li><em>Paradigms of Artificial Intelligence Programming: Case studies in Common Lisp</em></li>\n<li><em>Masters of Doom</em></li>\n<li><em>Pragmatic Unit Testing in C# with NUnit</em> by Andy Hunt and Dave Thomas with Matt Hargett</li>\n<li><em>How To Solve It</em> by George Polya</li>\n<li><em>The Alchemist</em> by Paulo Coelho</li>\n<li><em>Smalltalk-80: The Language and its Implementation</em></li>\n<li><em>Writing Secure Code</em> (2nd Edition) by Michael Howard</li>\n<li><em>Introduction to Functional Programming</em> by Philip Wadler and Richard Bird</li>\n<li><em>No Bugs!</em> by David Thielen </li>\n<li><em>Rework</em> by Jason Freid and DHH</li>\n<li><em>JUnit in Action</em></li>\n</ul>\n"}, {'answer_id': 1788, 'author': 'nlucaroni', 'author_id': 157, 'author_profile': 'https://Stackoverflow.com/users/157', 'pm_score': 3, 'selected': False, 'text': "<p>@Peter Coulton -- you don't read Knuth, you study it.</p>\n\n<p>For me, and my work... <em>Purely Functional Data Structures</em> is great for thinking and developing with functional languages in mind.</p>\n"}, {'answer_id': 2602, 'author': 'Mario Marinato', 'author_id': 431, 'author_profile': 'https://Stackoverflow.com/users/431', 'pm_score': 2, 'selected': False, 'text': "<p>Code Complete is the number one choice, but I'd also cite Gang of Four's Design Patterns and Craig Larman's Applying UML and Patterns.</p>\n\n<p>The Timeless Way of Building, by Christopher Alexander, is another great one.  Even though it's about archtecture, it's included in the bibliography of many great programming books I have already read.</p>\n\n<p>Another one, from which I'm learning lots of new things, is Data Access Patterns, by Clifton Nock.</p>\n"}, {'answer_id': 8349, 'author': 'bruceatk', 'author_id': 791, 'author_profile': 'https://Stackoverflow.com/users/791', 'pm_score': 3, 'selected': False, 'text': '<p>I\'ve been arounda while, so most books that I have found influential don\'t necessarily apply today.  I do believe it is universally important to understand the platform that you are developing for (both hardware and OS).  I also think it\'s important to learn from other peoples mistakes.  So two books I would recommend are:</p>\n\n<p><a href="https://rads.stackoverflow.com/amzn/click/com/0130828629" rel="noreferrer" rel="nofollow noreferrer">Computing Calamities</a> and <a href="https://rads.stackoverflow.com/amzn/click/com/1590597214" rel="noreferrer" rel="nofollow noreferrer">In Search of Stupidity: Over Twenty Years of High Tech Marketing Disasters</a></p>\n'}, {'answer_id': 20969, 'author': 'Nate Smith', 'author_id': 1238, 'author_profile': 'https://Stackoverflow.com/users/1238', 'pm_score': 3, 'selected': False, 'text': '<p><a href="http://www.pragprog.com/the-pragmatic-programmer" rel="nofollow noreferrer">The Pragmatic Programmer: From Journeyman to Master</a> without a doubt. The advice in it is so well presented, and simple, that it comes across as if it was \'The Common Sense Programmer\'. Love it.</p>\n'}, {'answer_id': 20977, 'author': 'Michał Piaskowski', 'author_id': 1534, 'author_profile': 'https://Stackoverflow.com/users/1534', 'pm_score': 2, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/020161622X" rel="nofollow noreferrer" rel="nofollow noreferrer">Pragmatic Programmer</a></p>\n'}, {'answer_id': 20987, 'author': 'Jason Bunting', 'author_id': 1790, 'author_profile': 'https://Stackoverflow.com/users/1790', 'pm_score': 3, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/0131103628" rel="noreferrer" rel="nofollow noreferrer">K&amp;R</a></p>\n\n<p>@Juan: I know Juan, I know - but there are some things that can only be learned by actually getting down to the task at hand. Speaking in abstract ideals all day simply makes you into an academic. It\'s in the application of the abstract that we truly grok the reason for their existence. :P</p>\n\n<p>@Keith: Great mention of "The Inmates are Running the Asylum" by Alan Cooper - an eye opener for certain, any developer that has worked with me since I read that book has heard me mention the ideas it espouses. +1</p>\n'}, {'answer_id': 21002, 'author': 'Loren Charnley', 'author_id': 2346, 'author_profile': 'https://Stackoverflow.com/users/2346', 'pm_score': 3, 'selected': False, 'text': '<p>The Mythical Man-Month by Fred Brooks\n<a href="http://en.wikipedia.org/wiki/The_Mythical_Man-Month" rel="nofollow noreferrer">http://en.wikipedia.org/wiki/The_Mythical_Man-Month</a></p>\n'}, {'answer_id': 21006, 'author': 'Kibbee', 'author_id': 1862, 'author_profile': 'https://Stackoverflow.com/users/1862', 'pm_score': 3, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/0596528124" rel="noreferrer" rel="nofollow noreferrer">Mastering Regular Expressions</a></p>\n'}, {'answer_id': 21029, 'author': 'Mark Biek', 'author_id': 305, 'author_profile': 'https://Stackoverflow.com/users/305', 'pm_score': 3, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/0201485672" rel="noreferrer" rel="nofollow noreferrer">Refactoring</a></p>\n'}, {'answer_id': 21032, 'author': 'Lee', 'author_id': 1954, 'author_profile': 'https://Stackoverflow.com/users/1954', 'pm_score': 2, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/0131177052" rel="nofollow noreferrer" rel="nofollow noreferrer">Working Effectively with Legacy Code</a> is a really amazing book that goes into great detail about how to properly unit test your code and what the true benefit of it is.  It really opened my eyes.</p>\n'}, {'answer_id': 21033, 'author': 'Johnno Nolan', 'author_id': 1116, 'author_profile': 'https://Stackoverflow.com/users/1116', 'pm_score': 0, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/0201485672" rel="nofollow noreferrer" rel="nofollow noreferrer">Refactoring</a></p>\n\n<p><a href="https://rads.stackoverflow.com/amzn/click/com/0321127420" rel="nofollow noreferrer" rel="nofollow noreferrer">Patterns of Enterprise Application Architecture</a></p>\n'}, {'answer_id': 21161, 'author': 'JosephStyons', 'author_id': 672, 'author_profile': 'https://Stackoverflow.com/users/672', 'pm_score': 0, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/1593271190" rel="nofollow noreferrer" rel="nofollow noreferrer">Code Craft</a></p>\n'}, {'answer_id': 21203, 'author': 'David Hayes', 'author_id': 1769, 'author_profile': 'https://Stackoverflow.com/users/1769', 'pm_score': 0, 'selected': False, 'text': '<p>I have a couple of (rather old) blog posts on this subject</p>\n\n<ul>\n<li><a href="http://www.spindriftpages.net/blog/dave/2005/11/17/c-books/" rel="nofollow noreferrer">http://www.spindriftpages.net/blog/dave/2005/11/17/c-books/</a></li>\n<li><a href="http://www.spindriftpages.net/blog/dave/2005/06/06/good-oo-books/" rel="nofollow noreferrer">http://www.spindriftpages.net/blog/dave/2005/06/06/good-oo-books/</a></li>\n<li><a href="http://www.spindriftpages.net/blog/dave/2005/05/11/really-great-it-books/" rel="nofollow noreferrer">http://www.spindriftpages.net/blog/dave/2005/05/11/really-great-it-books/</a></li>\n<li>Although a good book I found Code\nComplete to be rather a dull read (a\ncontroversial view I admit).</li>\n<li>I like\nJeffery Richter and the books Joel\nSpolksy has written</li>\n<li>The Eric Meyer CSS books are really good too</li>\n</ul>\n'}, {'answer_id': 21217, 'author': 'Eric Pohl', 'author_id': 2144, 'author_profile': 'https://Stackoverflow.com/users/2144', 'pm_score': 3, 'selected': False, 'text': '<p>In no particular order except how they\'re arranged on my bookshelf:</p>\n\n<ul>\n<li><em>The Pragmatic Programmer</em></li>\n<li><em>Rafactoring</em> by Fowler</li>\n<li><em>Working Effectively with Legacy Code</em> by Feathers. This is practically a companion volume to <em>Refactoring</em>.</li>\n<li><em>UML Distilled</em> by Fowler. Among its other virtues is brevity.</li>\n<li><em>Debugging the Development Process</em> by Steve Maguire</li>\n<li><em>Design Patterns</em> (aka "Gang of Four") by Gamma et al</li>\n</ul>\n'}, {'answer_id': 21225, 'author': 'popopome', 'author_id': 1556, 'author_profile': 'https://Stackoverflow.com/users/1556', 'pm_score': 1, 'selected': False, 'text': '<p>Implementation Patterns by Kent Beck.</p>\n\n<p><a href="http://ecx.images-amazon.com/images/I/51JHn-6oNwL._SL500_AA240_.jpg" rel="nofollow noreferrer">alt text http://ecx.images-amazon.com/images/I/51JHn-6oNwL._SL500_AA240_.jpg</a></p>\n\n<p>You can learn how to communicate people with programming.</p>\n'}, {'answer_id': 21227, 'author': 'Stu', 'author_id': 414, 'author_profile': 'https://Stackoverflow.com/users/414', 'pm_score': 0, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/1558605762" rel="nofollow noreferrer" rel="nofollow noreferrer">SQL for smarties</a></p>\n'}, {'answer_id': 26388, 'author': 'Mike Caron', 'author_id': 2836, 'author_profile': 'https://Stackoverflow.com/users/2836', 'pm_score': 1, 'selected': False, 'text': '<p>Deitel and Deitel, "C++: How to Program"</p>\n\n<p>XUnit Test Patterns</p>\n'}, {'answer_id': 26409, 'author': 'Bill the Lizard', 'author_id': 1288, 'author_profile': 'https://Stackoverflow.com/users/1288', 'pm_score': 2, 'selected': False, 'text': '<p>Read <a href="http://books.google.com/books?id=LjJcCnNf92kC&amp;dq=head+first+design+patterns&amp;pg=PP1&amp;ots=_9Z38Ii7uY&amp;sig=BQOPlemSK6VvYAapjbrHzCqr434&amp;hl=en&amp;sa=X&amp;oi=book_result&amp;resnum=4&amp;ct=result" rel="nofollow noreferrer">Head First Design Patterns</a> for a much more accessible introduction than the GoF book.  I remember feeling like I\'d leveled up after each chapter.</p>\n\n<p>Kent Beck\'s <a href="http://books.google.com/books?hl=en&amp;id=gFgnde_vwMAC&amp;dq=Test+driven+development&amp;printsec=frontcover&amp;source=web&amp;ots=enExqwUtlH&amp;sig=UgEMnH7P4D54RuSltQctG_NiDh8&amp;sa=X&amp;oi=book_result&amp;resnum=6&amp;ct=result" rel="nofollow noreferrer">Test Driven Development by Example</a> for TDD.</p>\n'}, {'answer_id': 29268, 'author': 'jdd', 'author_id': 242853, 'author_profile': 'https://Stackoverflow.com/users/242853', 'pm_score': 0, 'selected': False, 'text': '<p>In addition to other people\'s suggestions, I\'d recommend either acquiring a copy of SICP, or <a href="http://mitpress.mit.edu/sicp/full-text/book/book.html" rel="nofollow noreferrer">reading it online</a>. It\'s one of the few books that I\'ve read that I feel <em>greatly</em> increased my skill in designing software, particularly in creating good abstraction layers.</p>\n\n<p>A book that is not <em>directly</em> related to programming, but is also a good read for programmers (IMO) is <a href="https://rads.stackoverflow.com/amzn/click/com/0201558025" rel="nofollow noreferrer" rel="nofollow noreferrer">Concrete Mathematics</a>. Most, if not all of the topics in it are useful for programmers to know about, and it does a better job of explaining things than any other math book I\'ve read to date.</p>\n'}, {'answer_id': 29273, 'author': 'flipdoubt', 'author_id': 470, 'author_profile': 'https://Stackoverflow.com/users/470', 'pm_score': 2, 'selected': False, 'text': '<p>I\'m a big fan of most titles by Robert C. Martin, especially <a href="http://amazon.com/o/ASIN/0135974445" rel="nofollow noreferrer">Agile Software Development, Principles, and Practices</a> and <a href="http://amazon.com/o/ASIN/0132350882" rel="nofollow noreferrer">Clean Code: A Handbook of Agile Software Craftsmanship</a>.</p>\n'}, {'answer_id': 29282, 'author': 'liammclennan', 'author_id': 2785, 'author_profile': 'https://Stackoverflow.com/users/2785', 'pm_score': 0, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/0201699699" rel="nofollow noreferrer" rel="nofollow noreferrer">Agile Software Development</a> by Alistair Cockburn</p>\n'}, {'answer_id': 29338, 'author': 'lurks', 'author_id': 1876, 'author_profile': 'https://Stackoverflow.com/users/1876', 'pm_score': 3, 'selected': False, 'text': '<p>I think that "The Art of Unix Programming" is an excellent book, by an excellent hacker/brilliant mind as Eric S. Raymond, who tries to make us understand a few principles of software design (simplicity mainly). This book is a must for every programming who is about to start a project under Unix platform.</p>\n'}, {'answer_id': 31438, 'author': 'Paul Tomblin', 'author_id': 3333, 'author_profile': 'https://Stackoverflow.com/users/3333', 'pm_score': 3, 'selected': False, 'text': "<p>Mr. Bunny's Guide To ActiveX</p>\n"}, {'answer_id': 33154, 'author': 'Onorio Catenacci', 'author_id': 2820, 'author_profile': 'https://Stackoverflow.com/users/2820', 'pm_score': 3, 'selected': False, 'text': '<p>I have a few good books that strongly influenced me that I\'ve not seen on this list so far:</p>\n\n<p><em><a href="https://rads.stackoverflow.com/amzn/click/com/0465067093" rel="noreferrer" rel="nofollow noreferrer">The Psychology of Everyday Things</a></em> by Donald Norman.  The general principles of design for other people.  This may seem to be mostly good for UI but if you think about it, it has applications almost anywhere there is an interface that someone besides the original developer has to work with; e. g. an API and designing the interface in such a way that other developers form the correct mental model and get appropriate feedback from the API itself. </p>\n\n<p><em><a href="https://rads.stackoverflow.com/amzn/click/com/0471469122" rel="noreferrer" rel="nofollow noreferrer">The Art of Software Testing</a></em> by Glen Myers.  A good, general introduction to testing software; good for programmers to read to help them think like a tester i. e. think of what may go wrong and prepare for it.</p>\n\n<p>By the way, I realize the question was the "Single Most Influential Book" but the discussion seems to have changed to listing good books for developers to read so I hope I can be forgiven for listing two good books rather than just one.</p>\n'}, {'answer_id': 33671, 'author': 'joel.neely', 'author_id': 3525, 'author_profile': 'https://Stackoverflow.com/users/3525', 'pm_score': 3, 'selected': False, 'text': '<p>While I agree that many of the books above are must-reads (Pragmatic Programmer, Mythical Man-Month, Art of Computer Programming, and SICP come to mind immediately), I\'d like to go in a slightly different direction and recommend <a href="https://rads.stackoverflow.com/amzn/click/com/013215871X" rel="noreferrer" rel="nofollow noreferrer" title="A Discipline of Programming">A Discipline of Programming</a> by Edsger Dijkstra. Even though it\'s 32 years old, the emphasis on "design for verifiability" is highly relevant (even if "verifiability" means "proof" instead "unit tests").</p>\n'}, {'answer_id': 37603, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 3, 'selected': False, 'text': '<p>There are a lot of votes for Steve McConnell\'s Code Complete, but what about his <a href="http://www.stevemcconnell.com/sg.htm" rel="nofollow noreferrer">Software Project Survival Guide</a> book? I think they\'re both required reading but for different reasons.</p>\n'}, {'answer_id': 38113, 'author': 'Patrick Hogan', 'author_id': 4065, 'author_profile': 'https://Stackoverflow.com/users/4065', 'pm_score': 2, 'selected': False, 'text': '<p>I recently read <a href="https://rads.stackoverflow.com/amzn/click/com/1400082471" rel="nofollow noreferrer" rel="nofollow noreferrer">Dreaming in Code</a> and found it to be an interesting read. Perhaps more so since the day I started reading it Chandler 1.0 was released. Reading about the growing pains and mistakes of a project team of talented people trying to "change the world" gives you a lot to learn from. Also Scott brings up a lot of programmer lore and wisdom in between that\'s just an entertaining read.</p>\n\n<p><a href="https://rads.stackoverflow.com/amzn/click/com/0596510047" rel="nofollow noreferrer" rel="nofollow noreferrer">Beautiful Code</a> had one or two things that made me think differently, particularly the chapter on top down operator precedence.</p>\n'}, {'answer_id': 38973, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 2, 'selected': False, 'text': '<p>This isn\'t a direct answer to the question, because I feel it\'s already been answered above, however, one of the books that definitely had an impact on how I code is <a href="http://www.bookpool.com/ss?qs=0201799405" rel="nofollow noreferrer">Code Reading, Volume 1: The Open Source Perspective</a>.  </p>\n\n<p><a href="http://g.bookpool.com/covers/405/0201799405_140_30O.gif" rel="nofollow noreferrer">alt text http://g.bookpool.com/covers/405/0201799405_140_30O.gif</a></p>\n'}, {'answer_id': 42972, 'author': 'benc', 'author_id': 2910, 'author_profile': 'https://Stackoverflow.com/users/2910', 'pm_score': 1, 'selected': False, 'text': '<p><a href="http://www.code-is-law.org/" rel="nofollow noreferrer">Code is Law</a> - you are doing all this writing, editing, and thinking in [language of your choice] but WHY? What does you code MEAN? What will does it actually DO?</p>\n\n<p>(I could have recommended a book on QA, but I didn\'t...)</p>\n'}, {'answer_id': 47601, 'author': 'Luther Baker', 'author_id': 4910, 'author_profile': 'https://Stackoverflow.com/users/4910', 'pm_score': 1, 'selected': False, 'text': '<p><a href="http://www.apress.com/book/view/1590599217" rel="nofollow noreferrer">Pro Spring</a> is a superb introduction to the world of Inversion of Control and Dependency Injection. If you\'re not aware of these practices and their implications - the balance of topics and technical detail in Pro Spring is excellent. It builds a great case and consequent personal foundation.</p>\n\n<p>Another book I\'d suggest would be Robert Martin\'s <a href="https://rads.stackoverflow.com/amzn/click/com/0135974445" rel="nofollow noreferrer" rel="nofollow noreferrer">Agile Software Development</a> (ASD). Code smells, agile techniques, test driven dev, principles ... a well-written balance of many different programming facets.</p>\n\n<p>More traditional classics would include the infamous GoF <a href="https://rads.stackoverflow.com/amzn/click/com/0201633612" rel="nofollow noreferrer" rel="nofollow noreferrer">Design Patterns</a>, Bertrand Meyer\'s <a href="https://rads.stackoverflow.com/amzn/click/com/0136291554" rel="nofollow noreferrer" rel="nofollow noreferrer">Object Oriented Software Construction</a>, Booch\'s <a href="https://rads.stackoverflow.com/amzn/click/com/020189551X" rel="nofollow noreferrer" rel="nofollow noreferrer">Object Oriented Analysis and Design</a>, <a href="http://www.amazon.com/s/ref=nb_ss_b?url=search-alias%3Dstripbooks&amp;field-keywords=scott+meyers&amp;x=0&amp;y=0" rel="nofollow noreferrer">Scott Meyer</a>\'s "<a href="https://rads.stackoverflow.com/amzn/click/com/0321334876" rel="nofollow noreferrer" rel="nofollow noreferrer">Effective C++</a>\'" series and a lesser known book I enjoyed by Gunderloy, <a href="http://www.codertodeveloper.com/" rel="nofollow noreferrer">Coder to Developer</a>.</p>\n\n<p>And while books are nice ... don\'t forget <a href="http://www.se-radio.net/" rel="nofollow noreferrer">radio</a>!</p>\n\n<p>... let me add one more thing. If you haven\'t already discovered <a href="http://safari.oreilly.com/0735619670" rel="nofollow noreferrer">safari</a> - take a look. It is more addictive than stack overflow :-) I\'ve found that with my google type habits - I need the more expensive subscription so I can look at any book at any time - but I\'d recommend the trial to anyone even remotely interested.</p>\n\n<p>(ah yes, a little obj-C today, cocoa tomorrow, patterns? soa? what was that example in that cookbook? What did Steve say in the <a href="http://safari.oreilly.com/0735619670" rel="nofollow noreferrer">second edition</a>? Should I buy this book? ... a subscription like this is great if you\'d like some continuity and context to what you\'re googling ...)</p>\n'}, {'answer_id': 48191, 'author': 'Sven', 'author_id': 272, 'author_profile': 'https://Stackoverflow.com/users/272', 'pm_score': 2, 'selected': False, 'text': '<p><a href="https://stackoverflow.com/questions/559/what-books-would-you-recommend-for-a-beginning-software-developer#1150">Debugging the Development Process: Practical Strategies for Staying Focused, Hitting Ship Dates, and Building Solid Teams</a> by Steve Maguire.</p>\n\n<p>No-non-sense, down-to-earth, entertaining, profound.</p>\n'}, {'answer_id': 49088, 'author': 'pkoch', 'author_id': 5128, 'author_profile': 'https://Stackoverflow.com/users/5128', 'pm_score': 2, 'selected': False, 'text': '<p>I found "The art of Prolog" a very good read.</p>\n'}, {'answer_id': 49139, 'author': 'Dominic Eidson', 'author_id': 5042, 'author_profile': 'https://Stackoverflow.com/users/5042', 'pm_score': 2, 'selected': False, 'text': '<p>I think I grew up in a different generation than most here....</p>\n\n<p>One of the most influential books I read, was <a href="http://www.kohala.com/start/apue.html" rel="nofollow noreferrer">APUE</a>.</p>\n\n<p>Or pretty much anything by W. Richard Stevens.</p>\n'}, {'answer_id': 53240, 'author': 'Gürkan Yeniçeri', 'author_id': 5479, 'author_profile': 'https://Stackoverflow.com/users/5479', 'pm_score': 2, 'selected': False, 'text': '<p>Roger S. Pressman - Software Engineering (A Practitioners Approach). It has got a lot of usefull information.</p>\n'}, {'answer_id': 54322, 'author': 'Kilhoffer', 'author_id': 5469, 'author_profile': 'https://Stackoverflow.com/users/5469', 'pm_score': 3, 'selected': False, 'text': '<p>This one isnt really a book for the beginning programmer, but if you\'re looking for SOA design books, then <a href="https://rads.stackoverflow.com/amzn/click/com/0596529554" rel="nofollow noreferrer" rel="nofollow noreferrer">SOA in Practice: The Art of Distributed System Design</a> is for you.</p>\n'}, {'answer_id': 55741, 'author': 'Garth Kidd', 'author_id': 5700, 'author_profile': 'https://Stackoverflow.com/users/5700', 'pm_score': 3, 'selected': False, 'text': '<p>Do users ever touch your code? If you\'re not doing solely back-end work, I recommend <a href="https://rads.stackoverflow.com/amzn/click/com/0470084111" rel="noreferrer" rel="nofollow noreferrer">About Face: The Essentials of User Interface Design</a>\xa0— now in its third edition (linked). I used to think my users were stupid because they didn\'t "get" my interfaces. I was, of course, wrong. About Face turned me around. </p>\n'}, {'answer_id': 58067, 'author': 'busse', 'author_id': 5702, 'author_profile': 'https://Stackoverflow.com/users/5702', 'pm_score': 0, 'selected': False, 'text': '<p>Not a programming book, but still a very important book every programmer should read:</p>\n\n<p><a href="https://rads.stackoverflow.com/amzn/click/com/0670879835" rel="nofollow noreferrer" rel="nofollow noreferrer">Orbiting the Giant Hairball by Gordon MacKenzie</a></p>\n'}, {'answer_id': 60634, 'author': 'mattruma', 'author_id': 1768, 'author_profile': 'https://Stackoverflow.com/users/1768', 'pm_score': 3, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/1593271190" rel="noreferrer" rel="nofollow noreferrer">Code Craft</a> by Pete Goodliffe is a good read!</p>\n\n<p><a href="http://ecx.images-amazon.com/images/I/51WZ9AEC3GL._SL500_BO2,204,203,200_PIsitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg" rel="noreferrer">Code Craft http://ecx.images-amazon.com/images/I/51WZ9AEC3GL._SL500_BO2,204,203,200_PIsitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg</a></p>\n'}, {'answer_id': 65407, 'author': 'Bryan Oakley', 'author_id': 7432, 'author_profile': 'https://Stackoverflow.com/users/7432', 'pm_score': 3, 'selected': False, 'text': '<p>Software Tools by by Brian W. Kernighan and P. J. Plauger</p>\n\n<p>It had a profound influence on how I write software.</p>\n'}, {'answer_id': 66619, 'author': 'WaldWolf', 'author_id': 9764, 'author_profile': 'https://Stackoverflow.com/users/9764', 'pm_score': 2, 'selected': False, 'text': '<p>to get advanced in prolog i like these two books:</p>\n\n<p><a href="https://rads.stackoverflow.com/amzn/click/com/0262193388" rel="nofollow noreferrer" rel="nofollow noreferrer">The Art of Prolog</a></p>\n\n<p><a href="https://rads.stackoverflow.com/amzn/click/com/0262512270" rel="nofollow noreferrer" rel="nofollow noreferrer">The Craft of Prolog</a></p>\n\n<p>really opens the mind for logic programming and recursion schemes.</p>\n'}, {'answer_id': 68453, 'author': 'AShelly', 'author_id': 10396, 'author_profile': 'https://Stackoverflow.com/users/10396', 'pm_score': 1, 'selected': False, 'text': '<p>Here are two I haven\'t seen mentioned:<br>\nI wish I had read "<a href="https://rads.stackoverflow.com/amzn/click/com/0201423391" rel="nofollow noreferrer" rel="nofollow noreferrer">Ruminations on C++</a>" by Koenig and Moo much sooner.  That was the book that made OO concepts really click for me.<br>\nAnd I recommend Michael Abrash\'s "Zen of Code Optimization" for anyone else planning on starting a programming career in the mid 90s.  </p>\n'}, {'answer_id': 69157, 'author': 'Larry OBrien', 'author_id': 10116, 'author_profile': 'https://Stackoverflow.com/users/10116', 'pm_score': 3, 'selected': False, 'text': '<p>"The World is Flat" by Thomas Friedman. </p>\n\n<p>Excellence in programming demands an investment of mental energy and a dedication to continued learning comparable to the professions of medicine or law. It pays a fraction of what those professions pay, much less the wages paid to the mathematically savvy who head into the finance sector. And wages for <em>constructing code</em> are eroding because it\'s a profession that is <em>relatively</em> easy for the intelligent and self-disciplined in most economies to enter.</p>\n\n<p>Programming has already eroded to the point of paying less than, say, plumbing. Plumbing can\'t be "offshored." You don\'t need to pay $2395 to attend the Professional Plumber\'s Conference every other year for the privilege of receiving an entirely new set of plumbing technologies that will take you a year to learn. </p>\n\n<p>If you live in North America or Europe, are young, and are smart, programming is not a rational career choice. Businesses that <em>involve</em> programming, absolutely. Study business, know enough about programming to refine your BS detector: brilliant. But dedicating the lion\'s share of your mental energy to the mastery of libraries, data structures, and algorithms? That only makes sense if programming is something more to you than an economic choice.</p>\n\n<p>If you <em>love</em> programming and for that reason intend to make it your career, then it behooves you to develop a cold-eyed understanding of the forces that are, and will continue, to make it a harder and harder profession in which to make a living. "The World is Flat" won\'t teach you what to name your variables, but it will immerse you for 6 or 8 hours in economic realities that have <em>already</em> arrived. If you can read it, and not get scared, <em>then</em> go out and buy "Code Complete."</p>\n'}, {'answer_id': 72432, 'author': 'Michiel Borkent', 'author_id': 6264, 'author_profile': 'https://Stackoverflow.com/users/6264', 'pm_score': 3, 'selected': False, 'text': '<p><a href="http://norvig.com/paip.html" rel="noreferrer">Paradigms of Artificial Intelligence Programming</a>: Case Studies in Common Lisp by Peter Norvig</p>\n\n<p><img src="https://i.stack.imgur.com/n9oXc.jpg" alt="enter image description here"></p>\n\n<p>I started reading it because I wanted to learn Common Lisp. When I was halfway, I realized this was the greatest book about programming I had read so far.</p>\n'}, {'answer_id': 72440, 'author': 'Henry B', 'author_id': 6414, 'author_profile': 'https://Stackoverflow.com/users/6414', 'pm_score': 2, 'selected': False, 'text': '<p>It\'s not strictly a development book and I believe that I\'ve mentioned it in another answer somewhere but it\'s a book I really believe all developers should read, from php to Java to assembly developers.</p>\n\n<p><a href="http://www.amazon.co.uk/Code-Language-DV-Undefined-Charles-Petzold/dp/0735611319/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1221573014&amp;sr=8-1" rel="nofollow noreferrer">Code</a></p>\n\n<p>It really brings together what\'s under the hood in a computer, why memory shouldn\'t be wasted and some of the more interesting parts of the history of computing. It\'s an introduction to the computer and what it is. It gave me my ultimate passion for low level programming and helped me understand pointers and memory more than any other computer.</p>\n'}, {'answer_id': 72490, 'author': 'Ferruccio', 'author_id': 4086, 'author_profile': 'https://Stackoverflow.com/users/4086', 'pm_score': 1, 'selected': False, 'text': '<p>Modern C++ Design by Andrei Alexandrescu</p>\n'}, {'answer_id': 72505, 'author': 'Brian G', 'author_id': 3208, 'author_profile': 'https://Stackoverflow.com/users/3208', 'pm_score': 2, 'selected': False, 'text': "<p>I think code complete is going to be a hugely popular one for this question, for me it corrected many of my bad habits and re-affirmed my good practices.</p>\n\n<p>Also for my Perl background I really like Perl Best Practices from Damian Conway. Perl can be a nasty language if you don't use style and best practices, which is what I was seeing in the scripts I was reading ( and sometimes writing ) .</p>\n\n<p>I like the Head First Series, they are quite good and easy to read when your are not in the mood for more serious style books.</p>\n"}, {'answer_id': 72551, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 1, 'selected': False, 'text': '<p>Writing Solid Code by Steve Maguire.</p>\n'}, {'answer_id': 72585, 'author': 'David Dibben', 'author_id': 5022, 'author_profile': 'https://Stackoverflow.com/users/5022', 'pm_score': 1, 'selected': False, 'text': '<p>"Object-Oriented Analysis and Design with Applications" by Grady Booch. I read this a long time ago and it showed me that there could be a methodology to developing Object Oriented Software. Since then many other books have had an impact on me but this one got me started.</p>\n'}, {'answer_id': 72594, 'author': 'Garth Gilmour', 'author_id': 2635682, 'author_profile': 'https://Stackoverflow.com/users/2635682', 'pm_score': 0, 'selected': False, 'text': '<p>The <a href="http://www.amazon.co.uk/Interpretation-Object-oriented-Programming-Languages/dp/1852335475/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1221573489&amp;sr=8-1" rel="nofollow noreferrer">Interpretation of Object-Oriented Programming Languages</a> by Ian Craig</p>\n\n<p>Because it showed me how much more there was to OO than standard C++/Java idioms</p>\n'}, {'answer_id': 72611, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 2, 'selected': False, 'text': "<p>Programming Perl (O'Reilly)</p>\n"}, {'answer_id': 72739, 'author': 'kzotin', 'author_id': 12021, 'author_profile': 'https://Stackoverflow.com/users/12021', 'pm_score': 0, 'selected': False, 'text': '<p>Thinking in Java (Patterns) , Bruce Eckel</p>\n'}, {'answer_id': 72762, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 0, 'selected': False, 'text': '<p>Professional Excel Development\nThis book showed how to make high quality applications within one of the most ubiquitous programming platforms available.</p>\n'}, {'answer_id': 72812, 'author': 'jop', 'author_id': 11830, 'author_profile': 'https://Stackoverflow.com/users/11830', 'pm_score': 1, 'selected': False, 'text': '<p>Mine is <a href="https://rads.stackoverflow.com/amzn/click/com/0321146530" rel="nofollow noreferrer" rel="nofollow noreferrer">Test Driven Development by Example</a></p>\n'}, {'answer_id': 72813, 'author': 'Card Visitor', 'author_id': 5352, 'author_profile': 'https://Stackoverflow.com/users/5352', 'pm_score': 2, 'selected': False, 'text': '<p><a href="http://www.poppendieck.com/ld.htm" rel="nofollow noreferrer">Lean Software Development</a> by Mary and Tom Poppendieck is definitely one for every developers bookshelf</p>\n'}, {'answer_id': 72876, 'author': 'Jonathan', 'author_id': 6910, 'author_profile': 'https://Stackoverflow.com/users/6910', 'pm_score': 2, 'selected': False, 'text': '<p><a href="http://www.amazon.co.uk/Cocoa-Programming-Mac-OS-X/dp/0321503619/" rel="nofollow noreferrer">Cocoa Programming</a> for Mac OS X by Aaron Hillegass</p>\n'}, {'answer_id': 72905, 'author': 'Penfold', 'author_id': 11952, 'author_profile': 'https://Stackoverflow.com/users/11952', 'pm_score': 2, 'selected': False, 'text': "<p>It's a toss up between Head First Design Patterns, for many of the reasons cited above, and Perl Testing: A Developer's Notebook, which should be one of the bibles for any Perl programmer wanting to write maintainable code.</p>\n"}, {'answer_id': 72974, 'author': 'Jay', 'author_id': 12479, 'author_profile': 'https://Stackoverflow.com/users/12479', 'pm_score': 2, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/0321334876" rel="nofollow noreferrer" rel="nofollow noreferrer">Effective C++</a> and <a href="https://rads.stackoverflow.com/amzn/click/com/020163371X" rel="nofollow noreferrer" rel="nofollow noreferrer">More Effective C++</a> by Scott Myers. </p>\n'}, {'answer_id': 73057, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 2, 'selected': False, 'text': '<p>This one started me off into true OOA&amp;D. </p>\n\n<p>Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development - Craig Larman</p>\n\n<p>These would be up there as well:</p>\n\n<ul>\n<li>Patterns in Enterprise Application Architecture - Fowler </li>\n<li>Domain-Driven Design - Eric Evans</li>\n</ul>\n'}, {'answer_id': 73073, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 0, 'selected': False, 'text': '<p>PHP objects, patterns and practice. \n<a href="http://www.apress.com/book/view/9781590599099" rel="nofollow noreferrer">http://www.apress.com/book/view/9781590599099</a></p>\n'}, {'answer_id': 73122, 'author': 'Bjoern', 'author_id': 5919, 'author_profile': 'https://Stackoverflow.com/users/5919', 'pm_score': 0, 'selected': False, 'text': '<p><a href="http://samizdat.mines.edu/howto/HowToBeAProgrammer.html" rel="nofollow noreferrer">\'How to be a Programmer: A Short, Comprehensive, and Personal Summary\'</a> by <em>Robert L Read</em></p>\n\n<p>Not exactly a book but an essay, but this one was definitely an inspiration for me when I got into coding. Loved the notion of entering a tribe. Worth a read.</p>\n'}, {'answer_id': 73228, 'author': 'Bharani', 'author_id': 6879, 'author_profile': 'https://Stackoverflow.com/users/6879', 'pm_score': 2, 'selected': False, 'text': '<p>Win32 Programming by Charles Petzold</p>\n'}, {'answer_id': 73235, 'author': 'MattH', 'author_id': 81, 'author_profile': 'https://Stackoverflow.com/users/81', 'pm_score': 3, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/1556159005" rel="noreferrer" rel="nofollow noreferrer">Rapid Development</a> by McConnell</p>\n'}, {'answer_id': 73376, 'author': 'Pat', 'author_id': 238, 'author_profile': 'https://Stackoverflow.com/users/238', 'pm_score': 2, 'selected': False, 'text': '<p>I suppose we could ask the <a href="https://stackoverflow.com/questions/1711/">same top rated question</a> every couple of weeks and upmod all those who mention <a href="http://cc2e.com/" rel="nofollow noreferrer">code complete</a> or <a href="http://www.pragprog.com/titles/tpp/the-pragmatic-programmer" rel="nofollow noreferrer">The Pragmatic Programmer</a>. </p>\n\n<p>Not that there is anythng wrong with it :-)</p>\n'}, {'answer_id': 73623, 'author': 'James Curran', 'author_id': 12725, 'author_profile': 'https://Stackoverflow.com/users/12725', 'pm_score': 2, 'selected': False, 'text': '<p>"<em>The Design and Evolution of C++</em>" by Bjarne Stroustrup</p>\n\n<p>Besides giving much background on C++, it is also a lengthy study on the trade-offs and design concerns involved in a large scale program.</p>\n\n<p><a href="http://search.barnesandnoble.com/The-Design-and-Evolution-of-C/Bjarne-Stroustrup/e/9780201543308/?itm=1" rel="nofollow noreferrer">BN.com</a></p>\n'}, {'answer_id': 73778, 'author': 'Kelly Adams', 'author_id': 12734, 'author_profile': 'https://Stackoverflow.com/users/12734', 'pm_score': 1, 'selected': False, 'text': "<p><strong>Learning C# 2005</strong>, by Jesse Liberty &amp; Brian MacDonald (O'Reilly).</p>\n\n<p>ISBN 10: 0-596-10209-7.</p>\n\n<p>When I first made the jump from ASP classic procedural code to object-oriented C# code in VS2005, this book set me on the right path.</p>\n"}, {'answer_id': 73822, 'author': 'Craig Hyatt', 'author_id': 5808, 'author_profile': 'https://Stackoverflow.com/users/5808', 'pm_score': 2, 'selected': False, 'text': '<p>While not strictly a software development book, I would highly recommend that <a href="https://rads.stackoverflow.com/amzn/click/com/0321344758" rel="nofollow noreferrer" rel="nofollow noreferrer">Don\'t Make me Think!</a> be considered in this list.</p>\n'}, {'answer_id': 73880, 'author': 'Bryan Oakley', 'author_id': 7432, 'author_profile': 'https://Stackoverflow.com/users/7432', 'pm_score': 1, 'selected': False, 'text': '<p>Software Tools by Brian W. Kernighan and  P. J. Plauger by a wide margin had the most effect on me.</p>\n'}, {'answer_id': 74118, 'author': 'Eddie Velasquez', 'author_id': 12851, 'author_profile': 'https://Stackoverflow.com/users/12851', 'pm_score': 1, 'selected': False, 'text': '<p>Inside the C++ Object Model by Stan Lippman. It made C++ finally "click" for me, before it was all "magic". This book gave me a different frame of mind when approaching a new programming language.</p>\n'}, {'answer_id': 74234, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 1, 'selected': False, 'text': "<p>Literate Programming by Donald Knuth, it's a great book on code structure.</p>\n"}, {'answer_id': 74245, 'author': 'Craig Trader', 'author_id': 12895, 'author_profile': 'https://Stackoverflow.com/users/12895', 'pm_score': 2, 'selected': False, 'text': '<p><a href="http://en.wikipedia.org/wiki/The_Unix_Programming_Environment" rel="nofollow noreferrer">The Unix Programming Environment</a> by Kernighan and Pike.  </p>\n\n<p><img src="https://upload.wikimedia.org/wikipedia/en/thumb/4/43/English4.gif/180px-English4.gif" alt="The Unix Programming Environment"></p>\n\n<p>More than any other book, it taught me the benefits in building small, easily-tested tools that can be combined to do big things.  </p>\n'}, {'answer_id': 74272, 'author': 'user12933', 'author_id': 12933, 'author_profile': 'https://Stackoverflow.com/users/12933', 'pm_score': 2, 'selected': False, 'text': '<p>Object-Oriented Software Construction by Bertrand Meyer</p>\n'}, {'answer_id': 74310, 'author': 'R Caloca', 'author_id': 13004, 'author_profile': 'https://Stackoverflow.com/users/13004', 'pm_score': 2, 'selected': False, 'text': '<p><strong>Expert C Programming: Deep C Secrets</strong> by <em>Peter Van Der Linden</em></p>\n'}, {'answer_id': 74424, 'author': 'thvo', 'author_id': 13041, 'author_profile': 'https://Stackoverflow.com/users/13041', 'pm_score': 2, 'selected': False, 'text': '<p>Extreme Programming by Kent Beck</p>\n'}, {'answer_id': 74556, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 0, 'selected': False, 'text': '<p>A collection it was, and stunning.  Edsger Dijkstra\'s (with some help from C.A.R. Hoare) little black book <a href="http://portal.acm.org/citation.cfm?id=1243380&amp;jmp=cit&amp;coll=portal&amp;dl=GUIDE&amp;CFID=://www.acm.org/publications/&amp;CFTOKEN=www.acm.org/publications/#CIT" rel="nofollow noreferrer">Structured Programming</a> and particlarly the essay titled "On Our Inability To Do Much".</p>\n'}, {'answer_id': 74643, 'author': 'Buzz', 'author_id': 13113, 'author_profile': 'https://Stackoverflow.com/users/13113', 'pm_score': 2, 'selected': False, 'text': '<p>My high school math teacher lent me a copy of <a href="https://rads.stackoverflow.com/amzn/click/com/0932633161" rel="nofollow noreferrer" rel="nofollow noreferrer">Are Your Lights Figure Problem</a> that I have re-read many times. It has been invaluable, as a developer, and in life generally. </p>\n'}, {'answer_id': 74710, 'author': 'TMarshall', 'author_id': 8847, 'author_profile': 'https://Stackoverflow.com/users/8847', 'pm_score': 2, 'selected': False, 'text': '<p>The question is, <em>"What book really made an impact of how you work as a developer?"</em>  Without any doubt, <strong>Programming Windows with MFC</strong>, by Jeff Prosise, is the book that had the greatest impact on HOW I work as a developer.  It did not teach me the fundamentals of "programming" but it opened the world of Windows platform development to me and many thousands of other developers.</p>\n\n<p>I had written a little Windows code previously in the "Petzold style" before MFC was developed.  I quickly decided the Windows platform we just not worth the trouble as a developer.  When Prosise came out with his MFC book, I realized (along with thousands of other non-Windows programmers) that I could create an easy to use interface that users would not just understand, but actually enjoy using.  I devoured the book, making so many notes in it and turning down so many corners, I eventually bought a second copy.  </p>\n\n<p>Prosise, Jeff. <em>Programming Windows with MFC 2nd Ed.</em>\nMicrosoft Press 1999\nISBN: 1-57231-695-0</p>\n'}, {'answer_id': 74953, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 1, 'selected': False, 'text': "<p>The Productive Programmer by Ford</p>\n\n<p>I'm not quite through this one yet, but I'm already thrilled by some of the tips/tricks I've picked up to become more...well...productive.</p>\n\n<p>Sure, there's plenty of the stuff we all already know (use the keyboard shortcuts, DRY, etc).  But there's plenty of new stuff to go with it.  And careful readers will quickly start to see how things can be combined for even greater effect.</p>\n"}, {'answer_id': 74983, 'author': 'Vaibhav', 'author_id': 380, 'author_profile': 'https://Stackoverflow.com/users/380', 'pm_score': 1, 'selected': False, 'text': '<p>Object Oriented Analysis and Design - by Grady Booch</p>\n'}, {'answer_id': 75037, 'author': 'Joe Morgan', 'author_id': 13244, 'author_profile': 'https://Stackoverflow.com/users/13244', 'pm_score': 0, 'selected': False, 'text': '<p>The C++ Series of programming books by Deitel and Deitel</p>\n'}, {'answer_id': 75058, 'author': 'DavidGR', 'author_id': 9480, 'author_profile': 'https://Stackoverflow.com/users/9480', 'pm_score': 1, 'selected': False, 'text': '<p><strong>"Thinking in C++"</strong> by Bruce Eckel</p>\n'}, {'answer_id': 75219, 'author': 'Mark Holtman', 'author_id': 13286, 'author_profile': 'https://Stackoverflow.com/users/13286', 'pm_score': 2, 'selected': False, 'text': '<p>Domain Driven Design by Eric Evans</p>\n'}, {'answer_id': 75220, 'author': 'Joe Liversedge', 'author_id': 4552, 'author_profile': 'https://Stackoverflow.com/users/4552', 'pm_score': 0, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/1558605703" rel="nofollow noreferrer" rel="nofollow noreferrer">Managing Gigabytes</a> is an instant classic for thinking about the heavy lifting of information.</p>\n'}, {'answer_id': 75227, 'author': 'user13288', 'author_id': 13288, 'author_profile': 'https://Stackoverflow.com/users/13288', 'pm_score': 0, 'selected': False, 'text': '<p>C# for Experienced Programmers</p>\n\n<p>or really anything from Dietel &amp; Dietel. I have read several of their books, and everything has been awesome.</p>\n'}, {'answer_id': 75393, 'author': 'Michael Easter', 'author_id': 12704, 'author_profile': 'https://Stackoverflow.com/users/12704', 'pm_score': 0, 'selected': False, 'text': "<p>Years ago, Bruce Eckel's Thinking in C++ taught me a great deal about C++ but also the importance of isolating an issue to a small 'sandbox' for study/analysis.  This technique has greatly impacted my career and routinely helps me troubleshoot problems both for myself and others.</p>\n\n<p>These days, I refer to Thinking in Java, which is written in the same style. Somehow, the style is beyond mere, simple 'examples' and profoundly gets at the heart of the issue.</p>\n\n<p>I am so grateful that I will buy virtually anything by Eckel, sight unseen.</p>\n"}, {'answer_id': 75436, 'author': 'Kris Gray', 'author_id': 1302167, 'author_profile': 'https://Stackoverflow.com/users/1302167', 'pm_score': 2, 'selected': False, 'text': '<p><a href="http://ecx.images-amazon.com/images/I/519J3P8ANML._SL500_AA240_.jpg" rel="nofollow noreferrer">http://ecx.images-amazon.com/images/I/519J3P8ANML._SL500_AA240_.jpg</a></p>\n\n<p>Took my programing to a whole new level.</p>\n'}, {'answer_id': 75584, 'author': 'EmmEff', 'author_id': 9188, 'author_profile': 'https://Stackoverflow.com/users/9188', 'pm_score': 0, 'selected': False, 'text': '<p>When I first started, there was "Mastering Turbo Pascal" by Tom Swan.  There is nothing terribly profound about this book.  It was clear and concise with usable examples.  Based on this knowledge, I spawned a software development career now 15+ years in.</p>\n'}, {'answer_id': 75587, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 0, 'selected': False, 'text': '<p>C++ BlackBook. KISS all the way through</p>\n'}, {'answer_id': 75695, 'author': 'Nate', 'author_id': 12779, 'author_profile': 'https://Stackoverflow.com/users/12779', 'pm_score': 1, 'selected': False, 'text': "<p>Donald Norman, 'The Design of Everyday Things'</p>\n\n<p>Not about programming, per se, but about how things in the world should <em>work</em> -- kind of the psychology of usability.</p>\n\n<p>It's been invaluable for me in designing both end-user interfaces and APIs.</p>\n"}, {'answer_id': 75783, 'author': 'Zartog', 'author_id': 9467, 'author_profile': 'https://Stackoverflow.com/users/9467', 'pm_score': 0, 'selected': False, 'text': '<p>Mastering C++ from Tom Swan.  It was the best kind of book, it had examples which were simple enough to teach concepts but useful enough to solve other problems.  It was very readable, it was the first book I read when got to college, and it only needed to be read once.</p>\n'}, {'answer_id': 75932, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 0, 'selected': False, 'text': "<p>Tenenbaum's first operating systems book. My first look at kernal level programming.</p>\n"}, {'answer_id': 76132, 'author': 'Joe Corkery', 'author_id': 7587, 'author_profile': 'https://Stackoverflow.com/users/7587', 'pm_score': 0, 'selected': False, 'text': '<p>"Algorithms in C" (1st edition) by Sedgewick taught me all about algorithms as well as teaching me all about the pitfalls of documentation and copy/pasting code as all the example code in this version was taken from the "Algorithms in Pascal" version and were simply passed through a simple code translator which did not adjust for the different indexing schemes.</p>\n'}, {'answer_id': 76365, 'author': 'Ryan Skarin', 'author_id': 13593, 'author_profile': 'https://Stackoverflow.com/users/13593', 'pm_score': 0, 'selected': False, 'text': '<p>My all-time favorite was the C# Back Book, by Matthew Telles.</p>\n'}, {'answer_id': 76398, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 0, 'selected': False, 'text': '<p><a href="http://www.amazon.ca/Dreaming-Code-Programmers-Transcendent-Software/dp/1400082471/ref=pd_bbs_3?ie=UTF8&amp;s=books&amp;qid=1221595779&amp;sr=8-3" rel="nofollow noreferrer">Dreaming in Code</a> Has probably had the most profound impact in the last 6 months.</p>\n'}, {'answer_id': 76530, 'author': 'Roskoto', 'author_id': 13635, 'author_profile': 'https://Stackoverflow.com/users/13635', 'pm_score': 0, 'selected': False, 'text': '<p>"The C++ Programming Language" by Bjarne Stroustrup</p>\n'}, {'answer_id': 76678, 'author': 'Scott Lawrence', 'author_id': 3475, 'author_profile': 'https://Stackoverflow.com/users/3475', 'pm_score': 2, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/078214327X" rel="nofollow noreferrer" rel="nofollow noreferrer">Coder to Developer</a>, by Mike Gunderloy.</p>\n'}, {'answer_id': 77228, 'author': 'Bob Moore', 'author_id': 9368, 'author_profile': 'https://Stackoverflow.com/users/9368', 'pm_score': 0, 'selected': False, 'text': '<p>Actually, two books stand out. The first was Code Complete. Despite its age, this is still a very useful book, and the chapter on the dangers of premature optimisation is worth the price of the book on its own. </p>\n\n<p>The second one was The Psychology of Everyday Things (now called The Design of Everyday Things, I think), which changed the way I think about user interfaces when designing applications. It made me more user-focused.</p>\n'}, {'answer_id': 77263, 'author': 'tkrehbiel', 'author_id': 4925, 'author_profile': 'https://Stackoverflow.com/users/4925', 'pm_score': 2, 'selected': False, 'text': '<p>Amiga ROM Kernel Manuals :)</p>\n'}, {'answer_id': 77850, 'author': 'gt124', 'author_id': 14093, 'author_profile': 'https://Stackoverflow.com/users/14093', 'pm_score': 1, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/0201834545" rel="nofollow noreferrer" rel="nofollow noreferrer">Inside the C++ object model</a> by Stanley Lippman</p>\n'}, {'answer_id': 78751, 'author': 'Gustavo Rubio', 'author_id': 14533, 'author_profile': 'https://Stackoverflow.com/users/14533', 'pm_score': 1, 'selected': False, 'text': '<p><a href="http://openbookproject.net/thinkCSpy/index.xhtml" rel="nofollow noreferrer">How to think like a computer scientist: learning with python</a></p>\n\n<p>May not be the most advanced book on the world but it made me understand programming concepts that I couldn\'t, especially object oriented topics.</p>\n'}, {'answer_id': 78853, 'author': 'convex hull', 'author_id': 10747, 'author_profile': 'https://Stackoverflow.com/users/10747', 'pm_score': 2, 'selected': False, 'text': '<p>This might not count as a "development book" but I have to throw it in anyway: Hackers by Stephen Levy.  I found that it spoke to the emotional side of programming.</p>\n'}, {'answer_id': 79095, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 0, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/1556155514" rel="nofollow noreferrer" rel="nofollow noreferrer">"Writing Solid Code: Microsoft\'s Techniques for Developing Bug-Free C Programs (Microsoft Programming Series)"</a> by Steve MacGuire.</p>\n\n<p>Interesting what a large proportion the books mentioned here are C/C++ books.</p>\n'}, {'answer_id': 79144, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 0, 'selected': False, 'text': '<p>For me "Memory as a programming concept in C and C++" really opened my eyes to how memory management really works. If you\'re a C or C++ developer I consider it a must read. You will defiantly learn something or remember things you might have forgotten along the way.</p>\n\n<p><a href="https://rads.stackoverflow.com/amzn/click/com/0521520436" rel="nofollow noreferrer" rel="nofollow noreferrer">http://www.amazon.com/Memory-Programming-Concept-C/dp/0521520436</a></p>\n'}, {'answer_id': 79649, 'author': 'Dave Rolsky', 'author_id': 9832, 'author_profile': 'https://Stackoverflow.com/users/9832', 'pm_score': 2, 'selected': False, 'text': '<p>Separately, I\'d mention <a href="http://www.thethirdmanifesto.com/" rel="nofollow noreferrer">The Third Manifesto</a> by Hugh Darwen and CJ Date. If you\'re interested in understanding <em>data</em> (which seems uncommon among programmers) this book is a must-read. It will also make you sad when you realize just how badly broken SQL is, but it\'ll also help you cope with that brokenness. Knowing how a tool is broken lets you design with those deficits in mind.</p>\n'}, {'answer_id': 80072, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 1, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/0130676349" rel="nofollow noreferrer" rel="nofollow noreferrer">Agile Software Development with Scrum</a> by Ken Schwaber and Mike Beedle.</p>\n\n<p>I used this book as the starting point to understanding Agile development. </p>\n'}, {'answer_id': 80374, 'author': 'Ian', 'author_id': 14871, 'author_profile': 'https://Stackoverflow.com/users/14871', 'pm_score': 1, 'selected': False, 'text': '<p>The Pragmatic programmer was pretty good. However one that really made an impact when I was starting out was :</p>\n\n<p><a href="https://rads.stackoverflow.com/amzn/click/com/1568843186" rel="nofollow noreferrer" rel="nofollow noreferrer">Windows 95 System Programming Secrets"</a></p>\n\n<p>I know - it sounds and looks a bit cheesy on the outside and has probably dated a bit - but this was an awesome explanation of the internals of Win95 based on the Authors (Matt Pietrek)  investigations using his own own tools - the code for which came with the book. Bear in mind this was before the whole open source thing and Microsoft was still pretty cagey about releasing documentation of internals - let alone source. \nThere was some quote in there like "If you are working through some problem and hit some sticking point then you need to stop and really look deeply into that piece and really understand how it works". I\'ve found this to be pretty good advice - particularly these days when you often have the source for a library and can go take a look. \nIts also inspired me to enjoy diving into the internals of how systems work, something that has proven invaluable over the course of my career.</p>\n\n<p>Oh and I\'d also throw in effective .net - great internals explanation of .Net from Don Box.</p>\n'}, {'answer_id': 80404, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 0, 'selected': False, 'text': '<p>SAP ABAP programming?\n"Teach Yourself ABAP in 21 Days" is the best book!</p>\n\n<p>It contains no clever tricks or wizardry, but after 3 years, I never came upon a more comprehensive book</p>\n'}, {'answer_id': 80505, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 0, 'selected': False, 'text': "<p>Schaum's Outline of Programming with C++ by John R Hubbard.</p>\n\n<p>This was the first programming book I read, when I started out with C++. It was gifted to me by someone who saw my interest in programming. The book is very good for beginners - it started from the elementary concepts, went up to templates and vectors. The examples given were pretty relevant. The book made you ponder and ask more questions, and try out things for yourself. </p>\n"}, {'answer_id': 80705, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 2, 'selected': False, 'text': '<p>The most influential programming book for me was <a href="https://rads.stackoverflow.com/amzn/click/com/0070296898" rel="nofollow noreferrer" rel="nofollow noreferrer"><em>Enough Rope to Shoot Yourself in the Foot</em></a> by <a href="http://holub.com/" rel="nofollow noreferrer">Allen Holub</a>.</p>\n\n<p><a href="http://ecx.images-amazon.com/images/I/71AE90J735L._SL500_AA240_.gif" rel="nofollow noreferrer">Cover of the book http://ecx.images-amazon.com/images/I/71AE90J735L._SL500_AA240_.gif</a></p>\n\n<p>O, well, how long ago it was.</p>\n'}, {'answer_id': 80893, 'author': 'Rob', 'author_id': 9236, 'author_profile': 'https://Stackoverflow.com/users/9236', 'pm_score': 1, 'selected': False, 'text': '<p>In recent years it has been \'The C++ Standard Library\' by \'Nicolai M. Josuttis\'.  It\'s my bible.</p>\n\n<p><a href="http://ecx.images-amazon.com/images/I/51BT5SKXTCL._SL500_AA240_.jpg" rel="nofollow noreferrer">alt text http://ecx.images-amazon.com/images/I/51BT5SKXTCL._SL500_AA240_.jpg</a></p>\n'}, {'answer_id': 80944, 'author': 'icelava', 'author_id': 2663, 'author_profile': 'https://Stackoverflow.com/users/2663', 'pm_score': 3, 'selected': False, 'text': '<p>Martin Fowler\'s <strong><a href="http://www.amazon.co.uk/Refactoring-Improving-Design-Existing-Technology/dp/0201485672/" rel="nofollow noreferrer">Refactoring: Improving the Design of Existing Code</a></strong> has already been listed. But I will detail why it has impacted me.</p>\n\n<p>The essence of the whole book is about structuring code so that it is simpler to read and understand by <em>humans</em>. It teaches me strongly that the code that I write is meant for my colleagues and successors to consume and possibly learn something <em>good</em> out of it. It inspires me to consciously <a href="http://icelava.net/forums/post/1040.aspx" rel="nofollow noreferrer">program in a manner that leaves people praising my name, and not cursing me to damnation for all eternity</a>.</p>\n'}, {'answer_id': 81253, 'author': 'AviD', 'author_id': 10080, 'author_profile': 'https://Stackoverflow.com/users/10080', 'pm_score': 2, 'selected': False, 'text': "<p>Another book that has not been mentioned yet, and SHOULD be required reading for EVERY programmer, newbies on up to gurus, in ANY programming language, is Michael Howard's Writing Secure Code (2nd Edition) from MSPress.</p>\n"}, {'answer_id': 81276, 'author': 'Jonas Engström', 'author_id': 7634, 'author_profile': 'https://Stackoverflow.com/users/7634', 'pm_score': 1, 'selected': False, 'text': '<p>The first book that made a real impact on me was <em><a href="https://rads.stackoverflow.com/amzn/click/com/0672305267" rel="nofollow noreferrer" rel="nofollow noreferrer">Mastering Turbo Assembler</a></em> by Tom Swan.</p>\n\n<p>Other books that have had an impact was <em><a href="https://rads.stackoverflow.com/amzn/click/com/0066620732" rel="nofollow noreferrer" rel="nofollow noreferrer">Just For Fun</a></em> by Linus Torvalds and David Diamond and of course <em><a href="https://rads.stackoverflow.com/amzn/click/com/020161622X" rel="nofollow noreferrer" rel="nofollow noreferrer">The Pragmatic Programmer</a></em> by Andrew Hunt and David Thomas.</p>\n'}, {'answer_id': 81430, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 2, 'selected': False, 'text': '<p>As so many people have listed Head First Design Patterns, which I agree is a very good book, I would like to see if so many people aware of a title called <a href="https://rads.stackoverflow.com/amzn/click/com/0201715945" rel="nofollow noreferrer" rel="nofollow noreferrer">Design Patterns Explained: A New Perspective on Object-Oriented Design</a>. </p>\n\n<p>This title deals with design patterns excellently. The first half of the book is very accessible and the remaining chapters require only a firm grasp of the content already covered The reason I feel the second half of the book is less accessible is that it covers patterns that I, as a young developer admittedly lacking in experience, have not used much. </p>\n\n<p>This title also introduces the concept behind design patterns, covering Christopher Alexander\'s initial work in architecture to the GoF first implementing documenting patterns in SmallTalk.</p>\n\n<p>I think that anyone who enjoyed Head First Design Patterns but still finds the GoF very dry, should look into Design Patterns Explained as a much more readable (although not quite as comprehensive) alternative.</p>\n'}, {'answer_id': 81470, 'author': 'GowriKumar', 'author_id': 15150, 'author_profile': 'https://Stackoverflow.com/users/15150', 'pm_score': 0, 'selected': False, 'text': '<p><a href="http://g-ecx.images-amazon.com/images/G/01/ciu/31/89/d4ac024128a044c186a18010._AA207_.L.jpg" rel="nofollow noreferrer">How to Solve it by computer http://g-ecx.images-amazon.com/images/G/01/ciu/31/89/d4ac024128a044c186a18010._AA207_.L.jpg</a> - R.G.Dromey</p>\n'}, {'answer_id': 81618, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 2, 'selected': False, 'text': '<p>Craig Larman\'s <em>Applying UML and Patterns</em>.  While the Gang of Four book <em>Design Patterns</em> is very instructive, I found that I didn\'t "get" how to use design patterns until I ran across Larman\'s book in a programming class.</p>\n'}, {'answer_id': 82352, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 2, 'selected': False, 'text': '<p>Advanced MS-DOS by Ray Duncan.</p>\n'}, {'answer_id': 82446, 'author': 'Desty', 'author_id': 2161072, 'author_profile': 'https://Stackoverflow.com/users/2161072', 'pm_score': 0, 'selected': False, 'text': '<p>Probably "C for Dummies" vol 1, back in 1997 or so. Just an introduction really, but it was a good read after having picked up the taste for programming in GFA Basic on the Atari ST. The Coronado C tutorial around the same time helped too.</p>\n'}, {'answer_id': 82863, 'author': 'gio', 'author_id': 6619, 'author_profile': 'https://Stackoverflow.com/users/6619', 'pm_score': 2, 'selected': False, 'text': "<p>for low level entertainment i would suggest <strong>Michael Abrash's</strong><br>\ni) -Zen of Code Optimization- and<br>\nii) -Graphics Programming Black Book-<br>\neven if you dont do any graphics programming. </p>\n"}, {'answer_id': 83579, 'author': 'old_timer', 'author_id': 16007, 'author_profile': 'https://Stackoverflow.com/users/16007', 'pm_score': 0, 'selected': False, 'text': '<p>Michael Abrash  The Zen of Assembly Language</p>\n'}, {'answer_id': 83881, 'author': 'workmad3', 'author_id': 16035, 'author_profile': 'https://Stackoverflow.com/users/16035', 'pm_score': 0, 'selected': False, 'text': "<p>Applying UML and Design Patterns.</p>\n\n<p>It helped design patterns to click with me, and provided a justification for UML that made sense to me in the phrasing 'UML as Sketch'. Namely that UML should be used as a brief sketch of the system that has the additional benefit of you not having to explain the notation to others (they either already know UML or you give them a UML book to read)</p>\n"}, {'answer_id': 86239, 'author': 'Nils Pipenbrinck', 'author_id': 15955, 'author_profile': 'https://Stackoverflow.com/users/15955', 'pm_score': 0, 'selected': False, 'text': '<p>The Algorithms book from Robert Sedgewick. A must-read for application developers.</p>\n\n<p>Comes in many flavours (C, C++, Java)</p>\n\n<p><a href="http://www.cs.princeton.edu/~rs/" rel="nofollow noreferrer">http://www.cs.princeton.edu/~rs/</a></p>\n'}, {'answer_id': 86779, 'author': 'Lot105', 'author_id': 9801, 'author_profile': 'https://Stackoverflow.com/users/9801', 'pm_score': 1, 'selected': False, 'text': "<p>If you are doing anything in Unix/Linux/MacOS etc, you must read Advanced Programming in the Unix Environment (also known by the acronym APUE), by the late W Richard Stevens. If you don't know how file descriptors work or what sessions are, or all the things you should do when you daemonize yourself (admit it, you don't), then this book will tell you.</p>\n\n<p>You'll feel amatuerish for a bit afterwards, but if you want to consider yourself a professional programmer (in any language) in the Unix environment you need to read this.</p>\n"}, {'answer_id': 90266, 'author': 'Christophe Herreman', 'author_id': 17255, 'author_profile': 'https://Stackoverflow.com/users/17255', 'pm_score': 2, 'selected': False, 'text': '<p>I would say that "<a href="http://www.lifebeyondcode.com/" rel="nofollow noreferrer">Beyond Code - Learn to Distinguish Yourself in 9 Simple Steps</a>" is quite a good and motivational book. I doesn\'t cover technical issues, but it describes ways of working with people, being professional, ... For me, this is a book you can read again and again if you are in need of some pep talk. Besides that, it is cheap and very easy and enjoyable to read in 3 to 4 hours.</p>\n\n<p>There is a little review over at <a href="http://www.herrodius.com/blog/54" rel="nofollow noreferrer">my blog</a>.</p>\n'}, {'answer_id': 90853, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 2, 'selected': False, 'text': '<p>Whether you are coding in Smalltalk or not <a href="https://rads.stackoverflow.com/amzn/click/com/013476904X" rel="nofollow noreferrer" rel="nofollow noreferrer" title="Smalltalk Best Practice Patterns">Smalltalk Best Practice Patterns</a> is a great read.  Full of small observations that will change the way you code; for the better.</p>\n'}, {'answer_id': 109060, 'author': 'Doug L.', 'author_id': 19179, 'author_profile': 'https://Stackoverflow.com/users/19179', 'pm_score': 1, 'selected': False, 'text': '<p>Even though I had been programming rofessionally for years, Rocky Lhotka\'s "Business Objects" series about his CSLA framework was the book that opened my eyes.\n<br/><br/>\nHis ideas he got me excited about software development patterns and theory again.  It set me on the path of a new interest in learning how to be a better developer, and not just learning about the latest gee-whiz control or library.  (Don\'t get me wrong, I still love a good technical book too - you gotta keep up!)</p>\n'}, {'answer_id': 109090, 'author': 'daniel', 'author_id': 19741, 'author_profile': 'https://Stackoverflow.com/users/19741', 'pm_score': 1, 'selected': False, 'text': '<p>I found the <a href="https://rads.stackoverflow.com/amzn/click/com/1848000693" rel="nofollow noreferrer" rel="nofollow noreferrer">The Algorithm Design Manual</a> to be a very beneficial read. I also highly recommend <a href="https://rads.stackoverflow.com/amzn/click/com/0201657880" rel="nofollow noreferrer" rel="nofollow noreferrer">Programming Pearls</a>.</p>\n'}, {'answer_id': 110019, 'author': 'Doug L.', 'author_id': 19179, 'author_profile': 'https://Stackoverflow.com/users/19179', 'pm_score': 1, 'selected': False, 'text': '<p>"<a href="http://www.seas.gwu.edu/~kaufman1/FortranColoringBook/ColoringBkCover.html" rel="nofollow noreferrer">The Fortran Coloring Book</a>" by <a href="http://www.seas.gwu.edu/~kaufman1/" rel="nofollow noreferrer">Dr. Roger Kaufman</a> (1978, ISBN:0262610264)</p>\n\n<p>What a silly concept - more basic than even a "Dummies" book!  But it works for any language (with a few fortran specific examples of course), explaining the basic concepts of logic, variables, i/o, etc. in a very understandable and "Painfully Funny" way.</p>\n\n<p>It\'s enough to get a ten year old interested in programming...</p>\n\n<p><img src="https://farm1.static.flickr.com/155/390132231_6600db7b54_m.jpg" alt="alt text"></p>\n\n<p>(Found cover photo on a <a href="http://www.flickr.com/photos/believekevin/390132231/" rel="nofollow noreferrer">Flickr user account</a>)</p>\n'}, {'answer_id': 110859, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 1, 'selected': False, 'text': '<p>recommended for Windows Programmer, <a href="https://rads.stackoverflow.com/amzn/click/com/157231995X" rel="nofollow noreferrer" rel="nofollow noreferrer">Programming Windows</a></p>\n'}, {'answer_id': 111265, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 2, 'selected': False, 'text': '<p>I am surprised there is no mention yet of this book: <a href="http://home.iae.nl/users/mhx/sf.html" rel="nofollow noreferrer">Starting Forth</a>, by Leo Brodie. After all Forth, being a stack-based language, should fit the audience on this site...</p>\n\n<p>Admittedly, Forth is a weird language and not very popular these days. But this book is a joy to read. And it has cartoons! The book, as well as Brodie\'s other book, <a href="http://thinking-forth.sourceforge.net/" rel="nofollow noreferrer">Thinking Forth</a>, are both available free on the web.</p>\n'}, {'answer_id': 119305, 'author': 'Krirk', 'author_id': 17521, 'author_profile': 'https://Stackoverflow.com/users/17521', 'pm_score': 3, 'selected': False, 'text': '<p><a href="http://ecx.images-amazon.com/images/I/61dECNkdnTL._SL500_AA240_.jpg" rel="noreferrer">alt text http://ecx.images-amazon.com/images/I/61dECNkdnTL._SL500_AA240_.jpg</a></p>\n\n<p><a href="https://rads.stackoverflow.com/amzn/click/com/0136152503" rel="noreferrer" rel="nofollow noreferrer">C++ How to Program</a> It is good for beginner.This is excellent book that full complete with 1500 pages.</p>\n'}, {'answer_id': 130593, 'author': 'CR.', 'author_id': 20387, 'author_profile': 'https://Stackoverflow.com/users/20387', 'pm_score': 2, 'selected': False, 'text': '<p>A Whole New Mind, by Daniel Pink.  Interesting take on the future of our industry.</p>\n\n<p>I assume most of the folks reading this will have read the books at the top of the list already.  So, i\'ll offer a book that takes a different look at our industry.</p>\n\n<p><a href="http://www.danpink.com/images/wnm.jpg" rel="nofollow noreferrer">alt text http://www.danpink.com/images/wnm.jpg</a></p>\n'}, {'answer_id': 164941, 'author': 'Geoff Snowman', 'author_id': 2008505, 'author_profile': 'https://Stackoverflow.com/users/2008505', 'pm_score': 1, 'selected': False, 'text': '<p>Anything by Edward Tufte: The Visual Display of Quantitative Information; Envisioning Information; Visual Explanations</p>\n'}, {'answer_id': 183713, 'author': 'afternoon', 'author_id': 26201, 'author_profile': 'https://Stackoverflow.com/users/26201', 'pm_score': 3, 'selected': False, 'text': '<p><a href="http://www.codinghorror.com/blog/images/facts-and-fallacies-of-software-engineering.jpg">Facts and Fallacies of Software Engineering by Robert L. Glass http://www.codinghorror.com/blog/images/facts-and-fallacies-of-software-engineering.jpg</a></p>\n\n<p><a href="http://books.google.co.uk/books?hl=en&amp;id=3Ntz-UJzZN0C&amp;dq=facts+and+fallacies&amp;printsec=frontcover&amp;source=web&amp;ots=zeNETSf0qr&amp;sig=RoSzxFvdi7dohjf-qXGu3iDAmu8&amp;sa=X&amp;oi=book_result&amp;resnum=3&amp;ct=result">Facts and Fallacies of Software Engineering by Robert L. Glass</a> is a really excellent book. I had been a professional hacker for almost 10 years before I read it, and a I still learned a ton of stuff.</p>\n'}, {'answer_id': 200877, 'author': 'Tarski', 'author_id': 27653, 'author_profile': 'https://Stackoverflow.com/users/27653', 'pm_score': 3, 'selected': False, 'text': '<p><a href="http://ecx.images-amazon.com/images/I/51HCJ5R42KL._SL500_BO2,204,203,200_AA219_PIsitb-sticker-dp-arrow,TopRight,-24,-23_SH20_OU02_.jpg" rel="noreferrer">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</a></p>\n\n<p><a href="https://rads.stackoverflow.com/amzn/click/com/0201360616" rel="noreferrer" rel="nofollow noreferrer">Discrete Mathematics For Computer Scientists</a> by J.K. Truss.</p>\n\n<p>While this doesn\'t teach you programming, it teaches you fundamental mathematics that every programmer should know. You may remember this stuff from university, but really, doing predicate logic will improve you programming skills, you need to learn Set Theory if you want to program using collections.</p>\n\n<p>There really is a lot of interesting information in here that can get you thinking about problems in different ways. It\'s handy to have, just to pick up once in a while to learn something new.</p>\n'}, {'answer_id': 215173, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 1, 'selected': False, 'text': '<p>OK, so the question is not "what\'s the best programming book", but "if you could tell yourself what to read in the beginning of your career"...</p>\n\n<p>Probably one of "On Lisp" and SICP, plus one of CLRS or "Algorithms: a creative approach" by Udi Manber.</p>\n\n<p><a href="http://vig-fp.prenhall.com/bigcovers/0201120372.jpg" rel="nofollow noreferrer">Introduction to Algorithms by Udi Manber http://vig-fp.prenhall.com/bigcovers/0201120372.jpg</a></p>\n\n<p>The first two will teach lots of programming techniques, patterns, and really open up one\'s mind to his/her own creativity; the other two are different. They\'re more theoretical, but also very important, focusing on design of correct and efficient algorithms (and requiring substantially more math).</p>\n\n<p>I see lots of people recommending the three first books when the subject of "good programming books" pops up, but the last one (by Manber) is a great book, and few people know it. It\'s a shame! Manber focuses on the incremental development of algorithms through theorem proving using induction.</p>\n'}, {'answer_id': 215195, 'author': 'HeretoLearn', 'author_id': 1984928, 'author_profile': 'https://Stackoverflow.com/users/1984928', 'pm_score': 1, 'selected': False, 'text': '<p>If you write code in C then Expert C Programming is an eye opener. It has answers to all the things you wondered why it works this way. Peter Van Der Linden has a great writing style and makes arcane concepts very readable. A must read for all C developers</p>\n'}, {'answer_id': 238388, 'author': 'Jasper Bekkers', 'author_id': 31486, 'author_profile': 'https://Stackoverflow.com/users/31486', 'pm_score': 3, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/0812972155" rel="noreferrer" rel="nofollow noreferrer">Masters of doom.</a> As far as motivation and love for your profession go: it won\'t get any better than what\'s been described in this book, truthfully inspiring story!</p>\n'}, {'answer_id': 249265, 'author': 'lkessler', 'author_id': 30176, 'author_profile': 'https://Stackoverflow.com/users/30176', 'pm_score': 1, 'selected': False, 'text': '<p>Fortran IV with Watfor and Watfiv by Cress, Dirkson and Graham.</p>\n\n<p>This book taught me my first programming language that I programmed onto punch cards at the time. After 3 years, the book was all tatters because I had used it so much. </p>\n\n<p><a href="http://g-ecx.images-amazon.com/images/G/01/ciu/4b/83/245d9833e7a03768eaf63110._AA240_.L.jpg" rel="nofollow noreferrer">alt text http://g-ecx.images-amazon.com/images/G/01/ciu/4b/83/245d9833e7a03768eaf63110._AA240_.L.jpg</a></p>\n\n<p>Fortran was a great language! It had a super optimizer and produced very fast code. It is still very popular in Great Britain and FTN95 is now a very full-featured and capable compiler. I sometimes wish I could have continued to use it, but Delphi is a more than adequate replacement.</p>\n'}, {'answer_id': 263750, 'author': 'nlativy', 'author_id': 33635, 'author_profile': 'https://Stackoverflow.com/users/33635', 'pm_score': 2, 'selected': False, 'text': '<p>Nobody seems to have mentioned Stroustup\'s <a href="http://www.research.att.com/~bs/3rd.html" rel="nofollow noreferrer">The C++ Programming Language</a> which is a great book that every C++ programmer should read.</p>\n\n<p>I also think that <a href="http://www.amazon.co.uk/Extreme-Programming-Explained-Embrace-Change/dp/0321278658" rel="nofollow noreferrer">Extreme Programming Explained: Embrace Change</a> should be read by every programmer and manager. Many of the ideas in the book are common knowledge now but the book gives an intelligent and inspiring account of the pursuit of quality in software engineering.</p>\n\n<p>I would second the recommendations for Knuth and Gang of Four which are classics.</p>\n'}, {'answer_id': 283721, 'author': 'serfmum', 'author_id': 27824, 'author_profile': 'https://Stackoverflow.com/users/27824', 'pm_score': 2, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/0131489062" rel="nofollow noreferrer" rel="nofollow noreferrer">Applying UML and Patterns</a> by Craig Larman.</p>\n\n<p>The title of the book is slightly misleading; it does deal with UML and patterns, but it covers so much more. The subtitle of the book tells you a bit more: An Introduction to Object-Oriented Analysis and Design and Iterative Development.</p>\n'}, {'answer_id': 290363, 'author': 'Kramii', 'author_id': 11514, 'author_profile': 'https://Stackoverflow.com/users/11514', 'pm_score': 1, 'selected': False, 'text': '<p><a href="http://allwrong.wordpress.com/2008/11/14/mini-book-review-graphics-programming-in-windows-charles-petzold/" rel="nofollow noreferrer">Graphics Programming in Windows</a> is difficult to fault.</p>\n'}, {'answer_id': 301122, 'author': 'Nicholas Piasecki', 'author_id': 32187, 'author_profile': 'https://Stackoverflow.com/users/32187', 'pm_score': 3, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/0812906748" rel="noreferrer" rel="nofollow noreferrer">Systemantics: How Systems Work and Especially How They Fail</a>. Get it used cheap. But you might not get the humor until you\'ve worked on a few failed projects.</p>\n\n<p>The beauty of the book is the copyright year.</p>\n\n<p>Probably the most profound takeaway "law" presented in the book:</p>\n\n<p><em>The Fundamental Failure-Mode Theorem (F.F.T.): Complex systems usually operate in failure mode.</em></p>\n\n<p>The idea being that there are failing parts in any given piece of software that are masked by failures in other parts or by validations in other parts. See a real-world example at the <a href="http://en.wikipedia.org/wiki/Therac-25" rel="noreferrer">Therac-25 radiation machine</a>, whose software flaws were masked by hardware failsafes. When the hardware failsafes were removed, the software race condition that had gone undetected all those years resulted in the machine killing 3 people.</p>\n'}, {'answer_id': 304171, 'author': 'stu', 'author_id': 12386, 'author_profile': 'https://Stackoverflow.com/users/12386', 'pm_score': 2, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/0201433079" rel="nofollow noreferrer" rel="nofollow noreferrer">Advanced Programming in the UNIX Environment</a> by W. Richard Stevens.</p>\n'}, {'answer_id': 334872, 'author': 'Adrian', 'author_id': 39368, 'author_profile': 'https://Stackoverflow.com/users/39368', 'pm_score': 3, 'selected': False, 'text': '<p>As I started out developing in Java (and am still doing so to this very day) I\'d have to recommend the outstanding work in the field: <a href="http://www.mrbunny.com/" rel="nofollow noreferrer">Mr Bunny\'s Big Cup o\' Java</a>.</p>\n<p>From the author\'s blurb:</p>\n<blockquote>\n<p>There is simply no better way to learn Java than to have the pineal gland of an expert Java programmer surgically implanted in your brain. Sadly, most HMOs refuse to pay for this career saving procedure, deeming Java to be too experimental. At last there is an alternative treatment for those of us who cannot wait for sweeping health care reforms.</p>\n<p>Mr. Bunny’s Big Cup O’ Java is recommended by n out of ten doctors, where n is any integer you wish to make up to impress an astoundingly gullible public. The book begins with an overview of the book, and quickly expands into the book itself. Just look at the topics covered:</p>\n<ul>\n<li>Java</li>\n</ul>\n<p>In short, MBBCOJ will teach you all you need to know for a successful career in today’s rabbit development environments.</p>\n</blockquote>\n<p>The insight into pixels alone would have cut years off my software developing life.</p>\n'}, {'answer_id': 345603, 'author': 'Stephen', 'author_id': 17398, 'author_profile': 'https://Stackoverflow.com/users/17398', 'pm_score': 1, 'selected': False, 'text': '<p>Etudes for Programmers by Charles Wetherell, More Programming Pearls (Jon Bently), </p>\n'}, {'answer_id': 371191, 'author': 'Salvatore Dario Minonne', 'author_id': 10170, 'author_profile': 'https://Stackoverflow.com/users/10170', 'pm_score': 3, 'selected': False, 'text': '<p>Definitively Software Craftsmanship                                                                                </p>\n\n<p><a href="http://ecx.images-amazon.com/images/I/5186JKTDVWL._SL500_AA240_.jpg" rel="nofollow noreferrer">alt text http://ecx.images-amazon.com/images/I/5186JKTDVWL._SL500_AA240_.jpg</a></p>\n\n<p>This book explains a lot of things about software engineering, system development. It\'s also extremly useful to understand the difference between different kind of product developement: web VS shrinkwrap VS IBM framework. What people had in mind when they conceived waterfall model? Read this and all we\'ll become clear (hopefully)</p>\n'}, {'answer_id': 378301, 'author': 'Andrew Hanson', 'author_id': 15937, 'author_profile': 'https://Stackoverflow.com/users/15937', 'pm_score': 2, 'selected': False, 'text': '<p>For me it was <a href="https://rads.stackoverflow.com/amzn/click/com/0201715945" rel="nofollow noreferrer" rel="nofollow noreferrer">Design Patterns Explained</a> it provided an \'Oh that\'s how it works\' moment for me in regards to design patterns and has been very useful when teaching design patterns to others.</p>\n'}, {'answer_id': 378761, 'author': 'Ferruccio', 'author_id': 4086, 'author_profile': 'https://Stackoverflow.com/users/4086', 'pm_score': 1, 'selected': False, 'text': '<p><strong>The Scelbi-Byte Primer</strong></p>\n\n<p>I pored over the source code listings in this book many times until, one day, I suddenly grokked 8080 assembly language programming.</p>\n'}, {'answer_id': 386338, 'author': 'Dave Markle', 'author_id': 24995, 'author_profile': 'https://Stackoverflow.com/users/24995', 'pm_score': 0, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/1878739069" rel="nofollow noreferrer" rel="nofollow noreferrer">Object-Oriented Programming in Turbo C++</a>.  Not super popular, but it was the one that got me started, and was the first book that really helped me grok what an object was.  Read this one waaaay back in high school.  It sort of brings a tear to my eye...</p>\n'}, {'answer_id': 413817, 'author': 'Slayer SA', 'author_id': 1253451, 'author_profile': 'https://Stackoverflow.com/users/1253451', 'pm_score': 1, 'selected': False, 'text': '<ul>\n<li><a href="https://rads.stackoverflow.com/amzn/click/com/1576104257" rel="nofollow noreferrer" rel="nofollow noreferrer">Game Architecture and Design: Learn the Best Practices for Game Design and Programming</a> </li>\n</ul>\n\n<p>Even though i\'ve never programmed a game this book helped me understand a lot of things in a fun way.</p>\n'}, {'answer_id': 413824, 'author': 'Slayer SA', 'author_id': 1253451, 'author_profile': 'https://Stackoverflow.com/users/1253451', 'pm_score': 1, 'selected': False, 'text': '<ul>\n<li><a href="https://rads.stackoverflow.com/amzn/click/com/1861004958" rel="nofollow noreferrer" rel="nofollow noreferrer">Professional JSP 2nd Edition</a></li>\n</ul>\n\n<p>I bough this when I was a complete newbie and took me from only knowing that Java existed to a reliable team member in a short time</p>\n'}, {'answer_id': 440028, 'author': 'Chris Gallucci', 'author_id': 8245, 'author_profile': 'https://Stackoverflow.com/users/8245', 'pm_score': 1, 'selected': False, 'text': '<p>Still a worthwhile classic is the <a href="http://homepage.mac.com/bradster/iarchitect/shame.htm" rel="nofollow noreferrer">Interface Hall of Shame</a>. This website detailed a huge assortment of interface design faux pas that is quite entertaining. The original iarchitect.com no longer exists, but others have re-established the HOS on their own websites.</p>\n'}, {'answer_id': 444785, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 1, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/020163385X" rel="nofollow noreferrer" rel="nofollow noreferrer">Object Oriented Design Heuristics</a> is a great read.  I couldn\'t put it down.</p>\n'}, {'answer_id': 444828, 'author': 'Kent Beck', 'author_id': 13842, 'author_profile': 'https://Stackoverflow.com/users/13842', 'pm_score': 1, 'selected': False, 'text': '<p>I\'ll add a couple that I haven\'t seen here that are influential for me:</p>\n\n<ul>\n<li>Yourdon and Constantine, "Structured Design". Everything you need to know about software design is in here, if you\'re willing to dig for it a little.</li>\n<li>Leonard Koren, "Wabi-Sabi: for Artists, Designers, Poets &amp; Philosophers". A pragmatic philosophy balancing beauty and pragmatism. </li>\n</ul>\n'}, {'answer_id': 471147, 'author': 'Pete Kirkham', 'author_id': 1527, 'author_profile': 'https://Stackoverflow.com/users/1527', 'pm_score': 3, 'selected': False, 'text': '<p>Not the most influential, but worth a look is <a href="http://www.amazon.co.uk/Youth-J-M-Coetzee/dp/0436205823">Youth</a> by J.M.Coetzee.</p>\n\n<p>The narrator of Youth, a student in the South Africa of the 1950s, has long been plotting an escape from his native country: from the stifling love of his mother, from a father whose failures haunt him, and from what he is sure is impending revolution. Studying mathematics, reading poetry, saving money, he tries to ensure that when he arrives in the real world, wherever that may be, he will be prepared to experience life to its full intensity, and transform it into art. Arriving at last in London, however, he finds neither poetry nor romance. Instead he succumbs to the monotony of life as a computer programmer, from which random, loveless affairs offer no relief. Devoid of inspiration, he stops writing. An awkward colonial, a constitutional outsider, he begins a dark pilgrimage in which he is continually tested and continually found wanting.</p>\n\n<p><a href="http://img440.imageshack.us/img440/5140/youthgd4.jpg">youth cover http://img440.imageshack.us/img440/5140/youthgd4.jpg</a></p>\n'}, {'answer_id': 562308, 'author': 'Sameer', 'author_id': 67710, 'author_profile': 'https://Stackoverflow.com/users/67710', 'pm_score': 1, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/069111966X" rel="nofollow noreferrer" rel="nofollow noreferrer">How to Solve It: A new aspect of mathematical method</a>\nAlthough not directly related to computer programming but it does teach you the art of problem solving and that\'s what computer programming is all about.</p>\n'}, {'answer_id': 604291, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 2, 'selected': False, 'text': '<p>I saw a review of <a href="https://rads.stackoverflow.com/amzn/click/com/0471202843" rel="nofollow noreferrer" rel="nofollow noreferrer" title="Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools">Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools</a> on a blog talking also about <a href="http://www.xifactory.com" rel="nofollow noreferrer">XI-Factory</a>, I read it and I must say this book is a must read. Altough not specifically targetted to programmers, it explains very clearly what is happening in the programming world right now with Model-Driven Architecture and so on.. </p>\n'}, {'answer_id': 633289, 'author': 'egyamado', 'author_id': 66493, 'author_profile': 'https://Stackoverflow.com/users/66493', 'pm_score': 0, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/0470261293" rel="nofollow noreferrer" rel="nofollow noreferrer">Beginning C# 3.0: An Introduction to Object Oriented Programming</a> </p>\n\n<p>This is the book for those who want to understand the whys and hows of OOP using C# 3.0. You don\'t want to miss it. </p>\n'}, {'answer_id': 639909, 'author': 'nandokakimoto', 'author_id': 76446, 'author_profile': 'https://Stackoverflow.com/users/76446', 'pm_score': 2, 'selected': False, 'text': '<p>I\'m reading now <a href="https://rads.stackoverflow.com/amzn/click/com/0135974445" rel="nofollow noreferrer" rel="nofollow noreferrer">Agile Software Development, Principles, Patterns and Practices</a>. For those interested in XP and Object-Oriented Design, this is a classic reading.</p>\n\n<p><a href="http://ecx.images-amazon.com/images/I/519J3P8ANML._SL500_AA240_.jpg" rel="nofollow noreferrer">alt text http://ecx.images-amazon.com/images/I/519J3P8ANML._SL500_AA240_.jpg</a></p>\n'}, {'answer_id': 664822, 'author': 'Charlie Flowers', 'author_id': 80112, 'author_profile': 'https://Stackoverflow.com/users/80112', 'pm_score': 3, 'selected': False, 'text': '<p>Here\'s an excellent book that is not as widely applauded, but is full of deep insight: <a href="https://rads.stackoverflow.com/amzn/click/com/0321482751" rel="noreferrer" rel="nofollow noreferrer">Agile Software Development: The Cooperative Game</a>, by Alistair Cockburn. </p>\n\n<p>What\'s so special about it? Well, clearly everyone has heard the term "Agile", and it seems most are believers these days. Whether you believe or not, though, there are some deep principles behind why the Agile movement exists. This book uncovers and articulates these principles in a precise, scientific way. Some of the principles are (btw, these are my words, not Alistair\'s):</p>\n\n<ol>\n<li>The hardest thing about team software development is getting everyone\'s brains to have the same understanding. We are building huge, elaborate, complex systems which are invisible in the tangible world. The better you are at getting more peoples\' brains to share deeper understanding, the more effective your team will be at software development. <strong>This is the underlying reason that pair programming makes sense. Most people dismiss it (and I did too initially), but with this principle in mind I highly recommend that you give it another shot. You wind up with TWO people who deeply understand the subsystem you just built ... there aren\'t many other ways to get such a deep information transfer so quickly. It is like a Vulcan mind meld.</strong></li>\n<li>You don\'t always need words to communicate deep understanding quickly. And a corollary: too many words, and you exceed the listener/reader\'s capacity, meaning the understanding transfer you\'re attempting does not happen. Consider that children learn how to speak language by being "immersed" and "absorbing". Not just language either ... he gives the example of some kids playing with trains on the floor. Along comes another kid who has never even <strong>SEEN</strong> a train before ... but by watching the other kids, he picks up the gist of the game and plays right along. This happens all the time between humans. This along with the corollary about too many words helps you see how misguided it was in the old "waterfall" days to try to write 700 page detailed requirements specifications.</li>\n</ol>\n\n<p>There is so much more in there too. I\'ll shut up now, but I HIGHLY recommend this book!</p>\n'}, {'answer_id': 793395, 'author': 'Levi Campbell', 'author_id': 80535, 'author_profile': 'https://Stackoverflow.com/users/80535', 'pm_score': 2, 'selected': False, 'text': '<p>Three books come to mind for me.</p>\n\n<ul>\n<li>The Art of Unix Programming by Eric S. Raymond.</li>\n<li>The Wizardry Compiled by Rick Cook.</li>\n<li>The Art of Computer Programming by Donald Knuth.</li>\n</ul>\n\n<p>I also love the writing of <a href="http://www.paulgraham.com" rel="nofollow noreferrer">Paul Graham.</a></p>\n'}, {'answer_id': 793399, 'author': 'Jared', 'author_id': 14744, 'author_profile': 'https://Stackoverflow.com/users/14744', 'pm_score': 1, 'selected': False, 'text': "<p>An introduction to GW Basic. With out it I never would have learned how to program and any other books wouldn't have done me any good.</p>\n"}, {'answer_id': 793437, 'author': 'Scott Lance', 'author_id': 95104, 'author_profile': 'https://Stackoverflow.com/users/95104', 'pm_score': 0, 'selected': False, 'text': '<p><a href="http://search.barnesandnoble.com/Ivor-Hortons-Beginning-Visual-C-2008/Ivor-Horton/e/9780470225905/?itm=2" rel="nofollow noreferrer">Beginning Visual C++</a></p>\n\n<p>When I first started programming in a OOP languages, I found this book not only to be a comprehensive book about C++ and MFC, it was also has one of the best explanations of Object Oriented concepts I\'ve seen.  </p>\n\n<p>When I talk to developers who are just starting out programming in an object oriented language, I tell them to read this book.</p>\n'}, {'answer_id': 913295, 'author': 'Jherico', 'author_id': 85306, 'author_profile': 'https://Stackoverflow.com/users/85306', 'pm_score': 1, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/0201510596" rel="nofollow noreferrer" rel="nofollow noreferrer">Algorithms in C++</a> was invaluable to me in learning Big O notation and the ins and outs of the various sort algorithms.  This was published before Sedgewick decided he could make more money by dividing it into 5 different books. </p>\n\n<p><a href="https://rads.stackoverflow.com/amzn/click/com/0201309831" rel="nofollow noreferrer" rel="nofollow noreferrer">C++ FAQs</a> is an amazing book that really shows you what you should and shouldn\'t be doing in C++.  The backward compatibility of C++ leaves a lot of landmines about and this book helps one carefully avoid them while at the same time being a good introduction into OO design and intent.</p>\n'}, {'answer_id': 946857, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 3, 'selected': False, 'text': '<p>Kernighan &amp; Plauger\'s <a href="https://rads.stackoverflow.com/amzn/click/com/0070342075" rel="noreferrer" rel="nofollow noreferrer">Elements of Programming Style</a>.\nIt illustrates the difference between gimmicky-clever and elegant-clever. </p>\n'}, {'answer_id': 960996, 'author': 'Phaedrus', 'author_id': 46072, 'author_profile': 'https://Stackoverflow.com/users/46072', 'pm_score': 2, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/0735625921" rel="nofollow noreferrer" rel="nofollow noreferrer">Solid Code Optimizing the Software Development Life Cycle</a> </p>\n\n<p>Although the book is only 300 pages and favors Microsoft technologies it still offers some good language agnostic tidbits.</p>\n'}, {'answer_id': 962377, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 3, 'selected': False, 'text': '<p>One of my personal favorites is <a href="https://rads.stackoverflow.com/amzn/click/com/0201914654" rel="noreferrer" rel="nofollow noreferrer">Hacker\'s Delight</a>, because it was as much fun to read as it was educational.</p>\n\n<p>I hope the second edition will be released soon!</p>\n'}, {'answer_id': 972198, 'author': 'Sylvain Rodrigue', 'author_id': 54783, 'author_profile': 'https://Stackoverflow.com/users/54783', 'pm_score': 2, 'selected': False, 'text': '<p>I read most of the books having an high score on this question - but not all of them (thanks God !) and I added the others one to my <strong>Amazon Wish List</strong> right away !</p>\n\n<p>(Someone should create a list on Amazon for these books... Maybe a list named : "Stackoverflow best books ever" ? <strong>Anyone know how to do that ?</strong>)</p>\n\n<p>To me, the best book ever has been <strong>Code Complete</strong>. It was a revelation. I bought the 2nd edition in english and then in French and I still think it should be a mandatory reading in any computer science school. Data structure is cool but Code complete, no joke, is much more  important...</p>\n\n<p>Then, my second best book was <strong>Writing Solid Code</strong> - having learn how to be understood, it was great to know how to write solid code.</p>\n\n<p>Then a lot of very nice books but no one to mention here. Until 2001, I think : <strong>Framework Design Guidelines</strong>: Conventions, Idioms, and Patterns for Reusable .NET Libraries. A jewel ! I read this book many times and it\'s still on my desk, just beside my LCD, along with Code Complete (really !). I Love the way it has been written (love the comment that has been added here and there - books should all be written like that !)</p>\n\n<p>But well, I forget the very first great books I\'ve read ! The ones who make me <em>love</em> computer science, with passion :</p>\n\n<ul>\n<li><strong>Compute!</strong> (C64 magazine - Will never forget <strong>Jim Butterfly</strong> :o)</li>\n<li><strong>Borland C++ User Guides</strong> (the old ones, circa 1991, those who tried to introduce object oriented programming, very nicely written).</li>\n<li>Most <strong>Microsoft Developpement Tools User Guides</strong>, circa 1990-1995. Don\'t know who were writing them, but they was pretty cool ! I remember reading them late in the night, on saturdays...</li>\n</ul>\n\n<p>Well, excellent question :o)</p>\n'}, {'answer_id': 1055376, 'author': 'amit', 'author_id': 62237, 'author_profile': 'https://Stackoverflow.com/users/62237', 'pm_score': 3, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/0262220695" rel="noreferrer" rel="nofollow noreferrer">Concepts, Techniques, and Models of Computer Programming.</a></p>\n\n<p><a href="http://ecx.images-amazon.com/images/I/51YZ50ZR13L._SL500_AA240_.jpg" rel="noreferrer">alt text http://ecx.images-amazon.com/images/I/51YZ50ZR13L._SL500_AA240_.jpg</a></p>\n'}, {'answer_id': 1130558, 'author': 'Roubachof', 'author_id': 46307, 'author_profile': 'https://Stackoverflow.com/users/46307', 'pm_score': 2, 'selected': False, 'text': '<p>All the <strong>Thinking in...</strong> books.</p>\n\n<p><strong>Bruce Eckel</strong> is THE genious of pedagogy!\nIt\'s so easy to understand the implementation of polymorphism in C++. It contains all that you should known about C++, basic and advanced concepts. Way better than the Stroustrup\'s. \nI learnt Java with him too.</p>\n\n<p>And last but not the least:</p>\n\n<p>The C++ one is free !</p>\n\n<p><a href="http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html" rel="nofollow noreferrer">http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html</a></p>\n'}, {'answer_id': 1169110, 'author': 'TahoeWolverine', 'author_id': 141652, 'author_profile': 'https://Stackoverflow.com/users/141652', 'pm_score': 3, 'selected': False, 'text': '<p><img src="https://mpbeno.files.wordpress.com/2009/02/innovatorsdilemma1.jpg" alt="alt text"></p>\n\n<p>This last year I took a number of classes. I read<br/></p>\n\n<p><a href="http://books.google.com/books?id=lqKho8KWXmAC&amp;dq=the+innovator%27s+dilemma&amp;printsec=frontcover&amp;source=bn&amp;hl=en&amp;ei=MLhnSu_-DJWHlAev4LjgCQ&amp;sa=X&amp;oi=book_result&amp;ct=result&amp;resnum=4" rel="nofollow noreferrer">The Innovator\'s Dilemma (disruptive tech)</a><br/>\n<a href="http://en.wikipedia.org/wiki/The_Mythical_Man-Month" rel="nofollow noreferrer">The Mythical Man Month (managing software)</a><br/>\n<a href="http://en.wikipedia.org/wiki/Crossing_the_Chasm" rel="nofollow noreferrer">Crossing the Chasm (startup)</a><br/>\n<a href="http://pages.cs.wisc.edu/~dbbook/" rel="nofollow noreferrer">Database Management Systems, The COW Book</a><br/>\n<a href="http://oreilly.com/catalog/9780596003098/" rel="nofollow noreferrer">Programming C#, The OSTRICH Book</a><br/>\n<a href="http://www.apress.com/book/view/1430216263" rel="nofollow noreferrer">Beginning iPhone Developmen, The GRAPEFRUIT Book</a><br/></p>\n\n<p>Each book was amazing but the Innovator\'s Dilemma by Clayton Christensen (1997!!!) is really a fantastic book, and it got me really thinking about the modern software world. The challenge addressed is disruptive technology, and how disk drive companies and non-technical companies are always disrupted by new, game changing technology. It gives one a new perspective when thinking about Google, probably the biggest \'web\' company. Why do they have their hands in EVERYTHING? It\'s because they don\'t want to have their position <i>disrupted</i> by something new. The preview on google is plenty to get the idea. Read it!</p>\n'}, {'answer_id': 1169124, 'author': 'Ariel', 'author_id': 118464, 'author_profile': 'https://Stackoverflow.com/users/118464', 'pm_score': 2, 'selected': False, 'text': '<p>Adding to the great ones mentioned above:</p>\n\n<p><a href="https://rads.stackoverflow.com/amzn/click/com/0321127420" rel="nofollow noreferrer" rel="nofollow noreferrer">Patterns of Enterprise Application Architecture</a></p>\n\n<p><a href="https://rads.stackoverflow.com/amzn/click/com/0321200683" rel="nofollow noreferrer" rel="nofollow noreferrer">Enterprise Integration Patterns</a></p>\n'}, {'answer_id': 1232808, 'author': 'scim', 'author_id': 102153, 'author_profile': 'https://Stackoverflow.com/users/102153', 'pm_score': 2, 'selected': False, 'text': '<p>Since I\'m a C# programmer and most generic books already has been mentioned I\'d like to recommend Bill Wagner\'s book <a href="http://srtsolutions.com/blogs/billwagner/archive/2008/10/17/more-effective-c-available-now.aspx" rel="nofollow noreferrer">"More Effective C#</a>.</p>\n\n<p>I think most people that develop composite WPF-applications also should have a look at Microsoft\'s Composite Application Guidance (also known as Prism):</p>\n\n<p><a href="http://www.codeplex.com/CompositeWPF" rel="nofollow noreferrer">Composite Application Guidance</a></p>\n'}, {'answer_id': 1235820, 'author': 'Nick Dandoulakis', 'author_id': 108130, 'author_profile': 'https://Stackoverflow.com/users/108130', 'pm_score': 2, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/013662149X" rel="nofollow noreferrer" rel="nofollow noreferrer">Peter Norton\'s Assembly Language Book for the IBM PC</a></p>\n<p><img src="https://pics.librarything.com/picsizes/7a/30/7a30b6e3c62ba88597a66615167434d414f4541.jpg" alt="alt text" /></p>\n<p>I had spent countless nights in front of the pc (DOS), exploring unknown worlds :-D</p>\n'}, {'answer_id': 1293032, 'author': 'Ryan Fernandes', 'author_id': 111991, 'author_profile': 'https://Stackoverflow.com/users/111991', 'pm_score': 3, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/0932633692" rel="noreferrer" rel="nofollow noreferrer">Perfect Software: And Other Illusions about Testing</a></p>\n\n<p><a href="http://ecx.images-amazon.com/images/I/51j3BSRspAL._SL500_AA240_.jpg" rel="noreferrer">TITLE Cover http://ecx.images-amazon.com/images/I/51j3BSRspAL._SL500_AA240_.jpg</a></p>\n\n<p><strong>Perfect Software: And Other Illusions about Testing</strong> <em>by Gerald M. Weinberg</em></p>\n\n<p>ISBN-10: 0932633692</p>\n\n<p>ISBN-13: 978-0932633699</p>\n'}, {'answer_id': 1308751, 'author': 'Dave Nichol', 'author_id': 43271, 'author_profile': 'https://Stackoverflow.com/users/43271', 'pm_score': 2, 'selected': False, 'text': '<p>How influential a book is often depends on the reader and where they were in their career when they read the book.  I have to give a shout-out to <a href="https://rads.stackoverflow.com/amzn/click/com/0596007124" rel="nofollow noreferrer" rel="nofollow noreferrer">Head First Design Patterns</a>.  Great book and the very creative way it\'s written should be used as an example for other tech book writers.  I.e. it\'s written in order to facilitate learning and internalizing the concepts. </p>\n\n<p><a href="http://ecx.images-amazon.com/images/I/51LSqrgoT1L._SS500_.jpg" rel="nofollow noreferrer">Head First Design Patterns http://ecx.images-amazon.com/images/I/51LSqrgoT1L._SS500_.jpg</a></p>\n'}, {'answer_id': 1317832, 'author': 'Rejeev Divakaran', 'author_id': 10980, 'author_profile': 'https://Stackoverflow.com/users/10980', 'pm_score': 2, 'selected': False, 'text': '<p>Domain Driven Design By Eric Evans is a wonderful book!</p>\n'}, {'answer_id': 1442468, 'author': 'TrueWill', 'author_id': 161457, 'author_profile': 'https://Stackoverflow.com/users/161457', 'pm_score': 3, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/0201616416" rel="noreferrer" rel="nofollow noreferrer">Extreme Programming Explained: Embrace Change</a> by Kent Beck. While I don\'t advocate a hardcore XP-or-the-highway take on software development, I wish I had been introduced to the principles in this book much earlier in my career. Unit testing, refactoring, simplicity, continuous integration, cost/time/quality/scope - these changed the way I looked at development. Before Agile, it was all about the debugger and fear of change requests. After Agile, those demons did not loom as large.</p>\n'}, {'answer_id': 1444527, 'author': 'RD1', 'author_id': 175097, 'author_profile': 'https://Stackoverflow.com/users/175097', 'pm_score': 3, 'selected': False, 'text': '<p>The practice of programming.  By Brian W. Kernighan, Rob Pike.</p>\n\n<p>The style shown here is excellent - the code just speaks for itself, and the whole book follows the KISS principle.  Personally not my languages of choice, but still influential to me.</p>\n'}, {'answer_id': 1606458, 'author': 'cloggins', 'author_id': 179026, 'author_profile': 'https://Stackoverflow.com/users/179026', 'pm_score': 1, 'selected': False, 'text': '<p>It seems most people have already touched on the some very good books. One which really helped me out was <a href="https://rads.stackoverflow.com/amzn/click/com/0321245660" rel="nofollow noreferrer" rel="nofollow noreferrer">Effective C#: 50 Ways to Improve your C#</a>. I\'d be remiss if I didn\'t mention <a href="https://rads.stackoverflow.com/amzn/click/com/014095144X" rel="nofollow noreferrer" rel="nofollow noreferrer">The Tao of Pooh</a>. Philosophy books can be good for the soul, and the code.</p>\n'}, {'answer_id': 1690667, 'author': 'Stacy Vicknair', 'author_id': 83117, 'author_profile': 'https://Stackoverflow.com/users/83117', 'pm_score': 1, 'selected': False, 'text': '<p>One I didn\'t already see on here was <strong><a href="http://www.assoc-amazon.com/e/ir?t=wtfnext-20&amp;l=as2&amp;o=1&amp;a=0131495054" rel="nofollow noreferrer">xUnit Test Patterns: Refactoring Test Code</a></strong> by Gerard Meszaros. This book really helped me see unit testing from a fresh perspective.</p>\n'}, {'answer_id': 1695762, 'author': 'Steven Bose', 'author_id': 205944, 'author_profile': 'https://Stackoverflow.com/users/205944', 'pm_score': 3, 'selected': False, 'text': '<p>"The Practice of programming" by Brian W.Kerninghan &amp; Rob Pike.</p>\n\n<p>The language is easy and also the subject matter is interesting.</p>\n'}, {'answer_id': 1695803, 'author': 'pajato0', 'author_id': 91443, 'author_profile': 'https://Stackoverflow.com/users/91443', 'pm_score': 1, 'selected': False, 'text': '<p>I\'m late to this question but apparently still have something unique to offer... <em>Software Engineering Economics</em> by <a href="http://en.wikipedia.org/wiki/Barry_Boehm" rel="nofollow noreferrer">Barry Boehm</a> which, to summarize, says that if you want to really improve software productivity get better people since better tools, hardware, languages, methods, etc. will all have a marginal impact.  Only better people drive up productivity by significant amounts.  I emphasize, this is <strong>better</strong> engineers, not more engineers!</p>\n\n<p>Not the kind of book you\'d take to bed with you, like you might do with <em>Coders At Work</em> but the kind of book that drives home a lesson that our industry has struggled mightily to take to heart.  Witness off-shoring, a false economy that Boehm\'s model predicts will have only a marginal positive effect, if any at all.  Check it out.</p>\n'}, {'answer_id': 1784931, 'author': 'Upperstage', 'author_id': 213113, 'author_profile': 'https://Stackoverflow.com/users/213113', 'pm_score': 1, 'selected': False, 'text': '<p>Essential reading for any mentor/team leader/manager or anyone who reports to the aforementioned.</p>\n\n<p><a href="http://ecx.images-amazon.com/images/I/316N6QYW32L._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg" rel="nofollow noreferrer">alt text http://ecx.images-amazon.com/images/I/316N6QYW32L._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg</a> </p>\n'}, {'answer_id': 1805444, 'author': 'tsilb', 'author_id': 11112, 'author_profile': 'https://Stackoverflow.com/users/11112', 'pm_score': 3, 'selected': False, 'text': '<p>hackers, by Steven Levy.</p>\n\n<p>The personality and way of life must come first. Everything else can be learned.</p>\n'}, {'answer_id': 1805501, 'author': 'EricSchaefer', 'author_id': 8976, 'author_profile': 'https://Stackoverflow.com/users/8976', 'pm_score': 2, 'selected': False, 'text': '<p>Advanced Programming in the UNIX environment - W. Richard Stevens</p>\n'}, {'answer_id': 1841670, 'author': 't0mm13b', 'author_id': 206367, 'author_profile': 'https://Stackoverflow.com/users/206367', 'pm_score': 2, 'selected': False, 'text': "<p>What happened to 'Expert C Programming - Deep C Secrets' by Peter Van Der Linden - a classical and enjoyable read. Should have read that immediately after learning C years ago but got it about after 3 years into learning C! A recommended book which answers the most common SO questions on pointers (a favourite subject of mine). Live it, eat it, breathe it! 10/10!</p>\n"}, {'answer_id': 1901748, 'author': 'z-index', 'author_id': 185349, 'author_profile': 'https://Stackoverflow.com/users/185349', 'pm_score': 1, 'selected': False, 'text': '<p>This is a must read book for every programmer: Database system concepts by Abraham Silberschatz.</p>\n\n<p><a href="http://images.barnesandnoble.com/images/14870000/14878097.JPG" rel="nofollow noreferrer">alt text http://images.barnesandnoble.com/images/14870000/14878097.JPG</a></p>\n'}, {'answer_id': 1913288, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 1, 'selected': False, 'text': '<p>This is a very rich and useful compilation, however, I am a bit surprised I have not encountered Andrew S. Tanenbaum among the authors. IMO he is one of the best CS professors, and his genius has to do mainly with his extraordinary ability in making rather difficult material accessible to the CS undergraduates. <a href="http://books.google.com/books?as_auth=Andrew+S+Tanenbaum&amp;source=an&amp;ei=ZqAoS_vZDJGG4QbQ1aGsDQ&amp;sa=X&amp;oi=book_group&amp;ct=title&amp;cad=author-navigational&amp;resnum=12&amp;ved=0CDIQsAMwCw" rel="nofollow noreferrer">His books</a> (Modern Operating Systems, or Computer Networks might ring a bell) did a wonderful job in providing me with a solid foundation in CS while doing my BS and I highly recommend them.\nSome other interesting stuff on Tanenbaum, proving his skills go beyond teaching: author of an OS called MINIX - Linus had his fare share of inspiration from it when implementing Linux; Amoeba - distributed OS; Turtle - free anonymous p2p network.</p>\n'}, {'answer_id': 1967401, 'author': 'Derrick', 'author_id': 83883, 'author_profile': 'https://Stackoverflow.com/users/83883', 'pm_score': 3, 'selected': False, 'text': '<p><a href="http://ecx.images-amazon.com/images/I/51HlYd-%2BRwL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg" rel="nofollow noreferrer">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</a></p>\n\n<p>Really good book. Has a high-level taste of the most important areas of computer science. Yes, CS != programming, but this is still useful to every programmer.</p>\n'}, {'answer_id': 2202200, 'author': 'Andriy Drozdyuk', 'author_id': 74865, 'author_profile': 'https://Stackoverflow.com/users/74865', 'pm_score': 1, 'selected': False, 'text': '<p><strong>The Art of Game Design - A Book of Lenses</strong> by Jesse Schell</p>\n\n<blockquote>\n  <p>Jesse Schell has taught Game Design and led research projects at Carnegie Mellon’s Entertainment Technology Center since 2002.</p>\n</blockquote>\n\n<p>Nuff said.</p>\n\n<p><a href="http://i50.tinypic.com/iekw0l.jpg" rel="nofollow noreferrer">The Art of Game Design - A Book of Lenses http://i50.tinypic.com/iekw0l.jpg</a></p>\n\n<p>PS: Sorry If I am double posting, I couldn\'t find this book in the answers - either because the title was not exact or there was no image. Let me know and I\'ll delete it if so.</p>\n'}, {'answer_id': 2212155, 'author': 'KV Prajapati', 'author_id': 142822, 'author_profile': 'https://Stackoverflow.com/users/142822', 'pm_score': 2, 'selected': False, 'text': '<p><a href="http://people.redhat.com/drepper/cpumemory.pdf" rel="nofollow noreferrer">What Every Programmer Should Know About Memory</a></p>\n\n<p>by Ulrich Drepper - explains the structure of modern memory subsystems and suggests how to utilize them efficiently.</p>\n\n<p>PS: Sorry If I am double posting.</p>\n'}, {'answer_id': 2223093, 'author': 'Zack Marrapese', 'author_id': 43222, 'author_profile': 'https://Stackoverflow.com/users/43222', 'pm_score': 2, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/0596809484" rel="nofollow noreferrer" rel="nofollow noreferrer">97 Things Every Programmer Should Know</a></p>\n\n<p><a href="http://ecx.images-amazon.com/images/I/51F134Q8TrL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg" rel="nofollow noreferrer">alt text http://ecx.images-amazon.com/images/I/51F134Q8TrL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg</a></p>\n\n<p>This book pools together the collective experiences of some of the world\'s best programmers. It is a must read.</p>\n'}, {'answer_id': 2223262, 'author': 'Paul Mitchell', 'author_id': 38966, 'author_profile': 'https://Stackoverflow.com/users/38966', 'pm_score': 1, 'selected': False, 'text': '<p><a href="http://www.mrbunny.com/" rel="nofollow noreferrer">Mr Bunny\'s Guide to ActiveX</a></p>\n'}, {'answer_id': 2315020, 'author': 'ErikT', 'author_id': 264499, 'author_profile': 'https://Stackoverflow.com/users/264499', 'pm_score': 2, 'selected': False, 'text': '<p>My vote is "How to Think Like a Computer Scientist: Learning With Python"\nIt\'s available both as a <a href="https://rads.stackoverflow.com/amzn/click/com/0971677506" rel="nofollow noreferrer" rel="nofollow noreferrer">book</a> and as a <a href="http://www.greenteapress.com/thinkpython/thinkCSpy/thinkCSpy.pdf" rel="nofollow noreferrer">free e-book</a>.</p>\n\n<p>It really helped me to understand the basics of not just Python but programming in general. Although it uses Python to demonstrate concepts, they apply to most, if not all, programming languages. Also: IT\'S FREE!</p>\n'}, {'answer_id': 2319763, 'author': 'Marc Bollinger', 'author_id': 12866, 'author_profile': 'https://Stackoverflow.com/users/12866', 'pm_score': 1, 'selected': False, 'text': '<p><img src="https://upload.wikimedia.org/wikipedia/en/3/31/Norton_Guide_to_PC_VGA.jpg" alt="The Pink Shirt book"></p>\n\n<p>Programmer\'s Guide to the IBM PC. The Pink Shirt book. </p>\n\n<p>...well, <strong>someone</strong> had to say it.</p>\n'}, {'answer_id': 2362817, 'author': 'Aseem', 'author_id': 284342, 'author_profile': 'https://Stackoverflow.com/users/284342', 'pm_score': 3, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/020189551X" rel="nofollow noreferrer" rel="nofollow noreferrer">Object Oriented Analysis and Design with Applications by Brady Booch</a></p>\n'}, {'answer_id': 2374998, 'author': 'Mark Schultheiss', 'author_id': 125981, 'author_profile': 'https://Stackoverflow.com/users/125981', 'pm_score': 1, 'selected': False, 'text': '<p>You.Next(): Move Your Software Development Career to the Leadership Track\n~ Michael C. Finley (Author), Honza Fedák (Author) \n<a href="https://rads.stackoverflow.com/amzn/click/com/1439205590" rel="nofollow noreferrer" rel="nofollow noreferrer">link text</a></p>\n'}, {'answer_id': 2779417, 'author': 'Jonathan', 'author_id': 185043, 'author_profile': 'https://Stackoverflow.com/users/185043', 'pm_score': 1, 'selected': False, 'text': '<p><a href="http://www.amazon.co.uk/Maverick-Success-Behind-Unusual-Workplace/dp/0712678867/ref=sr_1_2?ie=UTF8&amp;s=books&amp;qid=1273132693&amp;sr=8-2" rel="nofollow noreferrer">Maverick!: The Success Story Behind the World\'s Most Unusual Workplace</a> </p>\n\n<p><a href="http://ecx.images-amazon.com/images/I/410TX7YN94L._SL500_AA300_.jpg" rel="nofollow noreferrer">alt text http://ecx.images-amazon.com/images/I/410TX7YN94L._SL500_AA300_.jpg</a></p>\n\n<p><strong>Will make you realise what a workplace should be like.</strong></p>\n'}, {'answer_id': 2912701, 'author': 'Dave Clarke', 'author_id': 231469, 'author_profile': 'https://Stackoverflow.com/users/231469', 'pm_score': 3, 'selected': False, 'text': '<p><a href="http://www.cis.upenn.edu/~bcpierce/tapl/index.html" rel="nofollow noreferrer">Types and Programming Languages</a> by Benjamin C Pierce for a thorough understanding of the underpinnings of programming languages.</p>\n'}, {'answer_id': 2912739, 'author': 'Dave Clarke', 'author_id': 231469, 'author_profile': 'https://Stackoverflow.com/users/231469', 'pm_score': 3, 'selected': False, 'text': '<p><a href="http://www.amazon.co.uk/Design-Concepts-Programming-Languages-Turbak/dp/0262201755/ref=sr_1_3?ie=UTF8&amp;s=books&amp;qid=1274875492&amp;sr=8-3" rel="nofollow noreferrer">Design Concepts in Programming Languages</a> by FA Turbak produces detailed implementations of many programming concepts and is very useful for understanding what\'s going on underneath the hood.</p>\n'}, {'answer_id': 3346201, 'author': 'agupta666', 'author_id': 403024, 'author_profile': 'https://Stackoverflow.com/users/403024', 'pm_score': 3, 'selected': False, 'text': '<p><strong>The Practice of Programming</strong></p>\n\n<p><img src="https://t1.gstatic.com/images?q=tbn:ANd9GcSLc9pryomuCkOeUgLIv13xEWjh_CvvjqZ1-KbMDoSKJj4gtaA&amp;t=1&amp;usg=__wxMg3DTFArpa2kMk0Jmqf-_5eI4=" alt="alt text"></p>\n\n<p>and</p>\n\n<p><strong>How to solve it by computer</strong></p>\n\n<p><a href="http://img.infibeam.com/img/7101e0ee/496b1/05/629/P-M-B-9788131705629.jpg?hei=200&amp;wid=160&amp;op_sharpen=1" rel="nofollow noreferrer">alt text http://img.infibeam.com/img/7101e0ee/496b1/05/629/P-M-B-9788131705629.jpg?hei=200&amp;wid=160&amp;op_sharpen=1</a></p>\n'}, {'answer_id': 3354925, 'author': 'Second Person Shooter', 'author_id': 397524, 'author_profile': 'https://Stackoverflow.com/users/397524', 'pm_score': 3, 'selected': False, 'text': '<p><a href="http://ecx.images-amazon.com/images/I/51fhwR6eb3L._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg">alt text http://ecx.images-amazon.com/images/I/51fhwR6eb3L._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg</a></p>\n\n<p><a href="http://ecx.images-amazon.com/images/I/51PDNR3C40L._SL500_AA300_.jpg">alt text http://ecx.images-amazon.com/images/I/51PDNR3C40L._SL500_AA300_.jpg</a></p>\n'}, {'answer_id': 3416315, 'author': 'shawndumas', 'author_id': 64275, 'author_profile': 'https://Stackoverflow.com/users/64275', 'pm_score': 3, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/0262062186" rel="noreferrer" rel="nofollow noreferrer">alt text http://ecx.images-amazon.com/images/I/51E0Ojkz8iL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg</a></p>\n'}, {'answer_id': 3444622, 'author': 'George Marian', 'author_id': 377225, 'author_profile': 'https://Stackoverflow.com/users/377225', 'pm_score': 3, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/B0020MMBCG" rel="noreferrer" rel="nofollow noreferrer">The Back of the Napkin</a>, by <a href="http://www.thebackofthenapkin.com/" rel="noreferrer">Dan Roam</a>.</p>\n\n<p><a href="http://www.coverbrowser.com/image/bestsellers-2008/302-7.jpg" rel="noreferrer">The Back of the Napkin http://www.coverbrowser.com/image/bestsellers-2008/302-7.jpg</a></p>\n\n<p>A great book about visual thinking techniques.  There is also an <a href="https://rads.stackoverflow.com/amzn/click/com/1591843065" rel="noreferrer" rel="nofollow noreferrer">expanded</a> edition now.  I can\'t speak to that version, as I do not own it; yet.</p>\n'}, {'answer_id': 3565093, 'author': 'Mahol25', 'author_id': 382086, 'author_profile': 'https://Stackoverflow.com/users/382086', 'pm_score': 2, 'selected': False, 'text': '<p><img src="https://i.stack.imgur.com/mManT.jpg" alt="alt text"></p>\n\n<p><a href="https://rads.stackoverflow.com/amzn/click/com/0452267560" rel="nofollow noreferrer" rel="nofollow noreferrer">Mastery: The Keys to Success and Long-Term Fulfillment, by George Leonard</a></p>\n\n<p>It\'s about about what mindsets are required to reach mastery in any skill, and why. It\'s just awesome, and an easy read too.</p>\n'}, {'answer_id': 4008769, 'author': 'Matthew J Morrison', 'author_id': 256218, 'author_profile': 'https://Stackoverflow.com/users/256218', 'pm_score': 3, 'selected': False, 'text': '<p>The Python language was very influential to me, I wish I would have read these book years ago. The beauty and simplicity of the Python language really affected how I wrote code in other languages.</p>\n\n<p><img src="https://i.stack.imgur.com/HA3fB.gif" alt="alt text">\n<img src="https://i.stack.imgur.com/Ni1BC.gif" alt="alt text"></p>\n'}, {'answer_id': 4066362, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 3, 'selected': False, 'text': '<p><a href="http://www.informit.com/store/product.aspx?isbn=9780321112309&amp;aid=3B419801-6640-4A1F-A653-6CD00295FCDD" rel="nofollow noreferrer">Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML</a></p>\n\n<p>An excellent read for those looking to leverage ORM and UML</p>\n\n<p><img src="https://i.stack.imgur.com/B6iEX.png" alt="Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML"></p>\n'}, {'answer_id': 4218702, 'author': 'Ryan Berger', 'author_id': 330204, 'author_profile': 'https://Stackoverflow.com/users/330204', 'pm_score': 3, 'selected': False, 'text': '<p><a href="https://rads.stackoverflow.com/amzn/click/com/0073523321" rel="noreferrer" rel="nofollow noreferrer">Database System Concepts</a> is one of the best books you can read on understanding good database design principles.</p>\n\n<p><img src="https://i.stack.imgur.com/gk1tt.jpg" alt="alt text"></p>\n'}, {'answer_id': 4252445, 'author': 'ladookie', 'author_id': 420744, 'author_profile': 'https://Stackoverflow.com/users/420744', 'pm_score': 3, 'selected': False, 'text': '<p><a href="http://savannah.spinellicreations.com/pgubook/ProgrammingGroundUp-1-0-booksize.pdf" rel="nofollow noreferrer">Programming from the ground up.</a> It\'s free on the internet. This book taught me AT&amp;T asm. It is very easy to read.</p>\n\n<p><img src="https://i.stack.imgur.com/ec9YD.jpg" alt="alt text"></p>\n'}, {'answer_id': 4395620, 'author': 'michaelok', 'author_id': 443633, 'author_profile': 'https://Stackoverflow.com/users/443633', 'pm_score': 2, 'selected': False, 'text': '<p>Steve Macguire\'s <a href="http://c2.com/cgi/wiki?WritingSolidCode" rel="nofollow">Writing Solid Code</a> </p>\n'}, {'answer_id': 4689505, 'author': 'JW.', 'author_id': 205814, 'author_profile': 'https://Stackoverflow.com/users/205814', 'pm_score': 3, 'selected': False, 'text': '<p><a href="http://nostarch.com/tcpip.htm" rel="nofollow noreferrer">The TCP/IP Guide</a>, by Charles M. Kozierok </p>\n\n<p>Although it is described as an \'encyclopedic reference\', it is <em>incredibly</em> readable as a narrative.</p>\n\n<p>This author provides a very , very, very well written, comprehensive, introduction to networking and the infrastructure that underlies the web. Something all programmers ought to know.</p>\n\n<p>For me it is the natural follow-on from Charles Petzold\'s \'<a href="https://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read/1727#1727">Code</a>\'.  If "Code" explains to the layman how computers work, \'The TCP/IP Guide\' explains how they connect together.</p>\n\n<p>If you gave a 12 year old geek a copy \'Code\' and a copy of \'The TCP/IP Guide\' - they\'d be building the next Google by the age of 17. </p>\n\n<p>In other words, if I could go back in time and tell myself to read a specific book at the beginning of my career as a developer, this (plus <em>Code</em>) is up there in the top of my list.</p>\n'}, {'answer_id': 4693098, 'author': 'David Watson', 'author_id': 173308, 'author_profile': 'https://Stackoverflow.com/users/173308', 'pm_score': 2, 'selected': False, 'text': '<p>In the beginning was the command line. Neal Stephenson.</p>\n'}]
['https://Stackoverflow.com/questions/1711', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/303/']