4 ms·
I would be very interested in seeing your top ten list of books that every programmer should read, tptacek. First, because I value your opinion, and second, bec
by Sandman 16y ago
I would be very interested in seeing your top ten list of books that every programmer should read, tptacek. First, because I value your opinion, and second, because I honestly believe that most of the books on this list actually are books that every programmer should read and I'm curious as to why you're so averse to them. What would you consider 'a book about the most interesting aspects of computer programming'? Do books like SICP and 'Introduction to algorithms' not fall in this category?
- wglb 16y agoHe has one list in his profile: http://amzn.to/cthr46 http://amzn.to/cthr46.
- Sandman 16y agoYeah, I've seen it. It's a good list, but it's mostly concerned with security, reverse engineering and similar topics. I'm not saying that this is not important but surely there are other things that a developer should know about. For example, how to write maintainable code, how to come up with elegant solutions to certain problems, and so on.
- tptacek 16y agoOf the books on that list, the ones I think you could call legitimately essential are: SICP -- K&R -- CLR[1] -- Design Patterns -- Mythical Mammoth -- TAOCP -- Compilers (Dragon Book) -- Effective C++[2] -- Programming Pearls -- Peopleware -- Little Schemer[3] -- Modern C++ Design -- The Practice of Programming[4] [1] ... except I'd recommend Skiena instead of CLR. [2] ... except I'd recommend Effective STL over any other Meyer book, and I also wouldn't concede that C++ is essential. [3] ... except I'd recommend Lisp In Small Pieces, which I know is a totally different book, but do you need it and SICP? [4] ... but only to someone new to programming. You can see I've chucked all the methodology and career crap (except for Brooks and Peopleware; I think you probably already know everything in Brooks, but Peopleware is something you should reread annually). To that list I might add: On Lisp -- Javascript: The Good Parts -- Pattern Oriented Software Design #2[1] -- Computation Structures -- Computer Architecture (Hennesy and Patterson) -- C Interfaces and Implementations -- The Visual Display Of Quantitative Information -- Windows Internals[2] [1] ... this book was wildly* ahead of its time and is no doubt overlooked because of it's patterns-y enterprise-y marketing.* [2] ... 10 years ago I'd have recommended _The Magic Garden_ but, even though I'd rather eat a bug than use a WinAPI system full time, it's hard for me to argue that Unix kernel design is as relevant now as the Windows kernel --- and, more importantly, there's no Unix book that does as good a job as Russinovich on the Intel architecture. I wish I had good books to recommend on: SQL performance optimization -- distributed systems -- compression and coding -- the HTML/JS DOM programming model. The reality is, at this point in my career, I don't find myself going to books for programming stuff so much; that doesn't mean I don't read, but I tend to take the "man pages" approach. So my choices may date me. If I'm going to pick up a book today, it's going to be for something domain specific. I find myself reading for maths (I suck at math), or for graphics, or for market microstructure, or signal processing. I won't pretend that stuff is relevant for everyone. I feel confident, though, in saying that nobody needs more than one "Agile" book.
- m0nastic 16y agoI've had both CLR's Algorithms book and Skiena's on my wishlist for a while, and would be curious to hear why you prefer Skiena's. I had a copy of CLR back in school, but like most of my textbooks from back then, I'm sure I sold it for food. Before rebuying the same book, I figured I'd see if Skiena's might be better.
- tom_b 16y agoI'm currently reading and preparing to work through C Interfaces and Implementations based on your recommendation - so thanks. At first blush, I like it very much and wish to tie it more closely to a more modern C reference that is the successor to K&R (which doesn't seem to exist). Skiena instead of CLR? Hmmmm . . . not sure I'll agree with that. You might want to consider having a look at the Stepanov Elements of Programming book. I think there is a chance it could be a good follow-up for hackers interested in moving from Hanson's elegant looking code to a nice, minimal C++. I lack enough applied C/C++ experience for this recommendation to have much weight. Regarding SQL optimization - I suspect most people would be best served to work through Celko's books to have the most thorough grounding in applied SQL and then refer to the docs included with their RDBMs of choice that deal with access plans, performance monitoring, and general engine tuning. The problem is that there are just too many knobs built into the different RDBMs products for it to be a general topic. Oh, and the answer is always a better index, materialized view, or to use a column store engine. :-)
- froydnj 16y agoCounterpoint: Elements of Programming is an exercise in overengineering written by architecture astronauts. I was not impressed by it.
- apu 16y agoWhat do you think of Zawodny and Balling's High Performance MySQL? I thought it did a really good job on optimizations for not just MySQL, but many things in common to various SQL systems.
- froydnj 16y ago