Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Of 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.



I'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. :-)


Counterpoint: Elements of Programming is an exercise in overengineering written by architecture astronauts. I was not impressed by it.


I'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.


Wow, Computation Structures looks like an excellent book; thanks for the reference.

I think having Lisp in Small Pieces and SICP is reasonable. Lisp in Small Pieces dives pretty deep, but doesn't cover anything comparable to what chapters 3 and 4 of SICP do.


What 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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: