7 ms·
Programmers Don't Read Books – But You Should (2008)
- RyanOD 2y agoMaybe consider a subscription to Safari Bookshelf instead. Everywhere I've ever worked, they've been happy to foot the bill for an annual subscription so I have a deep reference library.
- felixnm 2y agoA few years ago, O'Reilly had a 60% off sale for an annual subscription, which I promptly took advantage of. I've been paying only $200 per year ever since. Not sure if they still have that deal.
- RyanOD 2y agoYes, $200 per year is a great deal. For those who are ok with reading digital content, Safari is where it's at, in my opinion.
- minkles 2y agoI don't read programming books any more because they are mostly shit or expensive or expensive and shit. The hit rate of finding a good one is so low it's easier to just fudge your way around a problem using some idiom you're already experienced with. Just ambling around the book store earlier I saw a 3 inch think tome around Go programming called Pro Go or something. I opened it and it was a whole book of instructional copy and paste recipes that span 10 pages for a simple problem. Urgh. This is the status quo now and it has been for a long time. I walked out with a book on pure mathematics instead - probably more useful in the long run...
- latexr 2y ago> I don't read programming books any more because they are mostly shit or expensive or expensive and shit. That’s consistent with the first reason given in the article: > I lay part of the blame squarely at the feet of the technical book publishing industry: > Most programming books suck. The barrier to being a book author, as near as I can tell, is virtually nonexistent. The signal to noise of book publishing is arguably not a heck of a lot better than what you'll find on the wilds of the internet. Of the hundreds of programming books released every year, perhaps two are three are truly worth the time investment.
- minkles 2y agoThe problem is that they're written by developers. And when I say developers I mean developers, not engineers or authors. Everything is about a sausage factory, nothing more. You don't learn stuff other than copying and mimicry. And some of it is absolute monkey excrement. But when you don't know better it feels like you are learning something good. I am considering writing a bad programming book on purpose. I will call it "how to sling together a badly written Go 'enterprise' app and smear AngularJS over the top"
- Suppafly 2y agoNah, the worst ones are the ones written by authors, but who aren't developers. Especially the ones that are authors that just write a book for every new trendy language but never get to the point of actually using those languages themselves.
- jonbodner 2y agoI’m the author of Learning Go from O’Reilly, so I might be a bit biased. What I’ve found is that different publishers put different amount of effort into producing good content. O’Reilly is almost always excellent. Others are less so. It’s hard to find a dev who is willing to invest a year of their life to write a book that is likely to make almost no money. It’s doubly hard to find devs who write well. Given these filters, two or three good programming books a year sounds pretty great.
- rrishi 2y agowhat a coincidence! i am reading your book now and thoroughly enjoying it! Learning Go's quite good to get dangerous with Go quickly, so good job!
- nyarlathotep_ 2y agoMany are outdated by the time they hit the press. I recall a few years back, Packt et al would publish like "Modern React" or something, with examples that wouldn't build by the time the book was out. Typesetting is awful too, as you mentioned. A single paragraph for something dead simple is spread over multiple pages. Nothing against such authors; its fruitless to hit a moving target. Books on programming languages are the only ones I purchase these days, for those reasons. The Go book, Rust Programming language, Stroustrup's books on C++ etc are quite good and worth owning, but those are exceptions rather than the rule.
- tdeck 2y ago> I recall a few years back, Packt et al would publish like "Modern React" or something, with examples that wouldn't build by the time the book was out. This says more about React than it does about the publisher.
- biofox 2y agoChurn in the software world is out of control, and I have no idea why we accept it.
- 2OEH8eoCRo0 2y agoIt's funny because at the end of the day it's still all just instructions on a CPU. Computers essentially haven't changed in half a century. What the biggest change between then and now? Multi-core processors?
- Clamchop 2y agoI'd say GPUs and the things descended from them and how they're being used now is a pretty big development. You can still be reductionist about it, but it feels materially different from the mundane calculations and algorithms that sprung to mind when I read your post.
- 2y ago
- djaouen 2y ago[flagged]
- geph2021 2y agoThat's exactly the author's point: Most programming books suck. Yet he has some recommendations: But I do have this call to arms: my top five programming books every working programmer should own – and read. They are: Code Complete 2 [1] Don't Make Me Think [2] Peopleware [3] Pragmatic Programmer [4] Facts and Fallacies [5] 1 - https://www.amazon.com/exec/obidos/ASIN/0735619670/codihorr-20?ref=blog.codinghorror.com https://www.amazon.com/exec/obidos/ASIN/0735619670/codihorr-... 2 - http://www.amazon.com/exec/obidos/ASIN/0321965515/codihorr-20?ref=blog.codinghorror.com http://www.amazon.com/exec/obidos/ASIN/0321965515/codihorr-2... 3 - http://www.amazon.com/exec/obidos/ASIN/0932633439/codihorr-20?ref=blog.codinghorror.com http://www.amazon.com/exec/obidos/ASIN/0932633439/codihorr-2... 4 - http://www.amazon.com/exec/obidos/ASIN/020161622X/codihorr-20?ref=blog.codinghorror.com http://www.amazon.com/exec/obidos/ASIN/020161622X/codihorr-2... 5 - http://www.amazon.com/exec/obidos/ASIN/0321117425/codihorr-20?ref=blog.codinghorror.com http://www.amazon.com/exec/obidos/ASIN/0321117425/codihorr-2...
- layer8 2y agoThere’s always LibGen and friends if you really can’t afford much, or to sample before buying. You can also get used copies cheaper. The pricing shouldn’t keep you from reading.
- anthk 2y agoFrom Mark Burguess I'm reading: - The Unix Programming Environment (not that one; this one it's a bit more modern). You'll get a bit of Perl instead of AWK, but it's fine. - The GNU C Tutorial. Not as good as 'The C programming language'; but still useful. - A shot Introduction To Operating Systems. Slightly outdated C++, because most of the time the issue it's just about fixing the include headers. Most of the things learned there will work as is as Perl5, ANSI C/GNU C and so don't change a lot over time, if any.
- dayvid 2y agoThe really good books are REALLY good, though. But the only places I've seen them were at university bookstores (and even then mainly MIT/Stanford) or Amazon when they had physical stores. Otherwise you have to get them online
- yimmothathird 2y agoI saw an HN thread a while back where someone recommended a comprehensive book on some networking subject. I'm sure it was a good book, I was floored when I saw physical copies being sold fucking $700. Unfortunately, a lot of the technical books I wish to read fall into this grift of academic texts.
- dkwr 2y agoAnd then you also have the books which cost 60€ and aren't even printed in color. I mean it makes sense for ecological reasons, but I can get books for 19€ that are colorized. It would be a much better reading experience if some boxes would actually show colorized instead of different shades of grey.
- mandevil 2y agoI try and re-read Fred Brooks' _Mythical Man Month_ every year or two. That is a short series of essays that I seem to always find a "new" idea from. My most recent re-read the line that stuck with me was "plan to throw one away. You will anyhow." What I took from that given the situation I was in at time was that the best way to build an abstraction is to build the first one without any abstraction, and only then, when you understand how whatever is being abstracted will be used, try and build the abstraction layer, rather than starting with the attempt at abstraction. There are other ways to interpret it- it can point you to a more Agile design philosophy even though he was writing decades before the Agile Manifesto.
- jll29 2y agoSome counter-examples: - Structure and Interpretation of Computer Programs - C Interfaces and Implementations - Design Patterns - Compilers: Principles, Practice and Tools Each of these should make you go "a-ha!", in its own way.
- vsuperpower2021 2y agoDesign Patterns is your suggestion of a book that isn't shit? Even the list of "a-ha" books has random landmines tossed in.
- johncessna 2y agoThe Gof book should be on the list, but I agree that it suffers from similar problems that a lot of first-of-their-kinds do. There are iterations on it that are a much better read.
- vsuperpower2021 2y agoThis also isn't a programming book. It's a business methodology book that is probably more harmful than beneficial.
- johnchristopher 2y agoNone of you I proposing better alternatives though nor what is wrong with it though.
- larve 2y agoI actually find the quality of programming books to have starkly increased in the last decade. I find a lot of manning's and o'reilly's release to have a pretty long shelf-life. For example, I really enjoyed and often go back to: - https://www.oreilly.com/library/view/building-event-driven-microservices/9781492057888/ https://www.oreilly.com/library/view/building-event-driven-m... - https://www.oreilly.com/library/view/designing-data-intensive-applications/9781491903063/ https://www.oreilly.com/library/view/designing-data-intensiv... - https://www.manning.com/books/100-go-mistakes-and-how-to-avoid-them https://www.manning.com/books/100-go-mistakes-and-how-to-avo... - https://www.amazon.com/Systems-Performance-Brendan-Gregg/dp/0136820158 https://www.amazon.com/Systems-Performance-Brendan-Gregg/dp/... And more recently: - https://www.manning.com/books/build-a-large-language-model-from-scratch https://www.manning.com/books/build-a-large-language-model-f... - https://www.manning.com/books/the-creative-programmer https://www.manning.com/books/the-creative-programmer - https://www.manning.com/books/the-programmers-brain https://www.manning.com/books/the-programmers-brain - https://www.amazon.com/Understanding-Software-Addison-Wesley-Professional-Computing/dp/0137589735 https://www.amazon.com/Understanding-Software-Addison-Wesley... I also find books about specific technologies that indeed run the risk of being deprecated after a few years to be useful too - https://www.oreilly.com/library/view/networking-and-kubernetes/9781492081647/ https://www.oreilly.com/library/view/networking-and-kubernet... - https://www.brendangregg.com/bpf-performance-tools-book.html https://www.brendangregg.com/bpf-performance-tools-book.html Furthermore, nothing keeps you from reading books about topics peripheral to computer science, say to keep up with the general vibes: - https://www.amazon.com/Probabilistic-Machine-Learning-Introduction-Computation/dp/0262046822 https://www.amazon.com/Probabilistic-Machine-Learning-Introd... - https://www.amazon.com/Deep-Learning-Foundations-Christopher-Bishop/dp/3031454677 https://www.amazon.com/Deep-Learning-Foundations-Christopher... - https://www.amazon.com/Joy-Abstraction-Exploration-Category-Theory/dp/1108477224 https://www.amazon.com/Joy-Abstraction-Exploration-Category-... I find that all of these contribute significantly to my growth as an engineer.
- layer8 2y ago> I actually find the quality of programming books to have starkly increased in the last decade. I suspect this might be a side-effect of programmers buying less books. The ratio of authors who write them because they really care instead of because they hope to make some bucks would then increase.
- smusamashah 2y ago" The Design of Everyday Things" is a great non-programming book that programmers should read. It tells you why/how you should make things more usable for your users. If you find yourself failing to use something properly, it's not you being stupid, it's the design. Design of doors is famously known example from this book.
- jbs789 2y agoI often think about the idea that a good design takes information from the world (or the users head) and puts it into the system, reducing cognitive load. So if a door needs to be pushed, put a push plate on it, rather than requiring the user to remember to push the handle. Think about it when labelling buttons quite a bit, for example. Or workflows.
- smusamashah 2y agoOr even when writing code, think about whoever is going to read or use your code. Another idea was about suggestive nature of design. If top of a small wall is flat, practically it's asking you to put your empty can on it.
- taeric 2y agoAmusingly, I thought Code Complete was disliked now? I thought it was fun, but definitely over sold on things. I liked the other ones, even if I don't remember take aways from them at the moment. I do reject the Knuth observation here. Annoyingly, most criticism you will ever see of a Knuth book are from people that never read them. Not that I don't get the point, as following closely behind that group are those that bought but never read them. Especially with the newer volumes, there are a lot of very fun topics covered. And, sure, you are best not putting together many of the low level things that are covered in those books. But... you are also best not blindly following whatever is in the other books, too? Again, many folks dislike Code Complete for fairly solid reasons.
- Jtsummers 2y agoCode Complete seems more forgotten than disliked these days (rarely mentioned, either for or against). Clean Code is the one that, when you mention it, brings out all the negative comments.
- taeric 2y agoAh, makes sense! I am pretty sure I've read them both. I'm not too surprised that I would mistake them for each other. Will have to look back at Code Complete. :D
- koinedad 2y agoComputer programming books have a special place in my heart. I really like the idea of them. I think my brain is limited in how much it can retain from a book vs things I see and encounter daily though. My memory is optimized for urgent/important/daily use. There’s a lot of non-programming books I really enjoy though as well.
- ofrzeta 2y agoAnother good book (also quite timeless) is Osterhout's Philosophy of Software Design (though it's less philosophical than the title might suggest).