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.

18 of 92 comments (clear)

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

    A best seller!

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

    2. 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.
  3. Knuth? by arth1 · · Score: 3, Interesting

    No love for TAoCP?

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

  5. 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 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
    4. 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.

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

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

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

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

    It's number 11.

  9. 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/

  10. 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
  11. 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
  12. 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