The Most Mentioned Books On StackOverflow (dev-books.com) 92
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.
How to train your foreign replacement (Score:5, Funny)
A best seller!
Wow, I've got a lot of those (Score:5, Interesting)
Granted, most of these are not the current editions (haven't bought a book in over 10 years now), but I've got em.
Re: Wow, I've got a lot of those (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!
Re: (Score:2)
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?
Re:Wow, I've got a lot of those (Score:4, 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.
Re: (Score:3)
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?
Re: (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?
Re: (Score:3)
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
Re: (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.
Knuth? (Score:4, Interesting)
No love for TAoCP?
Re: (Score:2)
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
Re: (Score:2)
Re: (Score:2)
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 o
Re: Knuth? (Score:1)
Dummies are idiots too... (Score:5, Insightful)
Re: (Score:2)
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.
Re: (Score:1)
I'm too lazy for that, I just change "D" to "M" and mumble about brains.
Re: (Score:1)
Fastidious and Anal Retentive are not the same thing
Re: (Score:2)
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.
Code Complete is 24 years old (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.
Re: (Score:1)
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.
Perha
Re: (Score:3)
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
Re: (Score:3)
All the big ftp sites, and searches were Archie.
Gopher, you heathen. Now go jump in a volcano.
Re: (Score:2)
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.
Re: (Score:1)
That and netnews.alt.wesley.crusher.die.die.die
FTFY
Re: (Score:2)
:) I remember that one. Sadly, because I posted, no mod points...
Re: (Score:3)
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/ [amazon.com]
Blowing smoke? (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.
Re: (Score:2)
So YOU are the one taxing our shared cloud servers!
Re: (Score:2)
Re: (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.
Re: (Score:2)
As someone who provides cloud servers, let me just say: I love that guy. That guy rock. Never change, Java, never change.
Re: (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.
You are actually wasting your time (Score:2)
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.
Re: (Score:2)
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 t
Re: (Score:2)
Seriously. Do you know what the log (base 2) of a billion is? Math, my friend, math.
Re: (Score:2)
Yes, yes, it's not like you can edit /. posts after all. None of that 21st century technology here.
Re: (Score:2)
Re: (Score:2)
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.
Re: (Score:3)
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
Very limited search (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
K&R (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.
Re: (Score:2)
It did make it, just not into the top 10.
It's number 11.
Re: (Score:2)
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++.
I would expect tech geeks to be reading... (Score:1)
I figured most tech geeks would be referencing a book such as, "How to meet women", much more regularly than programming literature.
Re: (Score:2)
My wife would kick my ass.
W Richard Stevens (Score:3)
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". [salon.com] Yes, you were cool. RIP....
A must read book - design and evolution of C++ (Score:3)
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++ [amazon.com]. 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 [github.com] 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...
Missing from the list (Score:2)
I'm surprised I have some... (Score:2)
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.
Nobody writes computer books anymore (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.
No mention of the classics (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.
Re: (Score:2)
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.