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.

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

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

    No love for TAoCP?

    1. 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.
    2. 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.
    3. 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
    4. Re: Knuth? by kenlevasseur · · Score: 1

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

  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.

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

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

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

      Fastidious and Anal Retentive are not the same thing

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

  6. 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 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.
    4. 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."
    5. 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
    6. 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.
    7. 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.
    8. 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.

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

      I hope you never do Fourier transforms.

      --
      Contribute to civilization: ari.aynrand.org/donate
    10. 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.
    11. 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.
  7. 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

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

  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.

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

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

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

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

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

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