This page contains a list of books that I've found to be particularly good. You can purchase these books by following the links to Amazon.com. If you buy a book via a link from this page, I get money. Sweet, eh? Even if you don't buy 'em from here, I encourage you to take a look at 'em somewhere. The books that I list here are "best of breed" for the topics they discuss. They're in no particular order, because they're all great! :-)
I've added a section for non-technical books (fiction, non-fiction, whatever) that I happen to like. Since I have a soapbox, I might as well use it. :-)
Enterprise JavaBeans: Developing Distributed Component-Based Applications
by Tom Valesky. Yes, this is my long-promised EJB book. It's currently available (usually ships within 24 hours).
If it's not currently in stock at Amazon.com, you can order it direct from Addison-Wesley-Longman
by Slama, Garbis, and Russell. This book, written by three consultants from IONA, reflects years of real-world development experience. There's almost no code in this book; instead, the book focuses on how to architect and design enterprise-level CORBA applications. Topics addressed include: fault-tolerance, load balancing, security, object persistence, etc. It's like having a long conversation with a highly-experienced CORBA consultant, without having to pay $300 an hour. :-)
by Kernigan and Pike. If you look through the remainder of this page, you'll see both of these names well-represented. This is a great tour through the world of programming, supplying helpful hints for developing, debugging, designing, testing, and optimizing code. I'm going to xerox the three-page appendix that lists the hints and use it as a mnrning "pre-flight checklist." Good for both the novice programmer and the experienced expert.
The Coldfusion 4.0 Web Application Construction Kit
by Forta, Weiss, and Crawford. I needed to pick up Cold Fusion in a big hurry recently, and this book gave me what I needed to know to get the application built. It's well-organized, and is useful as an initial learning tool, as a reference, and as a source of eminently stealable code snippets. If you do Cold Fusion, you'll probably already have this book; if you're just starting out with it, buy it.
Active Server Pages for Dummies
by Bill Hatfield. I'm not particularly crazy about being called a "Dummy", but I'm secure enough that I can put up with it. Recently, I needed to get up to speed on Microsoft's Active Server Pages in a big hurry. This book gave me enough background to where I could make use of other resources (the tutorials at www.activeserverpages.com are also very good, and they have the advantage that they're free, but it's hard to read them while I'm riding on the Metro.
Information Architecture for the World Wide Web
by Rosenfeld and Morville. There are tons of books out there on how to write HTML, administer web servers, use Shockwave, and so forth. This is the only book I've come across that focuses exclusively on the architecture of your web site: that is, how should it be designed and arranged so as to be maximally useful to your users. The authors both hold Masters degrees in Library Science, and the suggestions they make may help make sense out of your tangled site.
by Lieserson, Cormen, and Rivest. This is a truly excellent book on algorithms. It does a good job of explaining how the algorithms work, and what they're good for. This book is often used as a text for courses on algorithms.
Teach Yourself Windows 95 Programming in 21 Days
by Charles Calvert. This is my favorite "intro-to-Windows-programming" book. It's currently out of print (hopefully, Mr. Calvert is working on a new edition for Windows 98). I like this book because it starts simply, discusses progressively more complex topics, and doesn't skip any steps in between. This is also the only windows book I've come across that discusses how to use the windowsx.h message crackers, which are helpful. If you want to learn how to program directly to the Windows API, this is an excellent book to read. (The "21 days" thing is a bit of a misnomer; the book contains an extra week's worth of material).
The Mythical Man-Month: Essays on Software Engineering
by Fred Brooks. This is a classic on the software development process. It's been in print for over 20 years, and it's as meaningful today as it was when it was first written. The 20th anniversary edition includes some additional material, including the essay "No Silver Bullet."
By Ted Biggerstaff. If you're a "guts and gears" kind of guy, this book is for you. It's about how to implement low-level PC software (i.e. stuff that interacts with hardware). Full of useful info about PC architecture and interesting examples. This book is out of print, but Amazon will try to find it for you.
Fundamentals of Database Systems
This book provides a good understanding of how relational database systems actually work. Used as a course text in George Mason University's graduate CS class on databases. Don't be misled by the title: "fundamentals" does not mean "here's how to select data from a table"; it means "here's how a database management system is implemented."
The Java Language Specification
My copy is well-worn, dog-eared, and highlighted to death. If you're serious about Java, you should have this book. Learn it, know it, live it. :-)
This is basically Java's answer to Kernigan and Ritchie.
The Java Virtual Machine Specification
If you want to understand how the Java Virtual Machine works, this is the place to look for answers. Apparently, the first edition is no longer in stock. However, the second edition of this book is coming out in December 1998, and you can pre-order it now.
TCP/IP Illustrated, Volume 1 : The Protocols
Quite simply the TCP/IP bible. If you're doing TCP/IP network programming, you probably already own a
copy. If not, you should.
The C Programming Language : ANSI C Version
This is the second edition of the famed K&R book. If you're a C programmer, you should know it by heart.
The UNIX Programming Environment
This book is an excellent introduction to command-line Unix. It's a bit dated, but it's still in a class by itself. It includes a really good Lex and YACC example that helped me get through compiler construction class.
This fine little book is jam-packed with solid example code. It also includes a reference section on the Java class libraries, but I recommend it because of the examples; if they eliminated the reference entirely, I'd still recommend it. It's probably not the best book for an absolute beginner to Java, but it's a really good second book.
Even more examples from the author of "Java in a Nutshell".
Client/Server programming with Java and Corba (2ed)
This was the first book on CORBA that I found that had actual coding examples. The examples are quite clear, the book is eminently readable, and it includes examples and discussion of other distributed protocols (RMI, DCOM, sockets, Enterprise JavaBeans, etc) as well. A great first book on CORBA.
Doug Lea's book on concurrent programming in Java
This is a great discussion of Java concurrency. Lea doesn't stop at discussing the core concurrency primitives. Rather, he shows you how to implement several useful patterns from the world of concurrency.
Transaction Processing : Concepts and Techniques (Morgan Kaufmann Series in Data Management Systems)
If you've ever wondered how transaction processors work, you can find out here.
The Annotated C++ Reference Manual
A must-have for C++ programmers.
Compilers : Principles, Techniques, and Tools
This is the famed "dragon book"; it's the book to have if you want to get into the compiler-writing business. (Please note: the book that I had linked here before was an earlier edition on the same subject by two of the same authors. This version of the Dragon Book is still in print).
Design Patterns : Elements of Reusable Object-Oriented Software
The seminal work on design patterns.
This is absolutely a must-read for C and C++ programmers. It's a discussion of common mistakes that are made by C programmers. It also includes a discussion of how to use variable arguments, which I don't believe I've seen discussed anywhere else.
Opengl Programming Guide : The Official Guide to Learning Opengl, Version 1.1
"The Red Book"; the book to have if you're getting into OpenGL. (OpenGL is a cool 3D graphics API).
Win 32 System Services : The Heart of Windows 95 and Windows Nt
An excellent book on Win32 system services. (Not just "system services", either, though they're covered. Brain discusses things a wide variety of the guts of Win32).
Motif Programming : The Essentials... and More
Marshall Brain does it again. The best intro to Motif that I've come across.
by Clifford Stoll. Subtitled "Why Computers Don't Belong in the Classroom and Other Reflections by a Computer Contrarian." The subtitle caught my eye. Having taken several graduate-level computer science classes that didn't require a computer (Analysis of Algorithms, Parallel Algorithms, and Object-Oriented Analysis and Design spring to mind), I've often wondered what a computer will do for an elementary-school person. Also, I think JINI is a cool technology, but I feel shudders of dread at the vision that some put forward of "smart appliances talking to one another." Do you really want some 17-year-old hacker from Cleveland turning on your toaster-oven over the Internet while you're at work? Do you want to have to resolve address conflicts between the microwave and the VCR? Stoll shares these misgivings, and then some. A refreshing dose of skepticism about the Silicon Promised Land.
by Steven Pressfield. Who says that ancient history has to be boring? This gripping account of the battle of Thermopylae, told from the viewpoint of a Spartan servant, brings the battle to life. If you like, it's also available in hardcover
by Lt. Col. J. H. Patterson, DSO. This is the non-fiction account on which the movie "The Ghost and the Darkness" was based. It's the story of a hunt for a pair of man-killing lions in the Tsavo region of Uganda. I was pleasantly surprised to find this excellent book reprinted in paperback. If you like, it's also available in hardcover
Dr. Atkins' New Diet Revolution
by Robert C. Atkins, M.D. This book discusses the famous low-carbohydrate ketogenic diet. This diet has its detractors, but it has worked spectacularly well for me.
The Complete Guide to Navy SEAL Fitness
by Stewart Smith, USN (SEAL) With diet, ya gotta have exercise, right? This book was written by the same person who wrote the BUD/S Warning Order. Its intent is to get already-fit people into incredible shape, so that they can successfully negotiate BUD/S, which is an intense 6-month training course that prospective SEALs must pass. Actually, I aspire to complete this workout; I'm not there yet. Here are links to a couple of other workouts that are (slightly) less intense.
by Deborah J. Bennet. A lively and interesting discussion of probability (before reading this book, I'd have said that that was an oxymoron).
The Man Who Loved Only Numbers
by Paul Hoffman. A biography of Paul Erdos, a unique mathematician.
Surely You're Joking, Mr. Feynman; Adventures of a Curious Character
by Hutchings, Leighton, and Feynman. A biography of Richard P. Feynman, a unique physicist.
'What Do You Care What Other People Think?' : Further Adventures of a Curious Character
by Leighton and Feynman. A further biography of Richard P. Feynman, a unique physicist.