My Favorite Books
When I started writing books, I decided to stop reviewing other peoples’ books. I used to have a list of all of the books in the topic of my current interest and write a little review, either pumping them or panning them (this was long before Amazon.com). Once I decided to write books myself, I figured that there’d be a conflict of interest putting down competing books, so I stopped. However, I’ve had lots of folks ask me for a list of recommended books over the years, so I thought I’d provide one. While I’m still biased, there’s at least less conflict of interest if I just tell you about books that I love (although I’m not so proud that I don’t tag each book URL with my Amazon.com associates ID…).
I would give each of these books a 5-star rating on Amazon (and, in some cases, I’ve done just that). These are the books that I absolutely love (in no particular order):
The PC Is Not a Typewriter by Robin Williams. Of course, this
is not by the famous actor, but Robin is as famous in the type design field as
the other Robin is in the funny joke field. In fact, I’d say the former is even
more impressive, because she doesn’t let herself get talked into writing bad
books. You can’t go wrong with any of Robin’s books, but this is the first one
of hers that I read and it still holds a special place in my heart. She
specializes in teaching text design amateurs how to do text design and she’s
great at it.
Genetic Programming III by J.R. Koza, et al. It’s no secret
that I’ve long had a weakness in my heart for
programs that generate programs. This one is the ultimate — programs
that figure out themselves how to generate the correct program. Very wow. And,
as is necessary for all books on this list, it’s very well written. It’s
gripping in the same way that the latest John Grisham novel is gripping (to a
certain kind of person : ).
Essential COM by Don Box. This is not only the classic work on
COM, but it captures the heart of the movement of Windows programmers into
component development. Be careful when you pick it up, though. You could start
by looking something up and find yourself hours later still reading it for the
pure pleasure. BTW, Don and I have good close friends for years, so I may be
biased (except I’m not — this book rocks).
Don’t Make Me Think by Steve Krug. I’m still in the middle of
reading this book, but wow. It lays out web usability in a way that even a web
design cretin like me can appreciate. He points out the dos and don’ts in a way
that’s clear, concise and entertaining. I’d love to be able to convey so much
with so few words. And the production values of this book are great. I wonder
if Addison-Wesley will let me write a .NET programming book in the same
User Interface Design for Programmers by Joel Spolsky.
Joel maintains one of my favorite web logs and has collected his
usability musings into a wonderful little book (clearly influenced by the Krug
book). What makes this book so wonderful is that he captures all my feelings
about usability, making me feel like an expert. Of course, I love a book that
agrees with me. : )
Effective C++ by Scott Meyers. This is the book that started a
movement. Of course, if you’re a C++ programmer, you need to read this book.
But more than that, Scott laid out a style that has often been imitated, but
never duplicated. (I know, because
Mr Bunny’s Guide to ActiveX by Carlton Egemont III. If you’re a
COM programmer, you need this book. Check out the close up of the pixel. It
kills me every time.
C# Essentials by Peter Drayton, et al. This is hands down the
best .NET programming book out there. It’s clear, concise and accurate (a
novelty in the Windows book market). It only took me a few hours to read, but I
learned a ton. BTW, Peter works for DevelopMentor, but I’m not biased because I
don’t like him very much. : )
Fundamentals of Database System by R. A. Elmasri. This is one
of the rare college text books that is not only readable, but practical. I read
this after years and years of doing database work and was very surprised that
they covered what software engineers actually need to know about how databases
Inside SQL Server by Kalen Delaney. Ironically, I haven’t had
much database experience under Windows (I was a Unix Informix guy), but when I
read the earlier edition by Ron Soukup, I fell in love with this product. I’m
sure it was the way that Ron described it, but I couldn’t imagine doing SQL
Server work without this book.
Modern Operating Systems by Andrew S. Tanenbaum. I sure wish I
had had this book when I was taking my operating systems course in college,
because then Linus Torvald would be reading about the success of my operating
system and not the other way. This book is so great and so well-written that
its inspiring. I firmly believe that every effective programmer needs to first
understand what’s going on underneath their drag-n-drop, click-button IDE and
this book sure lays a great foundation.
Computer Networks by Andrew S. Tanenbaum. Along those same
lines, Tanenbaum’s networking book is also excellent. Makes me want to dig
right into the plumbing.
TCP/IP Illustrated by W. Richard Stevens. Of course, the late
Richard Stevens was a legend in the Unix community. This book, while slanted
towards Unix, is still a great book about the world’s most dominant network
protocol. I can’t decide whether I like this book or Computer Networks by
Tanebaum better, but you can’t go wrong by owning both.
Unix Network Programming by W. Richard Stevens. As a Unix
programmer not even doing network programming, this was still the bible. I know
that you Windows programmers aren’t going to rush out and buy it, but if you
wake up with a desire to program in a command line world, you’ll need this
Philip and Alex’s Guide To Web Publishing by Philip Greenspun. I
don’t know how much practical information there really is in this book, but
after reading it, I really wanted to quit my job and go to work for
Ars Digita. Unfortunately, after Phil brought in some “professional”
management, they kicked him out and, as far as I can tell, are driving that
company into the ground. Still,
the amount that that guy has contributed to the internet community is
staggering and inspiring.
ASP Internals by Jon Flanders. Now on this one, I’m very
biased, because not only is Jon Flanders a fellow DevelopMentor employee, but
he’s also been one of my best friends since 3rd grade and I wrote the forward.
That said, if you want to know how ASP really works, down to source code for an
ISAPI extension that Jon builds to work just like ASP, you need this book. And
what’s so amazing is that he’s able to convey so much so concisely. I wish I
could write this briefly. I hope an ASP.NET Internals is forthcoming from Jon.