Learning
These are the books I return to and the courses I have worked through rather than bookmarked. When I mentor someone I hand them a subset of this, in roughly this order.
Books
| Book | Author | Why it is here |
|---|---|---|
| The Pragmatic Programmer | Hunt and Thomas | The one I give people earliest. Very little of it is about code, which is the point: it is about the habits that decide whether what you write survives contact with a team. |
| Code Complete, second edition | McConnell | Long, and worth it. It answers “why is this function hard to read” with something better than taste. |
| Design Patterns | Gamma, Helm, Johnson and Vlissides | The Gang of Four. Dated in its examples and still the shared vocabulary: when I argued for the builder pattern over a procedural mess, this was the argument. |
| Clean Code | Martin | Worth reading and worth arguing with, which is most of its value. Some of it I follow to the letter, some I have watched teams apply as dogma until the code got worse. |
| Refactoring | Fowler | Gives the moves names, so a code review stops being an argument about preference and becomes two people agreeing which transformation applies. |
| Structure and Interpretation of Computer Programs | Abelson and Sussman | Genuinely hard, and anyone who says otherwise has skimmed it. It keeps asking you to build the thing you have been taking for granted, then asks what that means. I still do not understand half of it. |
Courses
| Course | By | Why it is here |
|---|---|---|
| Learn Python the Hard Way | Zed Shaw | The title is the method: type it out, break it, fix it. Unfashionable now, and still how I pick up a language I have no commercial reason to know yet. |
| The Ruby on Rails Tutorial | Michael Hartl | Taken while at an agency that was passing database files around by hand. I came back on the Monday and introduced migrations, which is the most direct line I can draw from a course to something I changed at work. |
| Laracasts | Jeffrey Way | Years of it. The best explanation of Laravel and of PHP as it is actually written now rather than as its reputation suggests, and the reason the PHP on my CV is not stuck in 2013. |
| Frontend Masters | Various | Where I go for depth rather than a tutorial. The courses are taught by the people who build the things. |
| Stephen Grider’s catalogue | Stephen Grider | Most of it, over the years. Good at the thing that is hardest to teach: building the whole thing rather than the interesting part of it. |
| Teach Yourself CS | Ozan Onay and Myles Byrne | A curriculum rather than a course, and I am still working through it. It exists because a lot of us came in by building things first and filled in the fundamentals afterwards. That is my route exactly. |
Why this page exists
Most of my career has been spent arriving somewhere that already has a problem. What travels between those engagements is not a framework, it is the set of ideas above. A CV lists what I have used. This is closer to how I decide.