6 ms·
Ya know, I would put a lot of the books most programmers have read on the second list. How many have actually read Code Complete (HN is probably a bad sample)?
by cletus 15y ago
Ya know, I would put a lot of the books most programmers have read on the second list. How many have actually read Code Complete (HN is probably a bad sample)?
I totally agree about Design Patterns. That is perhaps the driest (I mistyped that as "direst"; Freudian slip?) technical book (or any book for that matter) I have ever tried (and failed) to read.
Thing is, technical books don't have to be that way. The early Michael Abrash books (eg [1]) are actually highly entertaining. Effective C++ and Java are eminently readable.
I lot of people recommend CLRS and I've certainly studied from parts of it but I found Skiena's The Algorithm Design Manual to be far more approachable and enjoyable. If your goal is to learn I suggest that. CLRS seems more aimed at people who want or need to know mathematical proofs or are bound for postgrad CS.
TAOCP and the Dragon book are classic examples of books that get recommended all the time (on SO, here and elsewhere) but I'm convinced only a handful have actually read them.
[1]: http://www.amazon.com/Zen-Assembly-Language-Knowledge-Programming/dp/0673386023 http://www.amazon.com/Zen-Assembly-Language-Knowledge-Progra...
- mturmon 15y agoI work at a government lab and I see TAOCP all the time on managers' shelves, generally in quite pristine condition. Sure looks classy up there.
- defrost 15y agoI studied mathematics in the 80's, a lot of my peers read the library copies routinely, either systematically from cover to cover, for specific reference, or for fun (flip open at random, see what you get) - maths people love maths books and TAOCP is very much a maths book - since then I've rarely met anyone with am actual volume set that seems to have any idea of the contents. The Dragon book I still own, a paperbound version that's as dog eared as a book can get and still hang together as it was the reference for three of us working on a few compilers of our own back in the day. The C Book I no longer have despite having bought four to five copies :( That book's never been much of a boomerang.
- Tangurena 15y agoI worked at one of the national labs and the books I'd see on shelves were usually ones from when folks were still students. The pristine unread books were either bound copies of the person's dissertation, or books he authored.
- 6ren 15y agoI read Design Patterns. The reason it was difficult for me was because they introduced many entities at once, and I couldn't keep track. My solution was to draw a diagram of the entities and their relationships as they were mentioned, and take some time to try to absorb them. While not a mathematical paper, it's closer to it than to regular prose, in that it needs to be studied rather than read. (BTW: I didn't find it all that interesting conceptually, they're the solutions you'll come up with yourself, just collected and named and categorized. Reading how they solved specific problems was interesting - vicarious experience - though some seemed more whimsical than workmanlike.)
- zackattack 15y agoWork got me Effective Java to go through, but I don't have enough basic Java knowledge to get through it (I know enough Java to be dangerous). I can program in other languages, though, especially in perl, python, JavaScript and PHP. What book should I read before Effective Java?
- mceachen 15y agoWorking on a real problem that you want to solve is the best way to learn anything. Don't go through a book -- just bookmark the JDK and make sure you skim through at least String, List, Map, Set, and Iterator. If you can, find on github some idiomatic code for whatever language you're trying to learn (and take it with a grain of salt -- Spring Framework, for example, has good code in it, but you'd never need to make your solution so complicated because your code doesn't need to be extensible by everyone and their little sister).
- irahul 15y agoWhen I was in college, I used to program a lot in Java and read a lot of books on Java. I found most of the text lacking and boring. The only book which didn't seem to insult reader's intelligence was Core Java vol 1 http://www.amazon.com/Core-Volume-I-Fundamentals-Edition-Series/dp/0131482025 http://www.amazon.com/Core-Volume-I-Fundamentals-Edition-Ser... Read the first 6 chapters very carefully and you will have rock solid foundation. Then skim through event handling, exceptions, streams and generic programming.
- jimbokun 15y agoThe O'Reilly Nutshell books are very good at teaching you just enough to get going in a new language if you have some kind of programming experience in another language.
- prophetjohn 15y agoThinking in Java[1] is a nice, thorough book geared toward people with prior programming experience trying to learn Java. It's mainly geared at C++ programmers, but knowledge of C++ is by no means a prerequisite and probably only minimally enhances what you get out of the book. The book has been thoroughly vetted by the community, so it includes few errors. The older, third edition is also free[2]. [1] http://www.amazon.com/Thinking-Java-Edition-Bruce-Eckel/dp/0131872486/ref=sr_1_1?ie=UTF8&qid=1332776053&sr=8-1 http://www.amazon.com/Thinking-Java-Edition-Bruce-Eckel/dp/0... [2] http://www.mindview.net/Books/TIJ/ http://www.mindview.net/Books/TIJ/
- edanm 15y ago"How many have actually read Code Complete (HN is probably a bad sample)?" Honestly, how many programmers have actually read any book about programming outside of University classes? I'm guessing not many. On another note, Effective C++ is not only a great book, it is the book which single-handedly made me a much better programmer, and made me understand C++. This is after half a year of training/working in C++. It is my most highly recommended book for really grokking C++. My only regret is that there isn't a similar book for most of the languages I know.
- deleted 15y ago[deleted]
- alexchamberlain 15y agoI have! But, I'm a Mathematician invading another world, so probably a bad example...
- jonstjohn 15y agoHonestly, I think there will be a fairly high number of people who regularly read programming books, especially among those who may not have done a CS degree at a university. Personally, I have read dozens of programming books cover-to-cover that are often mentioned on these lists.
- zukhan 15y agoWhy wouldn't people read programming books outside of university classes? How do you improve your craft? Reading is an instrumental part in growing as a developer and as a human being.
- edanm 15y agoYou're talking about whether people should. I'm talking about whether people actually do. As for why people wouldn't read, there's one giant reason: people don't care about programming. Obviously you care, and I care, and arguably most people reading HN care. But I believe that for a large percentage of programmers, programming is just their job. They do it, they get paid for it, and as long as they can keep getting paid for it, they don't need or care to "grow as a developer". It's just not a priority in their life, or even a goal.
- krzyk 15y agoWell, I didn't find Design Patterns as "dry", it was quite entertaining for me. Maybe because I didn't know anything about design patterns when I read it. On the other hand I reread it about 2 years after the first read and I still found it quite interesting. Also, I've read the whole Code Complete and it was also interesting and I considered it one of the best books for programmers. As for CLRS - boring as *%&^%#, I just can't manage to get past the sorting chapter. AFAIR there are not exercise answers so one is left alone when doing them, which mostly disqualifies every such book for anyone who is studying it on it's own, not in a class room. Skiena's book is far, far better written, but unfortunately some of the exercises are to thought for me so when I'm reading my exercises are from 2-3 chapters behind. Although it's good that there is a wiki with (not always correct) answers. Haven't read TAOCP.
- Maro 15y agoThere's a book called "Programming Language Pragmatics", which is a very readable presentation of PL ideas, how to parse them and how to write compilers for them. I actually read 2/3 of it. http://www.amazon.com/Programming-Language-Pragmatics-Third-Edition/dp/0123745144 http://www.amazon.com/Programming-Language-Pragmatics-Third-...
- nickik 15y agoThis is one of the very few (tech) books I read cover to cover (plus the stuff chapters on disk). If you are intressted in everything from machine up to programming language this is the book for you.
- achompas 15y agoSo happy to see Scott get a bit of recognition on HN. This was my graduate PL text last semester, and I enjoyed reading it before class every week. As a clear, well-written, thorough text on PL, I can't recommend it more strongly.
- yannickt 15y agoAnother algorithms book that is IMO more approchable and more practical than CLRS is "Algorithms in C++" by Sedgewick.
- RyanMcGreal 15y ago> How many have actually read Code Complete (HN is probably a bad sample)? I read the second edition cover to cover, and it was worth all the time I spent on it.
- jcromartie 15y agoI bought Code Complete on a recommendation, and I find that most of it is stuff I've already picked up after programming for about 10 years.
- alttag 15y agoI had the same experience (but after only about five years). I landed on Code Complete a couple years after devouring The Pragmatic Programmer (and requiring my developers to read it), and generally found some good ideas of varying quality buried on mountains of text. I think most of it is right, but after having some experience in the field, it seemed it was targeting all audiences at once, from the newbie to intermediate programmer but also to organizations, managers, and others related to code. It's hard to make a book that's to the point if the book lacks focus. That said, I've still used it for my research ... although I can often find other sources that say things better, CC2 has made a good starting point for ideas on how to present ideas about code.
- jerhewet 15y ago[raises hand] I've read it cover-to-cover, twice -- the original edition, and the 2nd edition. Brilliant stuff.
- barefoot 15y agoLikewise.
- matwood 15y agoHow many have actually read Code Complete Some books are references and some are read throughs. I read Code Complete while in college and thought it really helped my programming. Effective Java is another great book that I've read. The Pragmatic Programmer is another one that I've read that really is worth the time. Many books are just good references though. Pick it up and read a chapter for example. I think the more experience a programmers gets the less they need to read right through a book. When looking at a book on a particular language I can usually skip the first half because I know the parts that are common across most languages. I only need to know what's different/cool/idiomatic in this particular language. Algorithm books are another example that falls into mostly the reference category. I don't think I've read any entire algo book, but I have read many chapters from many different algo books that touched on what I needed to learn at the time.
- GFischer 15y agoThe Dragon book is obligatory course material at several universities (at least here in Uruguay, and Argentina too), so I have a hard time believing only "a handful" have read it (ok, most might have only skimmed it, but that's in the order of hundreds of thousands of students right there). Ironically, I didn't take the course that required it, and remain ignorant about compilers to this day.