29 ms·
Books Programmers Don't Really Read (2008)
- kuharich 10y agoPrevious discussions: http://news.ycombinator.com/item?id=1297536 http://news.ycombinator.com/item?id=1297536 http://news.ycombinator.com/item?id=3754545 http://news.ycombinator.com/item?id=3754545
- orsenthil 10y agoWow! did not know that this surfaces time and again. I think, we need meta-post which says Posts that HackerNews readers don't really read.
- chuymax 10y agoAdd the article on Big O notation to that meta-post please! Maybe it's the influx of new people to the site that upvote these articles?
- eicossa 10y agoHow do you keep track of previous HN threads about a URL ?
- mturmon 10y agoClick the "past" link at the top of the thread. Very useful feature added some months ago.
- doctorpangloss 10y agoCue the circus of people who argue over the contents of this list, despite having actually used the learnings from books only in job interviews. There are so many developers (like your peers at work) who have literally read none of these books. In a Darwinian sense, isn't that evidence that there's nothing so special about these texts for what you do? Skip the books and just memorize what's on Interview Cake. I love that site. It so brilliantly subverts the academic pretensions of every industrial software development shop. So many people will have memorized so precisely the solutions to programming test questions that they stop being useful. Engineering managers will be unable to come up with novel questions, because they will have no benchmarks. Then the madness will end: Computer Science will get less popular in university again, and this notion that these Gospels have All the Answers will go away.
- Godel_unicode 10y agoI genuinely feel bad for people who have only used the learnings from these books in job interviews. Either they've never had to work on a really Hard Problem, or worse they have tried to solve such a problem without the hard-won lessons present in these books.
- doctorpangloss 10y ago> a really Hard Problem I've heard senior recruiters express skepticism about candidates who say they're into "Hard Problems." Experienced engineering managers usually hear that phrase when you're looking for a lifestyle and you don't really care what the application is. For example, "I have no qualms that your business arbitrages nonconverting clicks from bots and sketchy web traffic (i.e., 99% of the Internet) into Google AdWords revenue, using up a Google customer's ad budget until the customer has barely made a profit... You see, I'm into Hard Problems. Besides, bots don't click twice! It must be real traffic!" It turns out that junior people on the interview team care a lot more about Hard Problems and the stories in these books than senior people do. And you'd never want your hiring pipeline run by junior people. In my opinion, Google's focus on Hard Problems has robbed academia of all the sincere Hard Problems people. Then, they've ruined the interview process for everyone else, ironically with the book How Google Works, convincing CEOs that they should be asking about C.S. fundamentals and Hard Problems totally unrelated to their Actual Problems.
- tracker1 10y agoTo me the funny thing is the small companies with 2-3 developers hiring like they are google with interviews over the course of weeks, with google/amazon-like gauntlets. You aren't google, you aren't paying google-level salaries, why are you pretending you are. That said, I happen to like problems in general... not necessarily "hard" problems, but just new problems. I also like working in new domains... I mean what other industry of work allows you to work in education, aerospace, banking, security and marketing in a decade and a half.
- 10y ago
- lucidguppy 10y agoI do like the C++ programming language book. It has a really nice introduction in the first quarter of the content. It has good no nonsense examples.
- perrygeo 10y ago> I've read all of these books myself, so I have no difficulty believing that many moderately competent programmers have read them as well. If you're interested enough in programming that you're reading this blog, you've probably read most, if not all of the books in this list That is some gross arrogance on full display right there. If you're as good as me, surely you've read all these books. Any other books... flawed in ways you should be ashamed of.
- justinlardinois 10y agoAgreed. At risk of sounding like an idiot, the K&R C book and Mythical Man-Month are the only books on that list I've even heard of, and I haven't read either of them. Also, he gives "more of a language reference" as a reason for not reading Stroutstrup's C++ book. Doesn't the same apply to K&R?
- cwingrav 10y agoThis is a good reading list. You should probably pick up a copy of these, flip through them and see why they are so recommended. Having not done something doesn't make you an idiot. Having an opportunity and a recommendation, and rejecting it for no good reason... that could be different.
- userbinator 10y agoC is a far smaller language than C++, and perhaps the writing style of K&R is somewhat more accessible. Stroustrup's book does have some parts that give an "I invented this language, see how awesome it is" impression, whereas K&R is quite unopinionated and neutral.
- OrthoMetaPara 10y agoNo. Save for the appendices, K & R can be completed and understood in a weekend. It's kind of fun to read and to work through the problems, even if you rarely use C. The Sepples book, on the other hand, is an encyclopedia. I don't know why anyone would want to read that unless he had to. In 2016, however, I think that a lot of people would have read CLRS, even if they haven't read ALL of it. It's used as the reference text by a lot of university courses on algorithms.
- GuiA 10y agoThe Gang of Four patterns book is one of those books that you should probably only read when you already have decent experience writing non trivial software. If you do so, it will formidably crystallize knowledge you've been acquiring subconsciously. You'll have probably been having gut feelings about why certain things are wrong or clunky and others are elegant, and Design Patterns will give you a vocabulary to describe these things. If you read it as a beginner, the subtleties of it all will go over your head, and you'll end up trying to cram design patterns everywhere without much sense or reason.
- userbinator 10y agoThe same might apply to Head First Design Patterns: https://blog.codinghorror.com/head-first-design-patterns/ https://blog.codinghorror.com/head-first-design-patterns/
- johan_larson 10y agoThe problem with the design patterns books (including the GoF one) is that in the end they didn't have much influence. Think of how few of their patterns have become part of the vernacular of our field: Iterator, Singleton, Factory, Adapter, and maybe one or two more. It's not a long list. If you insist on talking in terms of design patterns, you are going to have to explain nearly all of them to your listeners. Insofar as the authors' goal was to create a shared language of patterns we could use for clearer communication of designs, they fell well short.
- shagie 10y agoHaving seen far too many questions on sites about software design where someone starts out with "How do I use a Factory to solve...", I would contend that the GoF had far too much influence and missed the designer's original goals. > Trying to use all the patterns is a bad thing, because you will end up with synthetic designs—speculative designs that have flexibility that no one needs. These days software is too complex. We can't afford to speculate what else it should do. We need to really focus on what it needs. That's why I like refactoring to patterns. People should learn that when they have a particular kind of problem or code smell, as people call it these days, they can go to their patterns toolbox to find a solution. From an interview with Erich Gamma ( http://www.artima.com/lejava/articles/gammadp.html http://www.artima.com/lejava/articles/gammadp.html )
- CalChris 10y agoI'd put SICP on the better read when dead list. Fundamental Algorithms shouldn't be read anymore but at least I liked it when I read it. SICP was the text in 61A at Berkeley but there were no assigned readings from it. It was meant to be worshipped rather than read. I rather like the Dragon book but compilers have come along. The 2nd edition is an improvement. I'd add that EE20N used a Berkeley written text, Structure and Interpretation of Systems and Signals. I was in the minority and liked that book. I still have it.
- smikhanov 10y agoI read SICP for the first time in February this year, 15 years into my programming career and 12 years after graduating from a CS department. It's a very easy and enjoyable read, even the code blocks are readable, unlike coding examples in most (all?) modern programming books. I literally loved every page of it. There's just something special in the way material is presented in SICP, in the order of topics, in the text's tone: it remains enthralling without being difficult, it teaches without being indulgent. It absolutely is meant to be read.
- sotojuan 10y agoThe tone of the book is that of learning programming and computer science for enjoyment, learning, and fun. That's what makes it timeless. A "stronger" example of this tone would be The Little Schemer series.
- catnaroek 10y agoSadly, SICP is lacking in mathematical rigor. Often, the book rushes to give broken code snippets based on insufficiently deep analysis of the problem at hand (e.g., interval arithmetic in chapter 2), and the exercises consist in fixing the code after taking additional information into consideration. It would be preferable to first carefully write a formal specification, and then write the right program without so much trial and error.
- 10y ago
- Myrmornis 10y ago> If you're interested enough in programming that you're reading this blog, you've probably read most, if not all of the books in this list oh, really? > it's intended for the multitudes who are trying to appear smarter by pretending to have read them. As opposed to trying to appear smarter by issuing decrees to the internet about what everyone who is "interested in programming" has read.
- randlet 10y agoI think part of it was that this was written in 2008 which is forever ago in internet time. I think book learning for programmers was maybe more prevalent back then. I know I was significantly more likely to read a programming book 8 years ago when the quality of information on the internet was much lower (2008 was the year Stack Overflow was founded!)
- gozur88 10y agoI was thinking that too. The younger developers I know haven't read most of those books because the information is easily accessible on the web. When I started coding professionally you had to buy books because the information wasn't anywhere else, but today even for the more difficult subjects you can find papers and blog posts and wiki articles that cover what you want to know at different depths and from different angles.
- vizeroth 10y agoMost of the information that makes some of those books worth reading is only easily accessible on the web in the sense that it's pretty easy to find ebooks of many of those books on the web. Many people learn a lot of their development knowledge from the web (and I certainly do as well), but the majority of the web sources for material beyond basic language reference simply extract the easiest to digest parts of the major texts. This is why so much of what many people know about patterns, algorithms, data structures, and even OOP, TDD, Agile, Scrum, etc. is fragmented or even wrong.
- jfoutz 10y agoI think those books have a specific time* in people's careers. My first real programming job, a couple years in i got a large project. I'd go home and flip through the design patterns book every day. Some days, rereading the introduction, some days rereading patterns. The project came out pretty well. If i'd gotten a C++ job instead, i'd probably have torn up the C++ programming language book. My copy is fairly worn, but not like that gof book. CLRS probably isn't as helpful as it once was, because the vast majority of time you just use an ADT from whatever library your language provides. Sure, maybe go review some subtleties from time to time, but if you're writing an algorithm for work, you probably do that all the time, CLRS isn't going to be that insightful. The dragon book was opaque to me. Just about every thing in that book, i had to go find another discussion of. I'm just not smart enough to parse those words and math into code. I dunno. I'm a pretty mediocre programmer. They've been helpful to me at various points in my career, but i don't think they are much help in modern programming. * I've only been able to chew through a couple chapters of TAOCP. I think the only programmers these books help are people like Fabrice Bellard. Find someone who's worked through those books, hire them. Well, if you really need to solve problems and you're not just hooking a submit button to mysql.
- SloopJon 10y ago> I think those books have a specific time in people's careers. Agreed. Code Complete gave me a huge boost as a liberal arts refugee in computing. Having given away my copy, I bought the second edition, thinking it would be worth a reread. Not so much. Pragmatic Programmer didn't do much for me either, probably because I read it too late. On the flip side, plodding through TAOCP just because? Better to read the relevant chapters when you've got an actual project to chew on.
- blub 10y agoInteresting. After reading Code complete (2nd) I felt that I didn't get much out of Pragmatic programming either. One question that keeps popping into my mind is what books and in what order should one feed an inexperienced junior to turn them into a mature software engineer.
- userbinator 10y agoI have a hard time believing Petzold's Code is in the first list, or even the second, because its content is so very different from most of the other books. It's not particularly directed at programmers either. As for the design patterns book, I've glanced through it and didn't find it all that useful; that being said, I was never a fan of that school of thought (OOP, UML, patterns, etc.) either.
- napsterbr 10y agoI bought Code as a gift to my mother, who is absolutely illiterate on computer science. She was thrilled to have learned about morse and binary code. She didn't get too far on the book, though, mostly because she is not completely fluent in English (and it's definitely a difficult read for non-programmers). But yeah, I agree this book shouldn't be on either list.
- deleted 10y ago[deleted]
- anexprogrammer 10y agoLet's see. Never come across Code, Head first Design Patterns - WHY? GoF book is much better, and well written and explained. Read all the rest, though K&R 1st edition. Bought 2nd when someone 'borrowed' original from my desk and never returned. Of the rest: Never heard of the first one, but I'm British. My green dragon book was read cover to cover a couple of times, and I tried to build a compiler off the back of it. I used another compiler book in equal amount, I forget the book though. I've three volumes of Knuth. I should have bought one at a time - I got about 1/2 way through the first volume. Design patterns was extremely well used. C++ was mainly reference, unlike K&R it wasn't a good read to learn from. Pretty heavy going if I remember. The Design and Evolution of C++ was much more interestng. Then the 2 Scott Meyers books (Effective C++ 1&2). Thinking in C++ was the book recommended to learn from at the time, though I've not read this.
- drew-y 10y agoIs there a good alternative to "Compilers: Principles, Techniques, and Tools"? I've been programming for a few years now and I'm looking to more formally educate myself in general computer science. I've been told having a good grasp on compilers and interpreters can be useful for a wide variety of problems. So far "Language Implementation Patterns" looks like it might be a promising alternative.
- nanolith 10y agoGive SICP a try. Then, pick up the dragon book if you enjoyed SICP. It's a different experience after that.
- stass 10y agoI highly recommend Modern Compiler Implenentation in ML by Andrew Appel (he is also an inventor of a number of important modern compilation techniques). I also rather enjoyed Crafting a Compiler. I found the explanations and excercises to be much more practical and enjoyable than the dragon book, but the code authors present is mostly garbage and full of global variables, state mutations and design pattern heavy. Ignore the code and do the excercises yourself. I always found the Dragon book to be too parsing-heavy which gets boring quickly. The books I listed spend far less time on parsing and much more on code generation and optimization which I find more enjoyable. YMMV.
- wtetzner 10y ago
- nanolith 10y agoI've read the books on both of those lists, among many others. Not because these are all required reading, but because I've had a long career and I've fought to continually improve my knowledge in Computer Science. It seems rather arrogant of the author to decree that one list is canon and the other list is not. Each of those books has its use. Does this mean that someone needs to read any of those books to be good at software? Probably not. But, studying each of those books will improve skills in the particular domains that the books cover. Also, why is it suddenly in vogue to bash TAOCP and CLRS? When I read these sorts of posts, I generally think that the author really means, "I didn't understand these books, so therefore, they must be crap." I started reading TAOCP very early in my career, and Knuth's low-level approach of analysis has served me quite well over the years. It's why, for instance, I don't balk when I need to optimize a computationally heavy algorithm on an 8-bit microcontroller, or when I have to hand-tune a cryptographic algorithm to avoid cache side channel attacks, I can approach the problem logically. Knuth is an excellent teacher for the right sort of student. He's not for everyone, and there's nothing wrong with that. Software ceased being a one-size-fits-all field decades ago. For that reason, among many others, decrees of what is canon or not -- such as the one made by the author of this post -- are nothing but bunk.
- deleted 10y ago[deleted]
- deleted 10y ago[deleted]
- phaus 10y agoHe praises almost all of the books on the second list, he just thinks a large percentage of the people that recommend them haven't read much of them. He also doesn't seem to make the claim that the first list represents "canon" and that the second list represents "non-canon". The first list is a list of great books that are easily understood by most students. Many of the books on the second list are far more advanced. I agree that some students can learn using any of these resources. However, most people would struggle with books like TAOCP.
- 10y ago
- kazinator 10y agoFrom the first list, I've only read (3) The C Programming Language and only partially (5) Mythical Man-Month. From the second: (1) Intro to Algorithms, absolutely cover to cover once, and selected readings additional times; based the Kazlib "dict" module closely on the Red Black tree algorithm (with a slight improvement); (2) Compilers: Principles, Techniques and Tools: Ditto, and in recent years, implemented a regex compiler based on the graph-based descriptions in that book; (3) TAOCP: selected readings only, too huge; (4) Design Patterns: cover to cover, when OOP was fashionable in the 90's; (5) nope, but I read the Stroustrup and Ellis Annotated C++ Reference Manual cover to cover (weekend before starting first C++ gig). That counts as a 1:1 substitute, more or less.
- vizeroth 10y agoMost of the books on the first list represent those I would only read once, and never again (or never at all, like "Head First [Anything]"). The C Programming Language and Refactoring are the exceptions. K&R was one of the textbooks in my first CS class, and the first CS book I read which was still useful to me 10 years later. The books on the second list which I have read (at least partially) are books I have had reason to go back to at some point in my career, and any of them which I no longer have, I will likely purchase again.
- kazinator 10y agoAbout the K&R2; I have no idea where my old copy is, but I know the precedence table is on page 53, and that I found an ISO conformance bug in example code on page 117: modifying an argv[] pointer.
- szines 10y agoHow about Clean Code?
- randlet 10y agoIt was only published a couple months before this blog post was written.
- nchelluri 10y agoIs Code Complete still worth reading for a working developer?
- gozur88 10y agoI didn't think it was ever worth reading. Steve Maguire's "Writing Solid Code" was much better, though TBH it's been so long I have no idea how it holds up.
- pkroll 10y agoI've read both, and while Code Complete covers a LOT of ground, I like Maguire's style and his practical information. I wouldn't want to be without Code Complete, but Writing Solid Code (and his followup, Debugging the Development Process) has plenty of decent info. And some dated. Much of Maquire's coverage is VERY C++ centered, so people using anything else are going to skip a bunch. It's a short book, 250 or so pages, and an easy read.
- papaf 10y agoI think so. A lot of the recommendations are based on research and, at the very least, it helps strengthen knowledge that you may already have. I learnt a lot from Code Complete when I read it. It is also an easy read - its not a hard academic book.
- bdcravens 10y agoI read the first edition (haven't read the 2nd yet) in 2000, and it really shaped the way I've written code since then, even though I work primarily in untyped web languages like Ruby and CFML.
- FroshKiller 10y agoI'm a working developer who has read Code Complete. It's definitely worth reading. It's the only book on my bookshelf at work that isn't internal documentation or my own notebooks.
- tylorr 10y agoWhat does it say about me if I haven't read any of those books?
- pjscott 10y agoIt says that you have not exhausted the wonders of this world, and that good times are ahead of you.
- nn3 10y ago>On the positive side, if you're looking for the solution to >a problem in TAOCP (and the appropriate volume has been >published) and you can't find it, the solution probably >doesn't exist. It's extremely comprehensive over the topic >areas that it covers. That's almost certainly wrong. TAOCP is very outdated in many ways and doesn't really cover modern algorithms. It's great for classic CS upto 90ies(?) or so, but there has been a lot of progress since then.
- taeric 10y agoWhat do you feel it is missing? Better, where has it really been left behind?
- nn3 10y ago- probabilistic algorithms (like all the modern bloom filter variants or skip lists or treaps) - parallel algorithms - cache oblivious (or just aware) algorithms. This made a lot of difference in designing trees or graphs. - modern hashing (like cuckoo or robin hood hashing), or min hashing - data mining algorithms ...
- taeric 10y agoAre you sure those are not covered? I know he covers Bloom's filter. And half his treatment on trees is how frequency of access matters on tree creation. (He specifically does not advise just balanced trees.) For hashing, he does cover things at arms length.
- nn3 10y agoAll these things only came out after 2000. Basic bloom filter is earlier, but modern bloom filters (and varieties like cuckoo filter) have improved quite a bit. The standard paper on modern bloom filters came out in 2006. It's also true for other areas. Let's take sorting. The best general purpose comparing algorithm is timsort. timsort came out in 2002. Keep in mind TAOCP was originally published in the early 70ies (first book came out in 68) and even though there were some new editions (upto late 90ies) they didn't really change all that much. You can just scan over TAOCP's bibliography and see the average year of the cites. It is usually 60ies. Claiming that CS has not improved since the 60ies is fairly absurd.
- sytelus 10y agoI've read CLRS page-to-page 3 times and doing pretty significant chunk of exercises. It takes on average about 4-8 months with 2 hours each day. I still think the title is accurate, i.e., its just "introduction". These days at work I frequently bump in to algorithms that would be qualified as advanced and CLRS content now looks fairly introductory to me. In fact book hasn't even scratched 10% of the stuff that we use regularly in our work. I think most people active in CS research feel the same way but if you were programmer doing regular LOB or iOS apps then OP's view may feel more closer.
- sgeisenh 10y agoCLRS is even great to skim. I always find it tremendously helpful to skim through when preparing for interviews. It provides a great survey of commonly encountered problems, so you can use it to diagnose your problem areas.
- zodiac 10y agoI'm curious, what do you do at work and what kinds of algorithms do you bump into?
- sytelus 10y agocomputer vision, machine learning, control software and things around that.
- deleted 10y ago[deleted]
- good_sh_t 10y ago>programmers tend to read programming books instead of computer science books Wow, amazing insight!
- rtpg 10y agoWhen I started programming, I first read "Beginning Programming For Dummies" (QBasic), "C++ for dummies" (before STL, so implementing your own linked lists was fun), and... The C++ Programming Language I spent maybe 3 years as a kid flipping through the C++ Programming Language book, trying to figure out how to do stuff with that + the Allegro tutorial. Totally a programming language reference. It's one of those weird books that you could spend years just looking at on a desert island and find things to do with it. But you basically need to flip through all of it to get what is happening most of the time (at least I needed to when I was a kid). Really wish I knew about Python back then....
- icantdrive55 10y agoFor the money, I've always liked those Dummies books. If anyone is reading this who's interested in front end web developement; there's a book that I feel is great. I wish I had it a few years ago. It's called Front-end web Development, from the Big Nerd Ranch, 2016. I really like those Teach yourself Visually Books too. (I'm not a Programmer. I'm just a guy who puts together small websites. The books have gotten better over the years. And to the guy, whom I high jacked, sorry. Your post got me thinking. I need to finish the C++ Programming Language--one day.)
- bigtunacan 10y agoThe whole article just seemed like one silly anecdote. "Well these are the books I actually read so it must be the same for everyone." I think the author's next read should be a good statistics book. Here's my anecdotal evidence. I have read 8 out of 10 from his first list. I have read everything except for TAOCP from the second list. Some of the ones from the second list I have read multiple times and I still go back too as reference from time to time. I have started reading TAOCP on several occasions, but I'm not going to lie; that shit is complicated and the dry academic nature makes it even worse to parse. I still plan to get through it in my lifetime, but I keep prioritizing easier reading.
- cruise02 10y ago> Periodically over on Stack Overflow (and in many other programming forums) the question comes up about what books are good for programmers to read. The question has been asked and answered several times, in several different ways. The same group of books always seems to rise to the top...
- bordercases 10y agoReading these books leads to the opportunity to take on jobs related to these books. So people saying, "oh, I use this in my job all the time" without reading the books after they took the job, ultimately have less to say on the matter.
- jcoffland 10y agoWow I've read many more of the books in the second list. The second list should also include Structure and Interpretation of Computer Programs.
- WalterBright 10y ago> the word "Introduction" leads one to believe that the book is a good choice for beginning programmers. It isn't. The book is as comprehensive a guide to algorithms as you are likely to find anywhere. Please stop recommending it to beginners. Reminds me of the Caltech required 3rd year math course "AMa95 Introductory Methods in Applied Mathematics", that came with the dry comment that "Introductory does not mean elementary." It had a reputation as one of the toughest classes.
- c3534l 10y agoIt sounds like they're actually conflating the two words in question. Introductory means an introduction, like the thing that helps you get into a subject. Elementary means basic or foundational. Logic and set theory are elementary to the rest of mathematics. They're not introductory to the rest of mathematics.
- WalterBright 10y agoThey meant do not infer it to be an easy class.
- WalterBright 10y ago> There's certainly plenty of evidence that someone has read this book, since otherwise we wouldn't have so many C++ compilers to choose from. I don't think that's quite true. The only C++ compilers I know of are: 1. cfront C++ (from which many C++ compilers were derived) 2. Digital Mars C++ (the one I wrote) 3. g++ 4. clang++ 5. EDG C++ (from which many other C++ compilers are derived) 6. Microsoft C++ 7. Taumetric C++ It's a pretty thin list for 30 years. (I apologize if I neglected any.) Contrast that with C - at one time in the 1980s I counted over 30 of them (I'm not sure how many were independent creations). Edit: removed Borland C++ as that was derived from Taumetric.
- TickleSteve 10y ago9. Intel C++ 10. Watcom 11. IAR 12. Commeau etc.
- WalterBright 10y agoIntel is derived from EDG. Commeau is derived from Cfront. I don't know anything about Watcom C++.
- hilop 10y agoYears ago we had some banned C++ features Because they didn't compiler properly on HP-UX compiler. But maybe that was still part of the g+ umbrella
- csl 10y agoMaybe Intel C++ as well? But most people who have that book didn't buy it to write a compiler. Isn't C++ ridiculously hard to write a compiler for? While I haven't written one, I think it'd be much easier to write one for C — and for that I imagine it would very nearly suffice to have the K&R book.
- WalterBright 10y agoEvery C++ front end I know of has at least 10 man years in it. I'm pretty sure it's the hardest language to implement, by far. (The core language.) Ironically, one of the hardest things about a C compiler is the preprocessor. You'd think a text macro processor would be simple, and it should be simple. There's an amazing amount of subtle complexity in just the handful of pages describing it in the Standard. I and many others implemented a C compiler based on K+R, and I can attest that a lot of rework can be avoided if following a Standard instead (C89 did not exist at the time).
- pmontra 10y agoI read the Dragon book, actually studied it for a CS course. I read C for the same reason and because it was the time when either you read books or you didn't know stuff. Most of the other books are more recent and the web was already there and good enough, especially for references. Those get old fast on paper.
- thomasahle 10y agoCLRS and TAOCP don't really get old that fast.
- pmontra 10y agoCLRS is from 1990, too late to my party: I was through most of my CS courses by then and who could have known about it on my side of the Pond and in a different language? Some of my teachers probably, but maybe nobody as soon as I graduated and got a job. Instead I knew about TAOCP, also because of TeX. Not a required read in my CS course. We had a smaller book, Wirth's Algorithms + Data = Programs. I skimmed through the TAOCP volumes available online but it takes really a lot of dedication to read substantial part of those books and I think that the impact on my work would be minimal nowadays. But yes, by the look of them both those books will be relevant for a while.
- rampage101 10y agoTAOCP is so much superior to CLRS it is not even close. At the end of each section of CLRS they ususally mention Knuth anyways. Knuth's writing is clear and amazing. It really makes the history of computer interesting. Pretty typical of the author of the post who did not complete TAOCP to say it is somehow flawed for being too cryptic. Why is the author concerned about what others have read or not anyways? It seems he more concerned about proving he has read more than others.
- dudul 10y agoI missed the part where the author provides a reference/source to claim that developers don't really read some books.
- dmalvarado 10y agoWho claims to have read a book they didn't? "Yea I read that." (No I didn't). That's straight lying. I think what's more likely is, someone will say, "YOU should read this book. It's awesome." The implication being, the suggestion comes from first-hand experience.
- chatterbeak 10y agoThis is a strange, elitist, attitude. When someone tells me he read a book, I have no reason to doubt him. That being said, my go-to book I recommend for non-specialists who want to delve deeper into Computer Science is SICP. And yes, I've read it. It's telling that it's not on his list.
- ajarmst 10y agoAh, another entry for the "I didn't read the books people say I should have---here's my nationalisation" genre.
- ajarmst 10y agoSigh. *rationalisation. Doesn't really help your snark when you emit a silly typo.
- QuadrupleA 10y agoWanted to second the ambivalence around the CLRS Intro to Algorithms book - having learned a few algorithms by poring through its chapters, I can definitely say it's a long, out-of-the-way route to take for a practicing programmer. I may not have enough hindsight (bought it a year ago) to truly say whether the dense mathematical approach was valuable to me long-term, but for now I'd say a wikipedia article or a less formal, more to-the-point book like Jon Bentley's Programming Pearls is time much more well spent, unless you are actually aiming to work in academia for a computer science department.
- ori_b 10y agoInteresting. I've read almost none of the books on the first list, and everything but TAOCP on the second.
- hilop 10y agoI've read all of 3/10 books on the first list "everyone reads", and 3/5 on the "no one reads" list. Most of the books on the first list were published after veterans already learned the relevant materials -- the author must be under 30 (so under 25 at the time). Certainly a weird sample among popular books, the author thinks everyone reads the same arbitrary subset of books he had.
- marme 10y agoall 5 of the books mentioned that programmers dont read were required reading for my CS degree. Did I read them cover to cover? no but i did read enough to say which are useful to read and which are not. I would guess the majority of programmers who have completed a CS degree have only read those books because they were required reading, does that make the books less important or useful?