Jared's Weblog

Main Page - Blog - Links - Resources - About - Contact Me


Suggested Reading List

Some of these books I've read, others Will read. Others still were suggested by some of our readers. Pick through the list and try to find a title you haven't read before. If you have a new favorite or a classic text that we missed, drop me a note and I'll add it to the page.

FYI, some of these links are Amazon referral links.

General Topics

Ruby

Java

Methodologies

Source Code Management

Miscellaneous

Leadership and People

Macs/OSX

Bibliography Resources

General


Head First Design Patterns Patterns can be dry and boring or they can come alive. This book brings them to life and is a very enjoyable read. I like the writer's guide in introduction too! ;)

Ship It! A Practical Guide to Successful Software Projects by Jared Richardson and Will Gwaltney. This book is our first but given the help provided by our publisher, is a decent effort (I think). If you like this site, you'll like the book. It's about practical ways to improve your development work both personally and for your team.

The Pragmatic Programmer by Andy Hunt and Dave Thomas. This book is a classic text on personal practices. It should be a desktop reference for everyone who writes code for a living.

Mastering Regular Expressions by Jeffrey Friedl. Regular expressions are the most powerful way to process text we.ve ever come across, but the .Here Be Dragons. factor is extremely high. This book handily slays the little beasties.

The Mythical Man Month by Frederick Brooks. Will realized after reading this book (the first edition, in college no less!) how much more there is to software development than simply coding up a program.

The Art of Computer Programming by Donald Knuth. There are multiple volumes in this set. They are a comprehensive introduction to classical computer science.

Death March: The Complete Software Developer's Guide to Surving Mission Impossible Projects by Edward Youdon. Death March projects are famous in the software industry. Understand them so you don.t get swept along by them.

Refactoring: Improving the Design of Existing Code by Martin Fowler. A great introduction to the ideas behind refactoring as well as lots of practical suggestions.

Refactoring to Patterns by Joshua Kerievsky. You.ve read about patterns, and you.ve read about refactoring. Now see the various patterns in refactoring projects. Enterprise Integration Patterns by Hophe and Woolf. This book is to distributed and N-tier systems what Design Patterns is to an individual program. Again, let someone else point out common pitfalls and solutions. Just reading this book will give you some great ideas for your next project.

Working Effectively with Legacy Code by Michael Feather. This book is a practical guide for testing, refactoring, and extending the product you inherited.

Code Complete by Steve McConnell. A well-known collection of best practices in building software.

Ruby

Programming Ruby: The Pragmatic Programmers' Guide by David Thomas with Chad Fowler and Andy Hunt. The book on Ruby for us non-Japanese speakers. Gives you everything you need to know to get a handle on the language.

The Ruby Way by Hal Fulton. Takes up where Programming Ruby leaves off. Saves you an immense amount of time figuring out how to best use the language for common tasks.

Agile Web Development with Rails What can I say? Want to learn Rails? Read this book.

Java

Head First Java, 2nd Edition Another great title from the Head First line.

Java Network Programming: A Complete Guide to Networking, Streams, and Distributed Computing by Michael Shoffner, Derek Hamner, Merlin Hughes. This book taught us how to write networking code. Period. Nuff said. (The Java part was an extra added bonus.)

Pragmatic Project Automation How to Build, Deploy, and Monitor Java Applications by Mike Clark. A complete guide to setting up and automating your projects infrastructure. A great read for developers of any language!

Pragmatic Unit Testing in Java by Andy Hunt and Dave Thomas. A great guide to getting started with JUnit (there's a version for C# and .NET as well).

JBoss At Work: A Practical Guide This book is one of the best introductions to the entire Java stack I've seen. Highly recommended.

Methodologies

Test Driven Development: By Example by Kent Beck. As much about design as testing, this one turned our ideas about program design and implementation on their heads.

Crystal Clear : A Human-Powered Methodology for Small Teams by Allistair Cockburn. Crystal is a popular agile methodology

Extreme Programming Explained : Embrace Change by Kent Beck. Interested in XP? Then you should read this book.

Extreme Programming Applied: Playing to Win by Ken Auer and Roy Miller. Widely considered the most practical of all the XP texts, it.s another must read for anyone using XP.

Agile Software Development with SCRUM by Ken Schwaber and Mike Beedle. Scrum is a great lightweight methodology. The name comes from rugby.

Source Code Management

Pragmatic Version Control Using CVS by Dave Thomas and Andy Hunt. Although we had used CVS for years, we found we didn't know as much about it as we thought we did. Answered questions we didn't even know we had.

Pragmatic Version Control Using Subversion by Mike Mason. Required reading for anyone learning Subversion.

Miscellaneous

The Little Schemer by Daniel Friedman and Matthias Felleisen. Opened our eyes to a whole new way of looking at programs, algorithms, and recursion. Talk about thinking outside the mainstream development box!

Dynamic HTML: The Definitive Reference by Danny Goodman. Our bible during a long, LONG summer of cross-browser web development. For almost every problem we ran into, this book had an explanation and more often than not, a solution.

BUGS in Writing: A Guide to Debugging Your Prose by Lyn Dupre. If you ever plan to write anything, read this book before you start, not while you write (like we did!). Lyn.s funny and effective advice will help you turn your ideas into readable books, articles, and reports.

UML Distilled: A Brief Guide to the Standard Object Modeling Language by Martin Fowler. You don.t have to use UML to benefit from this book. It.s a great introduction the Unified Modeling Language (UML) and how to visually represent your software.

Leadership and People

The 21 Irrefutable Laws of Leadership by John Maxwell. Like the law of gravity, you can either learn the laws or break yourself against them. This book is an invaluable insight into how people lead (or should lead).

The 7 Habits of Highly Effective People by Stephen Covey. This book explains clearly how to organize your life.and why you should bother! It.s essential reading for anyone who wants to be effective at home or work.

Peopleware : Productive Projects and Teams by DeMarco and Lister. A classic text, this book talks about common problems teams encounter and how to avoid them. Additionally, it will show you some key concepts your team can use to succeed where so many others have failed.

How to Win Friends & Influence People by Dale Carnegie. This book is the definitive guide to successful relationships (both personal and professional). This book has sold more than 15 million copies for good reason. If you haven.t read it, you owe it to yourself.

Mac/OSX

Mac OS X: The Missing Manual, Tiger Edition If you convert to the Mac platform we're told you'll need this book to get started.

Clickable resources from the Ship It! bibliography

[Coc01] Agile Software Development by Alistair Cockburn

[Cus03] A Global Survey of Software Development Practices by Michael Cusumano, Alan MacCormack, Chris F. Kemerer, and William Crandall. MIT Sloan School of Mgmt, June 2003.

[HT00] The Pragmatic Programmer by Andrew Hunt and David Thomas