Slashdot Mirror


Ask Slashdot: What Should Every Programmer Read?

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."

32 of 352 comments (clear)

  1. The Joy of C by Anonymous Coward · · Score: 4, Insightful

    It's rather out of date but "The Joy of C" was my first programming book and I attest its style to easing me in to the development mindset.

    1. Re:The Joy of C by Anonymous Coward · · Score: 4, Funny

      I've read both, and I still don't understand how to insert pointers into doubly linked lists.

  2. The story of Mel by quietwalker · · Score: 5, Interesting
  3. Books to read by Dionysus · · 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.

    --
    Je ne parle pas francais.
    1. Re:Books to read by AuMatar · · Score: 4, 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.

      --
      I still have more fans than freaks. WTF is wrong with you people?
  4. TFM by NIK282000 · · Score: 4, Funny

    Everybody should RTFM.

    --
    Dear aunt, let's set so double the killer delete select all
  5. Obviously... by fuzzyfuzzyfungus · · Score: 4, Funny

    An arbitrarily long strip of tape, divided into sections on which there appear symbols drawn from some finite alphabet. They should be able to work the rest out from that.

    1. Re:Obviously... by VortexCortex · · Score: 4, Funny

      They should be able to work the rest out from that.

      Actually, you can't make such a generalized determination. Surely some of them will halt.

  6. Code Complete by Anonymous Coward · · Score: 4, Informative

    Code Complete is the #1 thing every programmer should read.

  7. If you haven't read The Myythical Man-Month... by Troy+Baer · · Score: 4, Insightful

    ...you don't get to call yourself a "software engineer" or talk about others' software engineering practices.

    --
    "My life's work has been to prompt others... and be forgotten." --Cyrano de Bergerac
    1. Re:If you haven't read The Myythical Man-Month... by gweihir · · 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.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    2. Re:If you haven't read The Myythical Man-Month... by VortexCortex · · Score: 3, Interesting

      No need. The "Mythical Man Month" is merely a series of special cases of the law of diminishing returns and/or The Planning Fallacy.

      It's much more efficient to say: "Too many chiefs and not enough braves is bad, and it will always take longer than expected."

  8. Other Programmers Comments by Anonymous Coward · · Score: 3, Insightful

    They're there for a reason.

  9. K&R by ericloewe · · Score: 3, Insightful

    The C Programming Language, so they learn how to properly document their work.

  10. There are no things every programmer should read by gweihir · · Score: 3, 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.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  11. Dilbert. by Anonymous Coward · · Score: 4, Insightful

    Dilbert.

  12. Two unexpected computer science books by bugnuts · · 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.

  13. The Fortran Coloring Book by davidwr · · Score: 4, Interesting

    I wish I'd read Roger Kaufman's book before I started programming. It would've helped a lot.

    Here's a few pages to get a taste of the style: http://www.cs.utsa.edu/~wagner...

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  14. It's simple by viperidaenz · · Score: 3, Insightful

    code.

  15. I thought we already knew the answer by roc97007 · · Score: 3, 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

    --
    Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
  16. Answer to title by O('_')O_Bush · · Score: 3, Insightful

    Code. Lots and lots of code. Code from diverse sources, understanding the problems, understanding the solutions. Programming books/articles offer nice ideas, philosophies, anecdotes, whatever, but nothing will improve programming skill more than experience. Reading code, IMO, and at least for me, increases that experience much more than writing it or reading the meta about programming.

    --
    while(1) attack(People.Sandy);
  17. Dale Carnegie by russotto · · Score: 3, 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.

    1. Re:Dale Carnegie by clockwise_music · · Score: 3, Insightful

      ...when the sales and marketing and pointy-haired businessmen try to manipulate you

      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.

  18. Strunk & White: The Elements of Style by RandCraw · · Score: 5, Interesting

    The best preparation for becoming a good programmer (or scientist or engineer) is to learn how to organize your thoughts and then address only what is necessary and sufficient to accomplish a given task.

    I know no book that teaches clarity of thought better than Strunk & White's "The Elements of Style". Clear writing and great coding share a common wellspring.

  19. Code Complete by Steve McConnell by Hangtime · · Score: 4, 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.

  20. "Code Complete" by Steve McConnell by Anonymous Coward · · 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

  21. How about reading your code? by NemoinSpace · · Score: 5, Insightful

    After a year i go back and realize what a horrible programmer i am. It happens every year. But i'm getting better. I also spend a lot of time reading other people's code. I've found that if you are writing "new" code you haven't already seen in action, you just might wind up killing somone someday.

  22. In other words... by SuperKendall · · 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.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  23. Peopleware: Productive Projects and Teams by NotSoHeavyD3 · · Score: 3, Insightful

    Mostly so if you ever go into management you'll have a clue, unlike the vast majority of managers. (Unfortunately after reading it you see just how much stupid stuff management does.)

    --
    Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
  24. Applied Cryptography by Bruce Schneier by simishag · · Score: 3, Insightful

    Applied Cryptography by Bruce Schneier. Really any and all of his books.

  25. Lists and links of top Programming Books by Sits · · Score: 3, 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

    • A few people have volumes of Knuth's Art of Programming on their shelves (but it's harder to find people who have read all of them).
    • One of the consultants who taught at my University said that the Mythical Man Month and Peopleware were good. I've read these too and can also recommended them (although they are more about managing programmers rather than programming per se). The consultant also recommended Design Patterns (although he said not to read the book cover to cover but rather to just be aware of them so you could refer to them later).
    • I've heard the "Dragon Book" (Compilers: Principles, Techniques, and Tools I think is the 2nd edition) being talked of favourably.
    • Many people seem to recommend reading Godel, Escher, Bach (I'd say it's about mathematical thinking)...

    I've noticed which book answers tend to fall a bunch of categories:

    • Books that talk about software engineering/management/teams.
    • Books that talk about programming languages.
    • Books that talk about Computer Science.
    • Books that improve your mathematical thinking.
    • Books that programmers like but aren't programming/maths at all.

    If you're going to ask someone "which book?" try limit the categories they should give you an answer for...

  26. Try by Ghjnut · · Score: 3, Informative

    The pragmatic programmer and code complete

    --
    MouseClass extends ScrollClass, which extends TabClass, which extends SidebarClass, which extends PowerClass, w