| This lists most of my computer-related reading. Although, given the random assortment of articles on the web, it's a bit of a skewed view. I've omitted most of my college textbooks. | |
| Where I found a good web site from the author, I hyperlinked it. Dr Dobbs has excellent reviews, so I used a few of those. The rest are to the publisher or Amazon.com | |
| * | Indicates that I do only partially read the book. This is either because the book wasn't very good or I lost interest in the topic; or the book is a reference work and I just read sections. |
| + | Indicates a book that I'm still working on it. |
| !!! | Indicates a Favorite |
An Introduction to Database Systems, 6th Edition - Date
A Guide to the SQL Standard - Date & Darwen
SQL for Smarties: Advanced SQL Programming !!! - Joe Celko
Introduction to Database Systems - Elmisri & Navath
Understanding the New SQL: A Complete Guide * - Melton & Simon
Oracle Database Administration: The Essential Reference - Kreines & Laskey
Oracle PL/SQL Programming, 3rd Edition * - Feuerstein
Oracle SQL*Plus: The Definitive Guide * - Gennick
Oracle SQL: The Essential Reference - Kreines
Optimizing Oracle Performance - Cary Millsap
The Guide to SQL Server - Nath
The Guru's Guide to Transact-SQL * - Henderson
MCSA/MCSE/MCDBA Self-Paced Training Kit: Microsoft SQL Server 2000 System Administration, 70-228, Second Edition - this book is embarrasingly bad - it has no author
Oracle SQL Tuning Pocket Reference - Mark Gurry
Mastering Data Warehouse Design: Relational and Dimensional Techniques - Imhoff, Galemmo, and Geiger
Productive Projects and Teams (second edition) !!!
- Tom DeMarco and Tim Lister
This book is referenced by so many others, I felt like I had already read it. A testament to its importance.
Refactoring !!! - Fowler
The Practice of Programming
!!! - Brian W. Kernighan, Rob Pike
If you understand and appreciate this book, I have a job for you.
Literate Programming * - Donald Knuth
Code Complete, 2nd Edition
!!! - Steve McConnell
This book changed my life! After studying Physics in college, I started programming
without knowing the first thing about team work, software engineering, or computer
science. But I had learned structure programming in Pascal and played with FoxPro).
I thought what I didn't know, but had a co-worker who introduced me to Dr Dobbs.
It was clear I didn't know shit, so I tried to read as much as possibly could.
This book taught me many practical things I could change about my own work habits
and my teams - now I'm a member of the ACM and have the IEEE's Software Development
Professional Certificate!
Rapid Development !!! - Steve McConnell
Writing Solid Code !!! - Steve Maguire
Dynamics of Software Development - McCarthy
Software Engineering (6th Ed.) - Ian Sommerville
Facts and Fallacies of Software Engineering !!! - Glass
Software Craftsmanship !!! - McBreen
The Pragmatic Programmer: From Journeyman to Master !!! -
Hunt and Thomas
After reading many of these general, how to work better kinds of books, this
one was still an eye opener. Convinced me to try Ruby, a great scripting language.
Data Crunching
- Greg Wilson
This is a great introduction to massaging, munging or crunching data. It's not
about heavyweight statistical analysis, but stuff like getting data from one
application into another. Also covers lots of little techniques that add up
to a lot of value.
Literate Programming – Knuth
The Elements of UML Style - Scott Ambler
The UML Toolkit * - Erikson
UML Distilled !!! - Fowler
Note that this book and the one above are not really about design, but about
how to document design in UML. Both are good, but the 2nd is much shorter and
to me, more approachable. The UML Toolkit is stricter and focuses on real time
vs business apps.
Programming Pearls & More Programming Pearls!!! - Jon Bentley
Design Patterns: Elements of Reusable Object-oriented Software * - Gamma, Helm, Johnson, Vlissides
Enterprise Integration Patterns - Hohpe and Woolf
Software Architecture in Practice – Bass, Clements, Kazman
The Mythical Man-Month,
1st Edition - Fred Brooks
Adding people slows down projects in the short term, and in the long term does
not increase productivity in proportion to the number of people added.
Anti Patterns: Refactoring Software, Architectures, and Projects in Crisis
- Brown, Malveau, McCormick, & Mawbray
I love the contrarian approach to learning. Ouch! That sucked; let's try not
to do it any more.
Extreme Programming: Embracing Change - Kent Brock
Interesting. This didn't change the way I work at all, but gave me comfort that
others used some of the same techniques.
Wicked Problems, Righteous Solutions - DeGrace & Hulet Stahl
Slack
- Tom Demarco
A book with one good idea (that's one more than most books). Companies need
slack (bandwidth) to deal with immediate issue (aka fire fighting) without disrupting
normal operations.
Hackers and Painters
!!! - Paul Graham
I had to expand the categorization to fit this in. It fits with these other
books more than any other group.
After the Gold Rush - Steve McConnell
Debugging the Development Process !!! - Steve Maguire
Software Project Survival Guide - Steve McConnell
Behind Closed Doors: Secrets of Great Management - Johanna Rothman and Esther Derby
Joel on Software !!! - Joel Spolky
Loved the web site, so i read the
book.
Peopleware – DeMarco and Lister
Peer Reviews in Software – Wiegers
Balancing Agility and Discipline – Boehm & Turner
The C Programming Language !!! - Kernigan & Ritchie
A classic - other language books get compared to this one - mostly unfavorably.
A much younger me stayed up into the wee hours doing exercises from this book.
Obviously no longer as relevent as in 1990, but this is the best written book
about a specific technology.
C++ Primer, 2nd Edition * - Stanley Lippman
Effective C++ &
More Effective C++ - Scott Meyers
STL Tutorial & Reference Guide - Musser & Saini
Expert C Programming !!! - Peter van Der Linden
I think of this as the next volume of "The C Programming Language".
Lighter style, but still well written.
Programming C# - Jesse Liberty
Core Java - Cornell & Horstmann
Java in a Nutshell - David Flanagan
Java Servlet Programming - Jason Hunter
Just Java and Beyond - Peter van Der Linden
Java Performance Tuning - Jack Shirazi
A Little Java, A Few Patterns – Felleisen & Friedman
Unix in a Nutshell - Dan Gilly
The FreeBSD Handbook - various
Unix Power Tools * - Peek, O'Rielly, Loukides
Learning the bash shell - Newham & Rosenblatt
Learning Red Hat Linux * - Bill McCarty
The FreeBSD Corporate Networker's Guide * - Mittlestaedt
Effective Com - Don Box
Inside OLE, 2nd Edition * - Kraig Brokschmidt
Couldn't finish, too big, too boring.
Advanced Windows (The Developer's Guide to the Win32 API for Windows NT and
Windows 95) !!! - Richter
This is the book I learned Windows programming with. Not as crisp as K&R,
but really well done. Convinced me to read Richter's book on .Net, which did
not disappoint.
Programming Windows 3.1 - Charles Petzold
Programming Windows 95 with the MFC - Prosise
Learning DCOM - Thuan L. Thai
VB and VBA in a Nutshell: The Languages - Paul Lomax, Ron Petrusha
Programming Distributed Applications with COM+ and MS Visual Basic - Ted Pattison
Distributed Applications with Visual Basic 6.0 - Microsoft Corporation
Windows NT Administration - Brain
Applied Microsoft .NET Framework Programming !!! - Jeffrey Richter
Win 2000 Active Directory – Lowe-Norris
Dynamic Html : The Definitive Reference* - Danny Goodman
Web Design In A Nutshell - Jennifer Niederst
Developing ASP Components - Shelley Powers
secrets of successful web sites - David Siegel
Computer Networks and Modern Operating Systems !!! - Andrew
S. Tanenbaum
Ok, these are textbooks. But Dr Tanenbaum does such great work ... defending
Linus Torvalds from idiots; aggregating election polls; building distributed
OSs.
TCP/IP Illustrated, Volume 1: The Protocols - W Richard Stevens
In Search of Clusters – Pfister
Programming Ruby - Thomas & Hunt (hope this language takes off :-)
Learning Perl on Win32 Systems - Schwartz, Olson, & Christiansen
Perl Cookbook * - Christiansen & Torkington
FoxPro 2.5 Advanced Developers Handbook - Adams & Powell
Event Driven Programming in FoxPro - Bard
Beyond Fear: Thinking Sensibly about Security in an Uncertain World - Bruce Schneier
This excellent book is easily accessible to non-computer people. I put it here because Bruce may be known to programmers as a cryptography expert (most of which is outside of my expertise, or "beyond me" in the vernacular). This book is mostly a discussion of public and private policy, where technology mixes with economics, psychology and the rest of the real world. He would make a great CTO for the Department of Homeland Security, if only they would listen to him.
Practical Cryptography - Niels Furgeson and Bruce Schneier
Fantastic. I have the utmost respect for these two. This book is well written, helpful (practical is in the title with good reason) and accessible to good engineers. Cryptography and more generally, security are both alien and difficult topics. In the rush to add features they used to mostly get ignored on software projects. In the new paraniod world post Sept-11th they get a lot more lip service. This book shows why security usually can't be added in at the end. Like quality, it must be a goal every step of the way. And it is hard. This book gives a practicing engineer or designer enough to be able to talk to an expert, which is ultimately what the book, quite reasonably, reccomends.
Software Testing Techniques * - Beizer
Testing Computer Software, 2nd Edition - Kaner, Falk, Nguyen
The XML Handbook - Charles F. Goldfarb, Paul Prescod
Algorithms in C++ - Robert Sedgewick
Mastering Regular Expressions - Friedl
Software Requirements - Karl Wiegers
Google Pocket Guide - Tara Calishain, D. J. Adams, Rael Dornfest
SharePoint User's Guide - Infusion Development Corp. I've been doing a few SharePoint project and decided I needed to understand some of the details. Normal books with team authors suck, this book suffers from that as well. However this has the appeal of being the smallest book on the topic at 120 pages. It really should have been 80, what with lots of step by step processes. e.g., "How to Remove a Site"... generally all you need are the first 2 or 3 steps to navigate to the function. If you can't figure out that you need to press the Delete button and press OK to confirm, you're dead in the water already.
Using SANs and NAS - W Curtis Preston
Dr. Dobbs Journal (subscriber since Jul-93)
MSDN Magazine - formerly Microsoft Systems Journal (occasional)
Communications of the ACM (subscriber since Sep-99)