Slashdot Mirror


The Most Mentioned Books On StackOverflow (dev-books.com)

An anonymous reader writes: People over at DevBooks have analyzed more than four million questions and answers on StackOverflow to list the top of the most mentioned books. You can check out the list for yourself here, but here are the top 10 books: Working Effectively with Legacy Code by Michael C Feathers; Design Patterns by Ralph Johnson, Erich Gamma, John Vlissides, and Richard Helm; Clean Code by Robert C. Martin; Java concurrency in practice by Brian Goetz, and Tim Peierls; Domain-driven Design by Eric Evans; JavaScript by Douglas Crockford; Patterns of Enterprise Application Architecture by Martin Fowler; Code Complete by Steve McConnell; Refactoring by Martin Fowler, and Kent Beck; Head First Design Patterns by Eric Freeman, Elisabeth Freeman, Kathy Sierra, and Bert Bates.

92 comments

  1. How to train your foreign replacement by Anonymous Coward · · Score: 5, Funny

    A best seller!

    1. Re:How to train your foreign replacement by Anonymous Coward · · Score: 0

      Step 1: Tell him to call the White House and tell them he's a "bad hombre".

  2. Wow, I've got a lot of those by Snotnose · · Score: 4, Interesting

    I'm C, C++, embedded code, device drivers. If you ignore books like the Microsoft build engine (I don't do Windows) I've got probably 90% of those dealing with my problem domain.

    Granted, most of these are not the current editions (haven't bought a book in over 10 years now), but I've got em.

    1. Re: Wow, I've got a lot of those by Anonymous Coward · · Score: 1

      Grandpa, I can't come to the home today. Got stuff to do.

      Also, I'm telling mom you're on Slashdot, you know you're not allowed on Slashdot. You're in big trouble!

    2. Re: Wow, I've got a lot of those by Anonymous Coward · · Score: 0

      That's ok, today's shuffleboard day, and I really didn't want to see your snot nose ass anyway you entitled fuck, errr I mean little Buck.

    3. Re: Wow, I've got a lot of those by Anonymous Coward · · Score: 0, Offtopic

      I find the young people we just hired to be laughable. One asian guy has a hairdo like a shark fin. What are you slackers thinking?

    4. Re:Wow, I've got a lot of those by __aaclcg7560 · · Score: 3, Funny

      I'm C, C++, embedded code, device drivers.

      I've always wondered what the offspring of a Linux kernel and BSD kernel would look like.

    5. Re:Wow, I've got a lot of those by Anonymous Coward · · Score: 0

      It would look like Solaris -- it will boot, it will be stable, but you cant do anything on it but run a server.

    6. Re:Wow, I've got a lot of those by lgw · · Score: 2

      I've been amazed how many "design patterns" are really just "here's how to cope with this weakness in C++ patterns", that apply to no other language.

      Anyone have enough experience with C++14 to comment on whether the 11/14 modernization attempts have addressed most of these patterns? Or was the committee off in the weeds?

      --
      Socialism: a lie told by totalitarians and believed by fools.
    7. Re:Wow, I've got a lot of those by Anonymous Coward · · Score: 0

      A penguin with horns and a pitchfork?

    8. Re: Wow, I've got a lot of those by Anonymous Coward · · Score: 0

      :)

    9. Re: Wow, I've got a lot of those by fuzznutz · · Score: 1

      I find the young people we just hired to be laughable. One asian guy has a hairdo like a shark fin. What are you slackers thinking?

      Asian guy? Shark fin on head? Are you sure you didn't just hire Ultraman?

  3. A minimal C++ library by Anonymous Coward · · Score: 0

    Stroustroup, 4th Ed
    Cormen and Rivest, Algorithms
    Meyers books, including Modern C++
    Sutter, Exceptional C++, Coding Stardards
    Alexandrescu, Modern C++ Design
    Gang of Four
    Lakos, Large Scale C++ (timeless)
    Williams, C++ Concurrency in Action

    1. Re:A minimal C++ library by Anonymous Coward · · Score: 1

      Minimal? I have 2 of those books and have been coding in C++ exclusively since 1997. The hell do you need all of them for?

    2. Re:A minimal C++ library by Anonymous Coward · · Score: 0

      I am assuming you wish to be informed and are not a meatball programmer. There is a large body of best practices material a C++ programmer needs to be aware of.

    3. Re:A minimal C++ library by plover · · Score: 2

      The hell do you need all of them for?

      To broaden your skillset? To be more effective at what you do? To write more maintainable code? To make fewer errors? To interact with your peers? More specific to C++ and those particular books, to prevent race conditions, to have strong error handling, and to make more efficient use of multiple core processors? Perhaps most importantly, so that when the company hires a snot-nosed kid who actually does know and practice these things, that he won't show you up as the fossil you're describing yourself as?

      I've been programming since 1976, and I think it's fair to say that computers have changed since then. If you think that programming now is anything like programming 20 years ago, you haven't been paying nearly enough attention.

      --
      John
    4. Re:A minimal C++ library by Anonymous Coward · · Score: 1

      Modern C++ Design bent my brain. I had to read it at least 3 times at first. Then I started using his loki library. It made for incredibly better code when all was said and done.

      Anyone not willing to improve their skillset or understanding of their own toolbox will just stagnate.

  4. Knuth? by arth1 · · Score: 3, Interesting

    No love for TAoCP?

    1. Re:Knuth? by Anonymous Coward · · Score: 0

      I was surprised by that too. Perhaps Stack Overflow is simply too applied for that book to make the top list.

    2. Re:Knuth? by Anonymous Coward · · Score: 0

      TAoCP has a lot of value in an academic sense, and someone who has studied it could arguably be at a higher level than someone who hasn't ... but it doesn't have a lot of immediate, practical solutions to the types of problems that most people are going to be facing with today's technologies. I say this as someone who has the box-set sitting on my bookshelf. I study it because I want to challenge myself. But as someone who needs to perform today, and solve problems using technologies that are many levels removed from what TAoCP teaches in great detail, it just doesn't really apply.

      TFA is about books mentioned in answers to questions on Stack Overflow. If someone is having a specific problem that they have been unable to solve themselves, and a well-meaning person wants to help them by recommending books that will point them in the right direction, giving them TAoCP is not going to help. The only question that TAoCP would be an appropriate response to is "I feel like I've plateau'd, I've already read Gang of Four, Clean Code, every pattern book I can find ... I'm curious about lower-level stuff and *really* understanding algorithms, you know the type of stuff that today's tools completely encapsulate for me so that I don't have to think about ... please point me in the right direction." That's not the type of question most commonly asked on SO.

    3. Re:Knuth? by Anonymous Coward · · Score: 0

      No love for TAoCP?

      Who can afford it?

    4. Re:Knuth? by computational+super · · Score: 1

      practical solutions to the types of problems that most people are going to be facing

      Agree - I'm halfway through volume 2 now, attempting to work every single exercise with a rating OpenID bridge or migrating all the Maven build scripts to Gradle or whatever the buzzword of the day is. I still recommend the books: I think reading Knuth makes you a better programmer in the sense that learning to play the piano or chess or a foreign language makes you a better programmer by "unlocking" parts of your brain that don't get exercised that often, but I don't see any practical solutions to modern problems in there.

      --
      Proud neuron in the Slashdot hivemind since 2002.
    5. Re:Knuth? by computational+super · · Score: 1

      I don't know what the hell slashdot did with that comment, but the middle half is missing. I can't delete it, either, so just disregard it. I was agreeing with OP.

      --
      Proud neuron in the Slashdot hivemind since 2002.
    6. Re:Knuth? by Anonymous Coward · · Score: 0

      Great tome. Truly great. But hard to implement from. The pseudo code from Cormen and Rivest is more useful.

    7. Re:Knuth? by david_thornley · · Score: 1

      A lot of the specifics in TAoCP are simply not relevant in a practical way anymore. (Disclaimer: I read the original volumes 1, 2, and 3 multiple times when I was significantly younger, and have only leafed through the volume 4 fascicles.) I can't see myself implementing a sort algorithm in C++ for anything besides amusement or exploration or something like that, when std::sort is much less typing and less error-prone. The stuff on external sorting is almost all on tape sorts. There's a long section on random numbers, and it doesn't even cover the algorithms in the C++ standard library. All the assembly language and machine code is based on MIX and MMIX, and MIX is antique. Knuth's algorithm complexity analysis is way overpicky.

      I couldn't recommend it to someone learning to program anymore. There's still a lot of good stuff in it, and someone more advanced would learn from it, but for pretty much everything it covers there's less rigorous but more useful books.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    8. Re: Knuth? by kenlevasseur · · Score: 1

      It makes the list with "Math" and "math/CS" tags.

  5. Dummies are idiots too... by __aaclcg7560 · · Score: 4, Insightful

    If I'm unfamiliar with a subject, I'll read a Dummies book. Sometimes I'll read an Idiot book. Both are excellent resources for diving into a new subject.

    1. Re:Dummies are idiots too... by Anonymous Coward · · Score: 0
    2. Re:Dummies are idiots too... by Anonymous Coward · · Score: 0

      I just can't get past the names. My ego is too big for me to carry around a book that says "Java for Dummies", no matter how well written or informative it is.

      Maybe I could hide it inside a Penthouse magazine...

    3. Re:Dummies are idiots too... by computational+super · · Score: 1

      My ego is too big for me to carry around a book that says "Java for Dummies"

      I cross out "dummies" and write "geniuses" over the top of it. So far nobody's called me out on it.

      --
      Proud neuron in the Slashdot hivemind since 2002.
    4. Re:Dummies are idiots too... by __aaclcg7560 · · Score: 1

      I just can't get past the names. My ego is too big for me to carry around a book that says "Java for Dummies", no matter how well written or informative it is.

      I never had that problem. People take one look at me and assume the worst. So I play into their low expectations, find the one job that no one else wants to tackle, and do such an exceptional job that people think I'm a miracle worker. The people who should have done the job that I just finished look like dummies.

    5. Re:Dummies are idiots too... by Anonymous Coward · · Score: 0

      > My ego is too big for me to carry around a book that says "Java for Dummies"

      I'd be embarrassed too - those older programmers can be really ruthless picking on you Java kids... might as well be carrying a flute case to school!

    6. Re:Dummies are idiots too... by Tablizer · · Score: 1

      I'm too lazy for that, I just change "D" to "M" and mumble about brains.

    7. Re: Dummies are idiots too... by Anonymous Coward · · Score: 0

      I have no shame that I have in fact read some (2, maybe 3 maximum) of the Dummy books. What I can say with 100% honesty, is that not a single one of them were helpful to me personally whatsoever. I thought they would be a light fundamental overview, instead they are more of a novelty and joke, which just makes me angry after reading them. Those books are for true idiots, and the "branding" is what most people fall for. -Avoid these titles where possible. One dipshit (has a phd in mathematics) where I work was being a complete fucking moron, so I got rid of my last Dummy book and told him after he was done reading it, then he was allowed to speak with any IT staff. Point here was that I got rid of the title as an insult, not that it would validate and qualify the individual, since I can't fix stupid.

    8. Re:Dummies are idiots too... by Anonymous Coward · · Score: 0
    9. Re:Dummies are idiots too... by Tablizer · · Score: 1

      Fastidious and Anal Retentive are not the same thing

    10. Re:Dummies are idiots too... by Anonymous Coward · · Score: 0

      You brought this on yourself. Sheldon, get 'im!

    11. Re:Dummies are idiots too... by Anonymous Coward · · Score: 0

      I'm looking for OMFG You're A Moron For Buying This Node.js Book

  6. Code Complete is 24 years old by Anonymous Coward · · Score: 1

    Hard to believe the original came out before the internet was even a thing back in 1993. I still have my copy from 1995 when I was but a teenager in college. Twas money well spent.

    1. Re:Code Complete is 24 years old by Tablizer · · Score: 1

      came out before the internet was even a thing

      In theory the "WebTubes" shouldn't influence our programming languages and techniques much, but for some reason it did. The way state is typically managed and kept (or not kept) in web apps, however, did end up influencing the languages, along with the emphasis on string handling for marshaling of info and variables to and from HTTP and HTML. In a mature environment, API's and session-friendly thread handling would hide or simplify most of such nitty gritty.

      Perhaps orgs didn't want to wait for the tool stacks to mature before producing software for the web such that languages "closer" to webbativity got usage early, locking them in as de-facto standards.

    2. Re:Code Complete is 24 years old by cant_get_a_good_nick · · Score: 2

      The web wasn't a thing in 93. The Internet was definitely a thing,

      simtel. wuarchive. sumex-aim. sunsite. All the big ftp sites, and searches were Archie. That and netnews. alt.barney.dinosaur.die.die.die

    3. Re:Code Complete is 24 years old by __aaclcg7560 · · Score: 2

      Back then you could buy the Internet Yellow Pages at the bookstore to find everything on the Internet.

      https://www.amazon.com/Internet-Yellow-Pages-3rd/dp/0078821827/

    4. Re:Code Complete is 24 years old by plover · · Score: 2

      All the big ftp sites, and searches were Archie.

      Gopher, you heathen. Now go jump in a volcano.

      --
      John
    5. Re:Code Complete is 24 years old by cant_get_a_good_nick · · Score: 1

      I dabbled in gopher, but did a lot more in ftpsace and netnews than gopher. It grew and died in a very short timespan. I started my first professional webserver 93 or 94 or so, the EMWAC webserver on a DEC Alpha running WinNT 4.0

      I did install and run an oddball Mac gopher client that for some reason used 3d rendering for pages and gopher daemons. Was cool, i played for like an hour, and then never ran it again.

    6. Re:Code Complete is 24 years old by zaft · · Score: 1

      That and netnews.alt.wesley.crusher.die.die.die

      FTFY

    7. Re:Code Complete is 24 years old by cant_get_a_good_nick · · Score: 1

      :) I remember that one. Sadly, because I posted, no mod points...

  7. Blowing smoke? by Tablizer · · Score: 4, Interesting

    I didn't get Design Patterns. It was still unclear on when to use what, and why. Many of the alleged limitations of the alternatives are language-specific. Sure, Java sucks at some things, C++ at others, etc. The real issues in comparing among design choices are subtle and complex.

    1. Re:Blowing smoke? by Tablizer · · Score: 2

      So YOU are the one taxing our shared cloud servers!

    2. Re:Blowing smoke? by Anonymous Coward · · Score: 2, Insightful

      This is the attitude that means somebody else ends up fixing your code when it gets scaled up (and I've been on the short end of that stick many times). Understanding the difference between a O(n) and O(log(n)) operation can't be hand waved away 'because hardware'. The only time it might become 'irrelevant' is when we get quantum computing and the operational complexity rules change dramatically.

    3. Re:Blowing smoke? by Anonymous Coward · · Score: 0

      This is the attitude that means somebody else ends up fixing your code when it gets scaled up (and I've been on the short end of that stick many times). Understanding the difference between a O(n) and O(log(n)) operation can't be hand waved away 'because hardware'.

      So people are writing code faster than ever, you've got job security because of it, and you're sitting here whining about it in terms that are essentially preaching to the choir (you expect those hacks to understand your big-O notation?)?

    4. Re:Blowing smoke? by bondsbw · · Score: 1

      Yes and no. It's true that desktop and server hardware is vastly better now than a couple of decades ago. But the computer that most people use today is their smartphone... which is not only more limited in processing power and memory, but has additional constraints such as battery, connectivity, and capability allowed by the OS.

      --
      All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
    5. Re:Blowing smoke? by Anonymous Coward · · Score: 0

      You want to get real? Open a book on algorithm performance analysis and do some studying.

    6. Re:Blowing smoke? by phantomfive · · Score: 1

      That's like a joke about time-share systems refactored to fit in the cloud....

      --
      "First they came for the slanderers and i said nothing."
    7. Re:Blowing smoke? by Anonymous Coward · · Score: 0

      I really doubt that a quantum computer will do the trick.

      Talking with people in the field (mainly in the experimental challenges of it) I gather that the truly
      useful quantum computers are going to be domain specific (for example simulate a very narrow
      set of chemical reactions, nuclear scattering cross sections, etc). Instead the general
      purpose quantum computer, if it ever attain a practical size, in number of qubits, only will
      speed up just a few well studied problems, and nothing else (for example number factorization).
      In the other hand, if P = NP....

    8. Re:Blowing smoke? by Anonymous Coward · · Score: 0

      fancy algorithms are slow when n is small. n is usually small. --rob like

      to make matters worse, it's not often clear at the outset when n might be large.
      or what code might need to be scaled up. funny enough I seldom see fixes for
      these gaffes, just work arounds. the universe seems to conserve good programming
      preferring good enough.

    9. Re:Blowing smoke? by plover · · Score: 2

      The value I got from Design Patterns is that these were describing the solutions to actual problems I had already had to solve on my own (often not as well), and they covered the side effects of those solutions, some of which I hadn't thought too much about before reading the book. (The observer pattern creates hidden long-term maintenance dependencies on the semantics of the data published by the subject, for example. That was really useful to me when I hadn't yet recognized the problem.)

      However, once it was published it seemed that every Tom, Dick, and Bjarne published a book like "23 More Design Patterns" "Web 2.0 Design Patterns", "Design Patterns that Won't Clash With Stripes and Pastels", "Summer Design Patterns to Take to the Beach", etc. They were so specialized as to be almost entirely useless. Yes, the GoF book had a few shortcomings, but its real value to me came from the idea that we could name these things, study them, and understand them. When I read it in the 1990s I thought that was pretty darn novel.

      --
      John
    10. Re:Blowing smoke? by lgw · · Score: 1

      As someone who provides cloud servers, let me just say: I love that guy. That guy rock. Never change, Java, never change.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    11. Re:Blowing smoke? by lgw · · Score: 1

      nderstanding the difference between a O(n) and O(log(n)) operation can't be hand waved away

      It almost always can these days. If your server isn't CPU-bound, it just doesn't matter. And if you're running a typical (memory-constrained) cloud server, O(log(n)) is just another way of saying 30 * O(n). If you're worried about a flat 30x CPU performance hit, but you're using Java (as most people do these days), then you've made a series of poor choices.

      But I say that assuming that everyone uses hashtables for everything these days, so anyone that ends up O(log(n)) would likely take non-trivial work to improve, something beyond "use the right library class" such as "you don't need to sort that data to solve this, just be a bit clever". Dev time might well be better spent elsewhere, as fun as "being clever" might be.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    12. Re:Blowing smoke? by Anonymous Coward · · Score: 0

      That's because time is money and we aren't paid for perfection and people who obsess over it tend to not so much get fired as never get promoted to management. Coders are snobs and that's all well and good on forum, but in the real world no one cares.

    13. Re:Blowing smoke? by Anonymous Coward · · Score: 0

      bingo!

    14. Re:Blowing smoke? by Tablizer · · Score: 2

      Mainframes and mini-computers were the original cloud machines. It was cheaper to rent a slice and dial (modem) into them than to buy an on-premises machine. The fat-client viewpoint is a relatively new thing.

    15. Re:Blowing smoke? by Anonymous Coward · · Score: 0

      O(log(n)) is just another way of saying 30 * O(n)

      Seriously? Do you even know what a logarithm is?

    16. Re:Blowing smoke? by ChrisMaple · · Score: 1

      I hope you never do Fourier transforms.

      --
      Contribute to civilization: ari.aynrand.org/donate
    17. Re:Blowing smoke? by lgw · · Score: 1

      Seriously. Do you know what the log (base 2) of a billion is? Math, my friend, math.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    18. Re:Blowing smoke? by Anonymous Coward · · Score: 0

      The problem is that you have one guy producing huge amounts of garbage that barely works as a toy and becomes the guy "Who gets things done." while you take loads of time doing it right and turning it into a decent product but the managers complain "Oh you're so much slower than the genius." Then layoff time comes and guess who goes first?

    19. Re:Blowing smoke? by Anonymous Coward · · Score: 0

      Wait a sec, if N = 1,000,000,000 and I have 2 algorithms, one requiring O(N) operations and the other O(Log(N)) then the first requires 1,000,000,000 operations while the second requires about 30. Did you mean to compare O(N) with O(NLog(N))?

    20. Re:Blowing smoke? by lgw · · Score: 1

      Yes, yes, it's not like you can edit /. posts after all. None of that 21st century technology here.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    21. Re:Blowing smoke? by Anonymous Coward · · Score: 0

      Feigned Outrage at Unwitting Culprit. It wasn't in the original Go4 book, I don't think.

  8. Very limited search by Anonymous Coward · · Score: 1

    Only picks up books with valid amazon.com links. There are many more books mentioned than that, I often recommend books but dont put links, just title and author

  9. K&R by Anonymous Coward · · Score: 1

    I feel like The C Programming Language book didn't make it because no one refers to it by it's name. It seems like every C question ever results in a reference to that book.

    1. Re:K&R by CByrd17 · · Score: 2

      It did make it, just not into the top 10.

      It's number 11.

    2. Re:K&R by gnu-sucks · · Score: 1

      This is the one paper book that I still keep at-hand for programming. There is no substitute, it is the best. Simple and clear.

      It's too bad that C++ is so flexible that such a straight-forward book cannot ever be written for C++.

  10. I would expect tech geeks to be reading... by Anonymous Coward · · Score: 1

    I figured most tech geeks would be referencing a book such as, "How to meet women", much more regularly than programming literature.

    1. Re:I would expect tech geeks to be reading... by cant_get_a_good_nick · · Score: 1

      My wife would kick my ass.

    2. Re:I would expect tech geeks to be reading... by Anonymous Coward · · Score: 0

      Nah, meeting women is easy... the hard part is to get them to stop instead of running away screaming

    3. Re:I would expect tech geeks to be reading... by Anonymous Coward · · Score: 0

      The interface is straightforward; it's the protocols that are tricky.

  11. W Richard Stevens by cant_get_a_good_nick · · Score: 2

    The Stevens Networking book is still up on the list, I'm very glad.

    I remember a story about him and his kid. They went to go to Wayne's World 2, and in the movie they show his book. His son, "dad you're so cool, that's your book". Yes, you were cool. RIP....

    1. Re:W Richard Stevens by Anonymous Coward · · Score: 0

      "Advanced Programming in the UNIX Environment", by Stevens and Rago should be in the top ten.

  12. A must read book - design and evolution of C++ by SuperKendall · · Score: 2

    One thing I didn't see on the list but I consider a must-read book for any programmer, is The Design and Evolution of C++. It helps if you've worked with C++ but is not a requirement; the book is really good more because you learn how a programming language comes to be, and the thought that goes into how it works.

    If you dislike some parts of C++ you will find fun supporting material here also... but really it's a great way to help you see all programming languages form the other side.

    On a side note if you do like this you may want to look sometime into some of the Swift commonly rejected changes document, that gives you insight into a modern programming language as it forms. An amusing aspect is that it used to be called the "Commonly Proposed" document, as you can tell from the URL and file name...

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  13. NO!! not something actually USEFUL on ./ by Anonymous Coward · · Score: 0

    but muh social agendas...

  14. Are these weighted by Anonymous Coward · · Score: 0

    Did they look at which books are mentioned in upvoted answers? Discussing books in answers doesnt make them useful at all, but referring to a book in an answer and that answer being community voted as of high quality gives me a lot more confidence in the recommendation. I mean, Google hits for "the art of the deal" total 48 million, while Diary of Anne Frank only 5 million... but I know which is the more influential and overall better piece of literature.

  15. Missing from the list by OhSoLaMeow · · Score: 1

    50 Shades of Gray Code.

    --
    They can take my LifeAlert pendant when they pry it from my cold dead fingers.
    1. Re:Missing from the list by Anonymous Coward · · Score: 0

      50 Shades of Gray Code.

      Ahh yes, god ole 101011. A bit painful to read but helpful once it is decoded.

  16. You are actually wasting your time by Martin+S. · · Score: 1

    He has been trolling about OO since usenet and Design Patterns since Kent's wiki and I see he still fails to grasp the basics after nearly 20 years and hundreds of people to educate him.

  17. SO's List of freely available programming books by Anonymous Coward · · Score: 0
    This has been removed from StackOverflow since I bookmarked it years ago, but here's an archive of Stack Overflow question List of freely available programming books:

    I'm trying to amass a list of programming books that are freely available on the Internet. The books can be about a particular programming language or about computers in general.

    What are some freely available programming books on the Internet?

  18. I'm surprised I have some... by iampiti · · Score: 1

    I'm surprised I have some of the top 10 since I have relatively little tech books.
    I can totally recommend Head first design patterns. Some chapters are a bit repetitive as they explain the specific pattern too many times but it's got a teaching style that makes you think and so the knowledge acquired stays with you.

  19. Missing book by Anonymous Coward · · Score: 0

    I'm missing Effective Java by Josh Bloch from that list. I have seen it mentioned many times on SO.

  20. Nobody writes computer books anymore by Anonymous Coward · · Score: 1

    Notice how the suggested books are old. That's because nobody bothers writing computer books anymore. The information gets out of date too quickly and nobody wants to pay for tech info when they can get it "free" off the Internet from blogs, etc., even if it takes forever to find and piece together. Nothing can compete against free.

  21. No mention of the classics by BubbaJonBoy · · Score: 1

    The list is incomplete without Fred Brooks "The Mythical Man Month".
    I still think it's required reading before you're allowed to participate in any aspect of code.

    1. Re:No mention of the classics by david_thornley · · Score: 1

      Like Knuth, this has fallen off my list of must-reads. There's a lot of it that's only relevant to 1960-era software development, some stuff that's wrong (the part on information hiding, for example), and some stuff that's common knowledge. If someone is going to read it anyway, they should get the Silver Anniversary edition, which has corrections and some good new insights.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes