Reading List for an Apprentice Web Developer

Here are a few books that I found useful when I was starting out as a web developer. I originally wrote this list for a friend who is wrapping up his Computer Science degree, so the emphasis is on practical rather than academic knowledge.


These books touch on a lot of non-technical areas of the trade.


I love the structure of Apprenticeship Patterns. The book consists of small pieces of advice, each of which contains a context, problem statement, solution, concrete action to take and list of related advice. An example is something like, “Be the worst.” In other words, try to work on a team of people better tan you.

Meanwhile, Coders at Work was so intimidating — Sibel found some legendary programmers to interview — that I had to put it down a few times because it made me feel like a sham.

Special shout-out to Code Complete 2 for its excellent coverage of debugging, one of the many dark arts of our craft.



This list is a mix of titles that describe concrete pieces of web application architecture and high-level guides to building those pieces.


The Architecture of Open Source Applications series is probably the coolest idea for a technical book that I’ve heard of. Each chapter in the two volumes features a team member of an open-source project giving a high-level overview of how the project or a component works.

Meanwhile, Programming Amazon EC2 seemed dated even when I read it, but it was still a good intro.


Note: Both volumes of The Architecture of Open Source Applications are available to read online for free. They are also available as paper books and ebooks for a fee.


The backend language used for a web application can be anything, but on the frontend we are limited to using JavaScript or a language that compiles to it.


The JavaScript world moves so quickly that traditional books can’t seem to keep up.

I recommend focusing on the basics first: plain JavaScript. Then, if you don’t have much experience with jQuery, read up on it because it’s what most people use for DOM manipulations and AJAX calls. Finally, dip your toes into faster water with the excellent Developing Backbone.js Applications. This book covers a lot of modern approaches to JavaScript development, and Backbone.js is one of the most popular JS frameworks around today.

You should also check out CoffeeScript, which is a language that compiles into JavaScript and offers what some people think is a nicer syntax. The documentation is short enough that you won’t need a book.

You should understand CSS, though most teams now use tools like Sass to write “better” CSS.


These books are the most technically fun. Since almost any programming language has networking libraries, they’ve all been used to create HTTP servers, web frameworks and at least a couple of production sites or web services.


My web programming language of choice has been Python for a few years. Titles like Programming Python were a nice read back when I was learning the language, and the Django docs are a testament to how open-source software documentation should read.

For fun — and because I’m always looking for better tools and ideas — I learned Clojure and Go in recent years. Joy of Clojure is probably the best of the Clojure books. (See also Fogus’s Functional JavaScript.)


Computer Science

A few basic algorithms and data structures titles that I return to most frequently. Anyone could write a better list.


SICP is a classic, but I didn’t finish it. In fact, I’m “still reading” all of these books.


Note: You can read SICP online for free.


Choosing a text editor was one of the first steps that led me to feel, if not experience, more mastery as a programmer. I chose Vim first, and there aren’t many books about more modern editors, so these items focus on Vim.


Learn Vimscript the Hard Way is a more in-depth look at programming Vim than anything I’ve found. The one or two chapters on the subject in the other Vim books pale by comparison.


Note: Learn Vimscript the Hard Way is also available to read online for free.