One per answer please. I'll add my favourite as an answer.
|
closed as not constructive by Mark Trapp Jul 10 '11 at 17:37
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, see the FAQ for guidance.
|
Code Complete by Steve McConnell. I don't even think it needs explanation. It's the definitive book on software construction. Incredibly well written and covers all aspects of the practical (programming) side of creating software. |
|||||||||
|
|
Easy.
|
|||||
|
|
|
|||||
|
The Structure and Interpretation of Computer Programs, aka SICPWhen I saw that SICP was not listed yet, I grimaced in pain. :) From another post of mine: Why: There's nothing more to add to Norvig's praising this book as the greatest introduction to computer science ever written. Well OK, since the Why? was requested: SICP covers the fundamentals of software in a satisfyingly deep way, raising many perspectives and questions about the nature of computation — quite a few of which remain open issues — while leading the reader to see beyond the superficial aspects of telling the machine what to do, or how to do it. Click the image to get to the free text online. You can also readily find the video lectures by the authors, complete with '80s style color and clothing no less. |
|||||||||||||||||||||
|
|
Design Patterns: Elements of Reusable Object-Oriented Software This is the book to read on OOP design and architecture. The patterns are good when used properly, but I think the real value of this book is that it gives you a toolbox of ideas to use when designing.
|
||||
|
|
|
Languages, frameworks, methodologies come and go, but many ideas in this book are, I suspect, forever. |
|||||
|
|
I just counted my books today. 23 of 'em. It depends on what I'm working on. I guess the timeless answer is "C language", By Kernighan and Ritchie.
|
|||||
|
|
The Art of Computer Programming by Donald Knuth
|
|||||
|
|
Working Effectively with Legacy Code by Michael Feathers. It contains many good tips of how to get an existing code base under test and manageable, most of which I didn't know about until I read this book. A must read, even if the legacy code you are working with is your own code that you wrote yesterday.
|
||||
|
|
The must-have Java books:Effective Java By Josh Bloch
Java Concurrency in Practice By Brian Goetz, et. al.
Java Puzzlers By Josh Bloch, Neal Gafter
|
|||||
|
|
|
||||
|
|
|
Gödel, Escher, Bach. |
|||||
|
|
The Pragmatic Programmer: From Journeyman to Master (Andrew Hunt and David Thomas) |
||||
|
|
|
Getting Things Done (David Allen) teaches you how to deal with the thousands of small tasks you need to accomplish in your day-to-day job as a software developer. Although it is not specifically geared towards developers, it is definitely an invaluable aid, as software development typically involves a very large number of small tasks that need to be done in a prioritized fashion. For example: which new features to implement, which bugs to fix, which parts of the code to refactor, which parts of the code to rest or retest, etc... |
||||
|
|
|
The Zen of Code Optimization by Michael Abrash
A must-read for realtime programmers - even if the processor specific infomation is dated, the mindset is invaluable. |
||||
|
|
|
Bruce F. Webster's "Pitfalls of Object Oriented Development" We got too many "OO" developers who still don't know what an object or a class is or what is for; don't know what good OO, procedural, modular and structured programming look like; and somehow manage to cobble badly made pseudo-procedural code together with classes. This book (plus a few 70's oldies on structured design) would go a long way in helping these poor souls finally get to understand what good object orientation should look like. Furthermore, chances are that if I were forced to pick one book and one book only beside this one, I would not pick a technology-specific book. |
||||
|
|
|
The C++ Programming Language by Bjarne Stroustrup
|
||||
|
|
|
It's one of the few programming books that I've kept from when I first started programming. I used to lend this out a lot to people who were first starting out. Now, not so much, since C isn't very many people's first programming language anymore. It does a wonderful job of describing what is happening behind the scenes and its descriptions about pointers brings real clarity to what is otherwise a very confusing topic for many. |
||||
|
|
|
Object Design: Roles, Responsability and Collaborations
This is by far my favorite programming book (even if it is not language dependent). In my humble opinion is the book that better presents the case on how to design objects that relate to their cousins/brothers/neighboors. A must have in any serious programmer bookshelf. |
||||
|
|
|
Does an iPad count? I would like to say my #1 on my bookshelf would be a web browser and ability to search. Online API and references are the best place and it would depend on my current project set. |
|||||
|
|
Jon skeet's "c# in Depth"
|
|||||||||
|
|
One of my most liked books; |
||||
|
|















!






