Reading list for younger programmers
Being what they call a “senior developer”, I should have invested some time helping younger colleagues learn. (I may have shied away from teaching them because they usually have real Computer Science degrees, while I’m just an Information Scientist-turned-programmer with lots of self-education and training on the job. But not all real-world wisdom seems to be taught in Comp Sci courses.)
The best advice I could give: Don’t take my advice, learn from the masters instead. There’s so much more to the craft of programming than just getting your code to run. No matter what language you will be programming in, read these three books:
Eric Steven Raymond’s The Art of Unix Programming (free, online), The Pragmatic Programmer by Andrew Hunt and David Thomas, and Getting Real by Basecamp.
Then make sure you know these phrases, you might need them from time to time:
- Worse is better.
- You aren’t gonna need it (YAGNI).
- Keep it simple stupid (KISS).
- Do the simplest thing that could possibly work.
- Complexity kills.
- A complex system that works is invariably found to have evolved from a simple system that worked.
- Premature optimization is the root of all evil.
- All non-trivial abstractions, to some degree, are leaky.
- Eat your own dog food.
- Don’t repeat yourself (DRY).
- There’s no silver bullet [PDF].
- Don’t make me think.
Now go and read Tim Bray, Dave Winer, Joel Spolsky, Jeff Atwood, Signal vs. Noise, Paul Graham, and Seth Godin.
Have fun and good luck!