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."
The Joy of C (Score:4, Insightful)
If you haven't read The Myythical Man-Month... (Score:5, Insightful)
...you don't get to call yourself a "software engineer" or talk about others' software engineering practices.
Other Programmers Comments (Score:3, Insightful)
They're there for a reason.
K&R (Score:4, Insightful)
The C Programming Language, so they learn how to properly document their work.
There are no things every programmer should read (Score:4, Insightful)
Paradigms, styles, approaches are different. There is no "central" body of things that can capture this. Even absolute classics like "Goto considered harmful" can be misleading and counter-productive to read unless the reader can supply the right context. That said, every programmer should always work to understand his or her craft better and broaden their view. That includes reading about insights other people have had into the process.
Dilbert. (Score:4, Insightful)
Dilbert.
Two unexpected computer science books (Score:4, Insightful)
I'm gazing across my bookshelf full of O Reilly books, Knuth's series, TCP/IP Illustrated, and others... but the most important books are more mundane:
Godel Escher Bach: an Eternal Golden Braid, and Alice in Wonderland
Both of these books encompass the thinking and mindset which will make you a better programmer by planting the seed of logic, states, and recursion, and nourishing the hell out of it. It will massage the pathways to make someone actually want to be a programmer.
Re:Books to read (Score:5, Insightful)
The problem with that book is that too many people read it the wrong way. Instead of using it as a language to describe design, they attempt to find ways to force their code into patterns or to add patterns because they think they should use them. The result is worse code than if they had never read it. This is especially true of those who read the book before they've seen enough code to understand design. It should be read, but only at the proper time and in the proper way.
It's simple (Score:4, Insightful)
code.
I thought we already knew the answer (Score:4, Insightful)
"The best book on programming for the layman is Alice in Wonderland, but that's because it's the best book on anything for the layman."
- Alan Perlis, "Epigrams on Programming", ACM SIGPLAN Notices 17 (9), September 1982, pp. 7–13
Answer to title (Score:4, Insightful)
Re:This (Score:2, Insightful)
I'm sure I'm not alone. This type of "article" seems to come up every other week.
What is a good read about programming?
If I want to get into programming, which language should I start with?
If I want to get my child into programming, where should I start?
Should schools push teaching programming?
Can I get a programming job with two semesters of classes done?
I've programmed for my whole life, can I learn a new language?
Isn't the rule of thumb for answers to headline questions to be "No"?
Seriously. Make a roulette wheel, spin it, then type the language it falls on followed by "tutorial" into google and start following directions.
Dale Carnegie (Score:4, Insightful)
"How to Win Friends and Influence People". Not for the advice; as a geek type you'll likely never be able to pull it off anyway. But in the spirit of knowing thy enemy; when the sales and marketing and pointy-haired businessmen try to manipulate you, you'll recognize the techniques and be able to put a source to them.
How about reading your code? (Score:5, Insightful)
These book are CRITICAL for your career (Score:2, Insightful)
7 habits of highly effective people.
Never Eat alone
EMotional Intellegence 2.0
The Five Dysfunctions of a Team
What, were you thinking of programming books? bah, mostly worhtless for your career.
Understanding people? that is how you make it.
I used to be all about the programming books. I write solid, clean code. I use small methods, functions., etc. I wrote some really good code, did some amazing things with very limited memory.
None of that gets you dick in the long run.
Career and business wise, understanding how to deal with people, and how a good team works is the way to get ahead.
If I had read those books when I was twenty, I would have retired by 45. Instead I work endless hours to craft some high quality code when I could have written something mediocre and gone home on time.
Seriously no one would know or care.
In other words... (Score:5, Insightful)
Nonsense. The Mythical Man-Month is mostly about team-building, project management and a bit about software architecture
In other words the mix of work for a programmer of every company I have been at.
You think you came to write code? Ha Ha! Let me acquaint you with Mr Process.
Re:If you haven't read The Myythical Man-Month... (Score:2, Insightful)
Yeah, it's the Bible of software engineering: everyone quotes it, but no one has read it.
Re:Dale Carnegie (Score:3, Insightful)
You have entirely missed the point of the book. It is not about manipulation. It's about being genuine and being persuasive. They are different things.
I definitely agree that it is good to know when and how someone is trying to persuade you something, and it's a very valuable skill to increase your communication skills.
"as a geek type you'll likely never be able to pull it off anyway"
Resigning yourself to having bad communication is not helpful - it is possible to vastly improve your communication skills, you can do it and you should learn how.
Peopleware: Productive Projects and Teams (Score:4, Insightful)
Applied Cryptography by Bruce Schneier (Score:3, Insightful)
Applied Cryptography by Bruce Schneier. Really any and all of his books.