Ask Slashdot: What Should Every Programmer Read? 352
An anonymous reader writes "There's a blog post floating around right now listing articles every programmer should read. I'm curious what articles, books, etc., Slashdot readers would add to this list. Should The Art of Computer Programming, Design Patterns, or Structure and Interpretation
of Computer Programs be on the list? What about The Mythical Man-Month, or similar works that are about concepts relating to programming? Is there any code that every programmer should take a look at? Obviously, the nature of this question precludes articles about the nitty-gritty of particular languages, but I'm sure a lot of people would be interested in those, too. So if you can think of a few articles that every C++ programmer (or Perl, or Haskell, or whatever) should know, post those too."
Books to read (Score:5, Informative)
Clean Code by Robert C. Martin, Working Effectively with legacy code by Michael C. Feathers, Refactoring by Fowler, Design Patterns by the gang of four. If you are a C++ programmer, anything by Sutter or Meyers.
Code Complete (Score:4, Informative)
Code Complete is the #1 thing every programmer should read.
Text Encoding (Score:2, Informative)
http://www.joelonsoftware.com/articles/Unicode.html
Re:If you haven't read The Myythical Man-Month... (Score:5, Informative)
Nonsense. The Mythical Man-Month is mostly about team-building, project management and a bit about software architecture. It has almost no software engineering content. Sure, it is a highly valuable source, but not a software-engineering one.
Code Complete by Steve McConnell (Score:5, Informative)
My boss gave me this book when I started by my first job out of college. By far one of the best books on software development and construction out there. It is timeless and even though I no longer write code for a living, I refer back to it on many occasions still. You want a book to make a you a better programmer; you can't go wrong here.
"Code Complete" by Steve McConnell (Score:3, Informative)
Whereas other programming books are filled with conjecture and opinion ("I think this" or "I think that"), Steve McConnell went out and did the hard work of researching what actually works, then providing actual citations for everything he found. Following the guidelines and tactics in this book is like adding 10 years of experience to your programming skills. This book is a masterpiece in the field of programming.
http://www.amazon.ca/Code-Complete-Steve-McConnell/dp/0735619670
Re:Code Complete (Score:2, Informative)
Code Complete 2nd Edition is the holy grail of programming books. Required reading for serious professionals.
Lists and links of top Programming Books (Score:4, Informative)
This is one of those questions that's going to keep being asked... Perhaps one day I'll be fast enough to get a first post on this that people actually read...
Link summary from last time:
General comments
I've noticed which book answers tend to fall a bunch of categories:
If you're going to ask someone "which book?" try limit the categories they should give you an answer for...
Re:Books to read (Score:2, Informative)
Unfortunately 99% of the /. crowd falls into the "cowboy coder" bucket and they'll piss and moan about those horrid "design patterns" because every line of code they write is a beautiful and unique snowflake.
Look, anyone who studies software architecture and does their due diligence on design patterns will probably jump balls-deep into a few projects and try to use all of the cool stuff they've learned. Then they'll realize that it was overkill, they'll start fresh, and incorporate the patterns as they emerge from the code rather than trying to force the code into those patterns from the start.
It's no different from any other type of learning. The theory is easy; the practical application is hard and takes experience to get right.
Try (Score:4, Informative)
C++ FQA (and ignore the downmods) (Score:3, Informative)
If you are doing C++, you absolutely must read the Frequently Questioned Answers [yosefk.com]:
"C++ is a general-purpose programming language, not necessarily suitable for your special purpose."
It's a little (though not much) out of date, as it does not cover C++11. But the author has some comments on it, too [yosefk.com].
Obviously I am going to be modded down, but hey. Truth is truth.