Please read this blog post to see why this is here. This data was created on 02/13/2012 20:00:00
All content found below was taken from Stack Overflow in accordance with the Creative Commons license governing the site. As such, you are free to use this data as you wish so long as the proper attribution is used.
Code Complete (2nd Ed) by Steve McConnell
- "The encyclopedia of good programming practice, Code Complete focuses on individual craftsmanship -- all the things that add up to what we instinctively call "writing clean code." This is the kind of book that has 50 pages just talking about code layout and whitespace." --Joel (NB imo there's more to it than semantics)
11558
Created on: 2008-08-04 19:51:07
Last edit: 2010-03-27 09:22:22
The Pragmatic Programmer; it's more about your trade, and how to apply it than the code per se, but it's still very good.
This is a great book for programmers who have learned the mechanics of programming, maybe in college, but don't quite feel secure deciding what to do. It's like the difference between drafting and architecture. What you learned in that class in college was drafting, and you can draw beautifully, but if you still feel like you wouldn't quite know where to begin if someone told you to write a P2P music-swapping network all by yourself, this is the book for you.
--Joel
5936
Created on: 2008-08-04 20:15:14
Last edit: 2011-10-22 16:38:54
Personally, Structure and Interpretation of Computer Programs is by far the most influential programming book I have ever read.
Some classics like Code Complete, Refactoring and Design Patterns teach you the effective working habits and the painstaking details of the trade. Others, like Peopleware, Psychology of Computer Programming and The Mythical Man-Month delve into the psychosocial aspects of software development. Numerous others deal with algorithms. These books all have their place.
SICP, however, is in a different league. It is a book that will enlighten you. It will evoke in you a passion for writing beautiful programs. Moreover, it will teach you to recognize and appreciate that very beauty. It will leave you with a state of awe and an unquenchable thirst to learn more. Other books may make you a better programmer; this book will make you a programmer.
And in the meanwhile, you will learn a thing or two about functional programming (side effects won't be introduced until chapter three), lazy evaluation, metaprogramming (well, metalinguistic abstraction), virtual machines, interpreters, and compilers.
Some think that SICP is not a beginner's book. Personally, I probably wouldn't have appreciated the book in full without having some programming experience under my belt, but I would definitely recommend it for a beginner. The book is, after all, written for the famous 6.001, the introductory programming course at MIT. It may require an intellectual effort (especially if you do the exercises - and you should), but the reward is well worth the price.
Not convinced? Read the Foreword or the Preface to the First Edition. The full text is freely available on the web.
It's available online for free, and there are even video lectures to go along with it.
5614
Created on: 2008-08-26 23:10:24
Last edit: 2011-03-09 08:49:35
The C Programming Language by Kernighan and Ritchie.
It is concise, easy to read, and it will teach you three things: the C programming language, how to think like a programmer, and the low-level computational model. (It is important to understand what's going on "under the hood".)
1006
Created on: 2008-08-29 12:01:11
Last edit: 2011-11-06 07:25:01
Introduction to algorithms (Cormen, Leiserson, Rivest, Stein) aka CLRS - Code Complete teaches you how to program correctly, The Mythical Man-Month teaches you how to manage correctly, Design Patterns teaches you how to design correctly...
This book teaches you how to write think about algorithms.
In my mind, code is just a tool, not the essence. The main part of developing software (IMO) is creating new algorithms or re-implementing existing ones. Other than that it's just assembling Lego bricks or creating "management" layers. I still dream about the workplace that would allow me to invest most (>50%) of my time in writing algorithms, leaving the management details to other people...
1836
Created on: 2008-08-17 11:54:57
Last edit: 2010-12-07 02:05:31
I personally think Design Patterns by the Gang of Four is a very useful book. It's not about the "meta" aspects of programming like so many of the other suggestions, but it emphasises encapsulating good programming techniques as patterns, and has since encouraged others to come up with new patterns and antipatterns to use in programming dialogue.
Now for a rider....
@kevin, @modesty: Great answers! If I could place a 3-vote like on uservoice, I'd gladly use it here.
To the naysayers who downmodded them, I say: please, grow a sense of humour! :-)
57362
Created on: 2008-08-04 20:33:29
Last edit: 2011-03-01 10:20:59
I think I would have to recommend Refactoring: Improving the Design of Existing Code.
8309
Created on: 2008-08-16 16:13:34
Last edit: 2010-03-18 10:33:32
In podcast 12, Jeff and Joel list a myriad of recommended books. Personally though I highly recommend The Mythical Man-Month.
4223
Created on: 2008-08-04 19:53:17
Last edit: 2009-10-01 14:18:51
The Art of Computer Programming if only for the effort Knuth put into it.
4701
Created on: 2008-08-04 20:07:28
Last edit: 2011-01-22 14:50:08
I'm surprised no one's mentioned the Dragon Book by Aho et al. (or if it has been mentioned, I missed it).
I will never forget the first edition's cover. This book made me realize just how magically awesome compilers truly are. :)
385
Created on: 2008-09-05 14:00:08
Last edit: 2009-10-15 21:41:20
I know that Design Patterns by the Gang of Four is a standard text, but rather than try and read that brick of a book start with the easierHead-First Design Patterns, and once you have got your head around the basic principles, progress to the great GoF bible...
3273
Created on: 2008-08-06 03:21:22
Last edit: 2010-03-20 07:57:04
For a truly deep read, I'd suggest Douglas Hofstadter's Gödel, Escher, Bach. He dives pretty deep into many of the issues that programmers face every day- recursion, verifiability, proof, and boolean algebra. Great read, a little off the beaten path, occasionally challenging, and extremely rewarding once you fight through it and process what you've read.
4206
Created on: 2008-09-04 09:06:12
Last edit: 2010-09-07 14:22:51
Clean Code has a lot in common with Code Complete but it's more concise and practical with lots of clear examples.
4454
Created on: 2008-11-25 10:41:08
Last edit: 2010-08-26 21:36:52
Effective C++ and More Effective C++
From the early days of my career, Scott Meyer's Effective C++ and later More Effective C++ both had an immediate impact on my programming ability. As a friend put it at the time, those books allow you to short cut the process of developing programming skills that otherwise would have taken years.
In the last year, the book with the biggest impact on my thinking has been The Cathedral and the Bazaar which taught me a lot about how the open source development process works and how to get rid of bugs from my code.
2793
Created on: 2008-08-29 16:19:05
Last edit: 2009-10-07 18:05:17
I recommend CODE by Charles Petzold. In this age of tools and IDEs that abstract a lot of complexity away from the programmers, this one is an eye opener.
383
Created on: 2008-08-04 20:03:22
Last edit: 2010-01-11 15:18:44
I really recommend programming pearls, it's got some amazing stuff in it, although I'm not ashamed to admit that I didn't understand half of it!
4576
Created on: 2008-09-04 05:32:29
Last edit: 2009-03-01 16:52:10
Working Effectively with Legacy Code
by Michael Feathers. I don't think that any book has affected my opinion of how I code more than this one. It explicitly tells you how to deal with someone elses code but implicitly you'll learn what to avoid (and why).
Edit: Makes sense now.
5444
Created on: 2008-08-06 02:00:13
Last edit: 2009-10-07 17:58:19
For me the most influencal book is "Zen and the Art of Motorcycle Maintenance" by Robert Pirsig. It is all about no matter what you do, always strive for perfection, know your tools and task at hand inside-out, and, most of all, have fun (because if you are having fun, everything automatically leads to better results).
This book has a more recent edition (2000).
Two great long-quotes from it
Quality -- you know what it is, yet you don't know what it is. But that's self- contradictory. But some things are better than others, that is, they have more quality. But when you try to say what the quality is, apart from the things that have it, it all goes poof! There's nothing to talk about. But if you can't say what Quality is, how do you know what it is, or how do you know that it even exists? If no one knows what it is, then for all practical purposes it doesn't exist at all. But for all practical purposes it really does exist. What else are the grades based on? Why else would people pay fortunes for some things and throw others in the trash pile? Obviously some things are better than others -- but what's the ``betterness''? -- So round and round you go, spinning mental wheels and nowhere finding anyplace to get traction. What the hell is Quality? What is it?
Mountains should be climbed with as little effort as possible and without desire. The reality of your own nature should determine the speed. If you become restless, speed up. If you become winded, slow down. You climb the mountain in an equilibrium between restlessness and exhaustion. Then, when you're no longer thinking ahead, each footstep isn't just a means to an end but a unique event in itself. This leaf has jagged edges. This rock looks loose. From this place the snow is less visible, even though closer. These are things you should notice anyway. To live only for some future goal is shallow. It's the sides of the mountain which sustain life, not the top. Here's where things grow.
Get it here
1458
Created on: 2008-09-05 14:16:19
Last edit: 2011-09-25 10:03:47
Peopleware
Demarco and Lister demonstrate that the major issues of software development are human, not technical. Their answers aren't easy--just incredibly successful. New second edition features eight all-new chapters.
512
Created on: 2008-08-17 11:27:57
Last edit: 2009-10-07 17:56:54
Coders at Work by Peter Seibel. A very influential book to learn from the experience of some of the top names in the field, how they think and work.
498
Created on: 2009-09-22 10:03:29
Last edit: NA
ok, this is a slightly off-center answer, but believe it or not, it was on the reading list for a compsci course way back in the day. An excellent role model and a good book about curiosity.
468
Created on: 2008-09-16 22:21:07
Last edit: 2011-09-05 00:32:37
Effective Java 2ed will teach you how to write beautiful and effective code. It's a Java book, but there are many cross-language concepts.
3989
Created on: 2008-09-02 23:41:27
Last edit: 2010-05-09 10:31:39
Surprised that no one has mentioned Martin Fowler's Patterns of Enterprise Application Architecture yet
1205
Created on: 2008-10-03 17:55:34
Last edit: 2010-09-26 16:18:21
I agree with Cristian, I think we should not forget SICP, I think every programmer should use it, al least as an exercise, you can complement it with;
I also include in the reading list Code Complete, Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process and Design Patterns and Design Patterns: Elements of Reusable Object-Oriented Software
1552
Created on: 2008-08-22 12:56:43
Last edit: NA
30710
Created on: 2008-08-04 20:41:27
Last edit: 2009-11-19 11:49:16
The Inmates Are Running The Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity, or any of Alan Cooper's books.
Because most programmers produce more WTFs/minute in the user interface than they do in the source code.
12574
Created on: 2008-08-05 14:45:56
Last edit: 2010-09-03 10:15:29
@lurks
It is useful regardless operating system you use.
img src="//bbsmax.ikafan.com/static/L3Byb3h5L2h0dHAvd3d3LmdyYXZhdGFyLmNvbS9hdmF0YXIvZDkyY2U2MGQzYTRjYmUwMzU5OGUyN2MyZThkZWU2OWQ/ZD1pZGVudGljb24mYW1wO3I9UEc=.jpg" />J.F. Sebastian
37897
Created on: 2008-09-06 15:00:16
Last edit: 2010-08-26 17:21:18
Many of the books already mentioned opened my eyes and influenced me, but a book every programmer should read is Test-Driven Development by Example. It really showed me the importance of unit tests and TDD and got me started very quick.
450
Created on: 2008-09-16 10:24:27
Last edit: 2010-01-11 15:11:34
Practices of an Agile Developer
Working in the Real World.
5781
Created on: 2008-08-26 21:12:55
Last edit: 2011-01-14 12:35:10
Strunk, William. Elements of Style
37897
Created on: 2008-09-29 03:09:35
Last edit: 2008-09-29 03:14:47
It depends on exactly what purpose you're aiming for - I like Code Complete for pure programming, and Don't Make Me Think is a great book on UI design.
2670
Created on: 2008-08-05 13:38:01
Last edit: 2011-09-13 02:37:35
How to Win Friends and Influence People by Dale Carnegie.
It taught me that in order to persuade people of your ideas, or lead them away from bad practices, you can never tell them that they are wrong. To do so will only entrench them further in their own ideas.
27106
Created on: 2009-02-12 16:30:03
Last edit: 2009-08-23 23:02:50
Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin
2731
Created on: 2008-08-26 21:04:36
Last edit: 2009-04-25 12:59:13
Domain Driven Design by Eric Evans
161
Created on: 2008-09-16 12:01:43
Last edit: 2010-01-11 15:10:23
2521
Created on: 2008-10-07 17:56:09
Last edit: NA
I'd suggest "Modern C++ Design" by Andrei Alexandrescu, a really astonishing book about the awesome tricks and patterns you can achieve with C++, preprocessor directives and templates.
1539
Created on: 2008-09-16 19:43:23
Last edit: NA
I have a different answer -- I really liked Joel's Best Software Writing I.
Maybe that's just me... but that collection opened my eyes to the "bigger picture" and inspired me to think of my programming as an art/craft.
218
Created on: 2008-08-04 21:22:46
Last edit: 2008-08-07 03:33:43
I found The Practice of Programming by Kernighan and Pike is a very good read.
690
Created on: 2008-08-16 06:19:06
Last edit: 2010-03-27 09:40:38
A great follow on to Code Complete - indispensable once you start working on projects of any decent size & need to communicate to your stakeholders about project delivery dates, etc.
Software Estimation: Demystifying the Black Art by Steve McConnel
71
Created on: 2008-09-02 20:49:36
Last edit: 2010-08-10 03:09:35
Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt.
1005
Created on: 2009-07-07 22:59:42
Last edit: 2009-10-02 14:47:03
Not the most influential, but certainly a good read and absent so far is My Job Went To India by Chad Fowler. It consists of 52 chapters/mini essays giving guidance on how to differentiate yourself as a developer rather than a code monkey (whose work could easily be outsourced).
Edit by different person: This is now called "The Passionate Programmer".
436
Created on: 2008-08-19 11:44:39
Last edit: 2010-10-02 16:38:01
I'm going to go a different route than the other answers so far...
Hackers: Heroes of the Computer Revolution. It's an informal history of computers that really gives you an amazing feel for how this whole "computer culture" formed. It had a very powerful effect on me when I read it, oh, sometime around 1988.
5939
Created on: 2008-08-08 12:02:15
Last edit: 2011-11-19 19:04:03
It's an oldie, but still worth reading: Algorithms + Data Structures = Programs
293
Created on: 2008-11-11 13:53:01
Last edit: 2010-08-08 14:03:28
Dilbert's Guide To The Rest Of Your Life: Dispatches from Cubicleland
This is more truth than you'd think.
1289
Created on: 2009-02-12 11:17:31
Last edit: NA
I recommend Writing Solid Code. Old, but still very much worth a read.
1203
Created on: 2008-08-12 11:07:44
Last edit: 2009-10-02 14:23:33
I'm amazed that no one has suggested The Story About Ping yet.
1457
Created on: 2009-07-22 21:08:51
Last edit: 2009-10-02 14:44:22
Excellent book on getting up to speed with JavaScript, highly reccommend.
582
Created on: 2009-11-25 05:23:16
Last edit: NA
Getting Real by 37 Signals. It doesn't matter if you don't "ship" something at the end of the day.
325
Created on: 2008-08-12 16:39:47
Last edit: NA
The books listed here in this question are great. Code Complete, Pragmatic Programmer, Head First Design Patterns, all great.
My contribution to this list is a free read and is really focused on getting back to (best practice) basics. Foundations of Programming is a free eBook from one of the contributors to the popular Alt.Net blogs CodeBetter, Karl Seguin.
Covers Domain Driven Design, Persistence, Dependency Injection, Unit Testing, ORM etc.
4259
Created on: 2008-08-25 22:41:35
Last edit: NA
I know this is a graphics book, but I am a graphics programmer and have been my whole career. Plus it's written in 'C' :)
It's as fundamental to me as the original K&R C Programming Language book.
Computer Graphics: Principles and Practice in C (2nd Edition)
831
Created on: 2009-07-22 20:57:45
Last edit: 2009-10-02 14:45:10
My favorite books are already covered here, but if you need to learn Java, I enjoyed Bruce Eckel's book, Thinking in Java.
Created on: 2008-09-15 19:04:57
Last edit: NA
Code Complete is the classic.
However, Facts and Fallacies of Software Engineering by Robert Glass has a lot of good information on topics other than coding, for example people-issues, testing and process.
545
Created on: 2008-09-11 09:07:58
Last edit: 2009-04-25 12:18:18
The Elements Of Computing Systems
This book walks the reader through the process of building a computer system given NAND gates and flip flops. It gives a good introduction to the "big picture".
3754
Created on: 2009-04-03 09:27:07
Last edit: NA
Refactoring to Patterns by Joshua Kerievsky
754
Created on: 2008-12-05 08:10:45
Last edit: 2009-04-25 12:08:15
The Design of Everyday Things
and Things that Make Us Smart - both by Donald Norman
These apply to so much more than just user interface design... Make things that work as others would expect - even if the others are developers using code that you've created.
The Timeless Way of Building - Christopher Alexander
The original "patterns" book. Helps to understand why some software design just "feels" right and some does not.
272
Created on: 2008-09-01 12:40:32
Last edit: 2011-01-22 15:05:48
The Annotated Turing was enlightening. It defines the box programmers work in.
1299
Created on: 2009-10-02 13:12:54
Last edit: 2010-10-26 14:51:19
The Deadline: A Novel About Project Management by Tom DeMarco
899
Created on: 2008-08-27 13:31:14
Last edit: 2008-08-28 00:54:46
Not the most important, but a very fundamental one
1682
Created on: 2009-02-13 08:15:24
Last edit: NA
This book really set up a fundemental view that a programmer need to know about computer.
Computer System - A programmer's perspective
2209
Created on: 2009-08-06 10:15:16
Last edit: 2010-03-27 09:33:07
I prefer Stroustrup's The C++ Programming Language (3rd edition) - it's the C++ book. C++ may be out of fashion these days, but this book takes you from the basics to OO to templates (STL) and even covers things like improving compile and link time. I still learn something every time I pick it up, and it's never, ever bad to know C++.
0
Created on: 2008-09-10 10:31:19
Last edit: NA
978
Created on: 2008-09-16 09:59:52
Last edit: 2010-01-11 15:02:54
2411
Created on: 2009-07-24 05:56:10
Last edit: 2009-10-02 14:42:08
My career as a developper is starting, so I cannot directly answer the question. But as .NET developper, the book that helped me the most in framework and reusable libraries design is "Framework Design Guidelines" by Brad Abrams. The book solves a lot of issue you can encounter when you are thinking about naming and crucial design choices. This is the best way to produce high reusable assemblies in .NET.
I am pretty surprised that nobody mentioned that book. What is sure is that it has been really influential on my design and naming habits when writing reusable assemblies.
One thing I really appreciate in this book is the notes of .NET Framework developers giving details on issues they had when designing the .NET Framework, which I think are good advices as it is representative of a well designed framework.
908
Created on: 2009-10-26 16:23:34
Last edit: 2011-06-17 08:02:56
It's a brand new book and I've only just skimmed it but Growing Object-Oriented Software, Guided by Tests right now is THE book on TDD. It really concentrates on the "design" part of software development and how it is closely related to how you develop code writing tests first. I've enjoyed other books on TDD and unit testing but this takes it to a higher level, I'm pretty sure this one is destined to be a classic.
2110
Created on: 2009-10-31 18:43:18
Last edit: 2010-12-09 02:41:48
I keep these 3 books on my shelf. As a reminder of the complex and exciting craft we do. I only recommend to read them if you happen to encounter with something that not even the entire * comunity can help you solve as I have:
=)
672
Created on: 2010-09-03 14:37:09
Last edit: 2010-09-03 20:20:14
Alice's Adventures in Wonderland Best programmers have read the book!
1467
Created on: 2008-08-16 15:42:37
Last edit: 2011-09-02 02:42:48
Kernighan and Ritchie's "The C Programming Language" - The only C book you'll ever need.
9635
Created on: 2008-09-16 11:38:21
Last edit: 2011-09-07 18:31:35
There are alot of really great books in the answers. One that isn't mentioned that I absolutely love is Object Thinking by Dr. David West. This book had a huge impact on me because it explains the why more than the how.
99
Created on: 2008-09-10 11:35:50
Last edit: NA
I'm really surprised that nobody has mentioned Advanced Programming in the UNIX Environment by W. Richard Stevens. It's not necessarily the book that had the most impact on me, but it definitely deserves a place among many of the other greats mentioned here.
Even though I mostly did (and do) Perl programming, reading this book really helped me understand more about what's going on under the hood. It covers a ton of really critical low-level concepts like File IO, system files (passwd, group, etc), process control, signals, and so on.
Having some idea of how this stuff works at the C level is very useful, even if you never write any C code, because every language you use (on a Unix system) is using these APIs under the hood.
3075
Created on: 2008-09-16 23:25:02
Last edit: NA
Godel Escher Bach wins hands down for me, but that's already been mentioned elsewhere. One book that motivated me highly that isn't already in an answer AFAIK is Tracy Kidder's Pulitzer prize winning book The Soul of a New Machine (amazon). Which charts the trials and tribulations of an engineering team trying to bring a new machine to market. It made me feel proud to be an engineer.
818
Created on: 2010-09-06 21:16:15
Last edit: 2010-09-07 10:08:02
1025
Created on: 2009-08-28 15:42:32
Last edit: 2010-03-04 11:55:06
CLR via C#, by Jeffrey Richter
183
Created on: 2008-09-16 15:30:49
Last edit: NA
Christopher Alexander - The Timeless Way of Building
119
Created on: 2009-06-28 14:01:19
Last edit: 2010-08-31 17:49:31
Framework Design Guidelines will give you a very good start on how to organize code.
1525
Created on: 2008-08-26 09:35:06
Last edit: NA
I thought Design Patterns in C# by Steve Metsker was good. The examples are a bit more advanced (and useful) than some other design pattern books I've read.
8661
Created on: 2008-09-10 11:03:06
Last edit: 2011-02-24 23:29:19
Since you didn't say you wanted programming books specifically, I can be a little more creative.
Every programmer should have read Lewis Carol's Alice in Wonderland.
Slightly more down-to-earth - every programmer should read Getting Things Done - especially the ones that I work with, because once you 'get it' you will be annoyed at how unorganized other people can be :)
Created on: 2008-08-25 17:59:36
Last edit: NA
I though Jurgen did a decent job with his Top 100 Best Software Engineering Books, Ever.
3064
Created on: 2008-08-22 13:00:18
Last edit: NA
Maybe not the single most influential for every programmer but... to expand really expand your mind about computation in general, and to learn to write some very interesting programs, I recommend the
Computational Beauty of Nature.
BTW, the author is now head of Microsoft's Live Labs.
654
Created on: 2008-08-26 09:59:08
Last edit: 2009-08-27 00:24:04
Robert M. Pirsig's Zen and the Art of Motorcycle Maintenance has a little section near the end about Gumption Traps. That's the best advice I've ever read on how to debug code or solve problems in general. The rest of the book is pretty good, too.
269
Created on: 2008-08-27 13:23:38
Last edit: NA
The C Programming Language. Seriously!
7579
Created on: 2008-08-18 10:27:47
Last edit: NA
About Face - The Essentials of Interaction Design (now in third edition)
This book opened my eyes to a very different viewpoint of development, focused on the interactions of the end user. It also helped me realize that creating great software is about more than just patterns and architecture, it's about helping people achieve their goals.
1631
Created on: 2008-09-16 11:22:45
Last edit: NA
Writing Solid Code, by Steve Maguire. Code Complete is a close runner-up.
1009
Created on: 2008-09-16 10:01:15
Last edit: 2011-01-22 14:55:33
91
Created on: 2009-01-22 07:44:07
Last edit: NA
Here Comes Everybody: The Power of Organizing Without Organizations - Clay Shirky
This is an incredible book about the social effects of the internet. A must read for anyone in the tech industry, doubly so for programmers.
Here Comes Everybody: The Power of Organizing Without Organizations is a book about what happens when people are given the tools to do things together, without needing traditional organizational structures.
1841
Created on: 2008-09-16 12:48:40
Last edit: NA
I was lucky enough to read this pretty early in my so-called career:
Philip and Alex's Guide to Web Publishing
It was cutting edge in 1998 and still has plenty of relevant points. I found it an enjoyable read with a real sense of humour (not the twee kind you often get in software books). When he gets down to the details he talks about specific platforms though, so it shows it's age when Oracle 7 is mentioned!
I would still put this at the top of the required reading list for a web developer because of the way it assumes no prior knowledge, starting from first principles ("what's HTML?")
305
Created on: 2008-09-06 10:25:07
Last edit: NA
Object-Oriented Analysis and Design with Applications by Grady Booch.
6336
Created on: 2008-08-06 06:59:37
Last edit: 2009-10-02 15:46:08
JavaScript: The Good Parts by Douglas Crockford
Opened my eyes to the goodness hidden in JavaScript and how bad the examples of JavaScript are strewn through tutorial sites.
Essential reading for anyone serious about web client side development.
It also improved my C# and showed me the light to dynamic languages.
2072
Created on: 2010-11-01 10:02:38
Last edit: NA
342
Created on: 2010-12-09 02:44:44
Last edit: 2011-09-02 02:43:17
512
Created on: 2008-08-17 11:29:51
Last edit: NA
This is a great book for a Java developer new or old:
Effective Java by Joshua Bloch
Created on: 2008-09-11 21:09:31
Last edit: 2009-04-25 11:55:28
804
Created on: 2008-09-16 10:00:06
Last edit: 2010-07-10 09:44:49
I don't know if it were already suggested but:
579
Created on: 2009-08-04 10:51:48
Last edit: 2009-10-02 14:40:38
The Tao Te Ching. Although it's a philosophy book and not a programming book, some of it's principles are very applicable to programming:
"Know when it's time to stop. If you don't know then stop when you are done."
Translation: Knowing your requirements means you know when to stop. If you don't know when to stop, you need to stop because the requirements have yet to be defined.
"The harder one tries, the more resistance one creates for oneself."
Translation: How many times have you worked on a problem for several hours, only to find the answer after taking a 15-minute break? The more you hammer at a problem, the harder it is going to be for you to solve it.
"One whose needs are simple can fulfill them easily."
Translation: Simple requirements lead to simple designs.
"When we lose the fundamentals, we supplant them with increasingly inferior values which we pretend are the true values."
Translation: Hubris is never a good substitute for good programming standards. If you get lax, no amount of design patterns will ever substitute for the lack of quality in your code.
899
Created on: 2009-01-05 22:33:10
Last edit: NA
The Career Programmer: Guerilla Tactics for an Imperfect World by Christopher Duncan
Created on: 2008-09-16 11:16:01
Last edit: 2011-02-02 18:50:19
Created on: 2008-09-15 15:03:03
Last edit: 2011-09-02 02:43:33
589
Created on: 2010-12-13 08:38:38
Last edit: 2011-09-02 02:44:14
Most fun to read: The Art of Deception by Kevin Mitnick (one of world's most famous hackers)
Really shows that how secure your software may be, the weakest link is always the human controlling it, with entertaining examples.
330
Created on: 2010-05-18 07:17:51
Last edit: NA
The Productive programmer. its a natural extension of "the pragmatic programer" which gets a little more into the every day details.
14028
Created on: 2009-10-09 16:32:23
Last edit: NA
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?
Unit testing is one thing that I really wished I knew at the start of my programming career rather than the middle of it.
As to the general "what good books have you read" offshoot of this thread:
Writing requirements is one area where I suck, this book helped a lot.
Now off to order a book or two from Amazon... ;)
4404
Created on: 2009-10-22 05:14:14
Last edit: 2011-09-12 10:16:19
Smalltalk-80: The Language and its Implementation AKA the "Blue book":