Developer's Reading List

Feb 11, 2013
• Stephen Houser
in book notes and development

Often people, students, and colleagues ask “where did you find that
information”, or “where is a good place to start doing so and so.” To
answer those questions, this page collects a variety of materials that
have been useful to me over the years as reference, as learning
materials, and to keep up to date with current practice.

Top 10 Technology (Computer) Books

These are the books I would suggest you get a copy of and read cover to
cover. They range from hard-core code to interfacing with the end user
and include some physical (meaning hardware) titles. Later on there is a
selection of other helpful resources, but these are the ones you cannot
do without.

This replaces my previous number one pick. It is up-to-date with
recent languages and techniques. Though I don’t agree with all of
them (specifically class member variable naming with a trailing
underscore) and the sample code often violates some of their
guidelines, the advice is solid. In fact, the key ideas should be
written on a 3x5 card, laminated, and kept in every developers
pocket! If you forget to do that, at least remember, “Code should be
easy to understand.”

Code Complete should be on your book shelf and well dog-eared. It’s
getting a bit dated but still holds a wealth of information for
developers and it still gets a strong recommendation. For a long
time this has been better than any other code-writing book I had
ever read, seen, or heard about. I still say, “Buy it, read it
completely.”

There is a new “anniversary edition” out, I have read the original
not the new one. Beautifully explains that throwing more people at a
project does not make it develop faster. Easily number three on the
list. Short and sweet as well.

This book has been split into two books in the most recent revision.
I have not read the new ones, but I hear good things. My original is
falling apart at the binding from overuse. The examples are
wonderful starting points for any network-based system.

Another networking book with a new version out. Much more detailed
about the protocols and less on programming applications. Perfect
for network engineers and developers needing to understand the lower
layers of the network model.

Before Linux there was Minix, a more modular well-built operating
system for teaching operating system courses. This book details the
concepts and the source code for Minix. Perhaps my favorite applied
operating system book.

The dragon book. You never think you will be writing a compiler, but
you never know. The techniques on parsing and symbol table
maintenance are applicable to many other aspects of software
development.

They had been the cat’s meow for a long time. A few years ago, they
got a little off for me and I let my subscription lapse. Perhaps
it’s time to reconsider.

Other Items of Interest

So what about all the other stuff? Well there are plenty of items that
did not make the top lists that are still very useful, not to mention
very fun. Here is a collection of items you should investigate if they
peak your interest.

No amateur radio person would be complete without knowing about the
American Radio Relay League Their publications are second to
none in the areas of radio (wireless) systems. This is definitely a
hardware hackers item.

O.k. this may not _technically_be a software/computer book, but the
essence of and recursiveness in the book applies itself to many
computer problems. Besides, if you make it through this book, and
understand half of it, you will be admired by all who know it. A
former top 10 book for me.

I have gone mostly through the abbreviated CD/video version as well
– got bored. Text has many good points but is often too dragged
into details. Repetitive – as is the iterative cycle pushed in the
book. Good reading and reference regardless, length just not needed.

Core J2EE Patterns

Tells you what you will learn, learns you, tells you what you
learned, then repeats three or four more times. The introduction to
patterns and the pattern library are essential. There are parts in
the middle I could have done without. makes me wonder which patterns
Sun is pushing though Home == Factory!?

Art of Java Web Development by Neal Ford.

An excellent diganosis of Java web development. I love his approach
in leading you down the path to Model 2 and Model-View-Controller
applications from an application that you think is flexible already.
Every Java/JSP/Servlet web developer should give this a good read.
One down fall is that it gets to web frameworks, but does not quite
give enough information to use them. Regardless this book is an
excellent overview.

This is not only a great book on the MicrochipPIC
Microcontroller, it is an excellent hardware book. There are
many interface circuits and general purpose ideas that are
incredibly useful. This is my first reference for hardware projects.

In the Queue

I’m just starting this book, but it comes highly recommended. It is
another in the line of clean, effective, code-writing books that are
often missing from curriculum and teaching of Computer Science.

Final Notes

I hope that this reading list has given you some ideas and places to
start researching more computer, software, and hardware topics. In the
future we will refer back to parts of many of these books, magazines,
and other items as backup material.

Until then, “So long and thanks for all the fish.” (Hitchhikers Guide
to the Galaxy Trilogy by Douglas Adams)