1. The BBC Micro User Guide
This is possibly the most exciting computer book ever written! I started programming as a kid, back in the ’80s. As far as I remember, this guide came as a kind of manual with the BBC Model B Microcomputer. “The BBC User Guide” really opened up a whole new world for me and set the parameters as to the potential of computing for the rest of my life.
2. The C Programming Language
This book is incredibly dense. It’s a book I recommend anyone programming a computer in any language to read at least once. If you’re planning on learning C, I would suggest reading it two to three times and doing all the exercises. The style is now very old-fashioned, even by C standards, but I can’t think of a better introduction to the language. For me, it opened up the possibility of writing my own audio software.
3. The Mythical Man-Month
This isn’t a book about programming, but rather it’s about software development — specifically software project management. A basic sense of project management is essential if you’re working on any significantly sized project. This book changed the way I code by making me a better overall developer, enabling me to plan and make better decisions.
Status: timeless classic.
4. Learning Python
I learned Python by reading this book (3rd edition) on two long haul flights without reference to a laptop — it’s that well written. Along with a basic understanding of C, a decent grasp of Python is also a useful tool to have in your bag of tricks. Where C is the go-to language for low-level programming, Python is great for writing quick scripts, and it’s fast becoming the de facto language of machine learning. At the time of writing, “Learning Python” is number four on Amazon’s list of best sellers.
Status: Swiss army knife.
5. The 7 Habits Of Highly Effective People
Like “The Mythical Man-Month,” this isn’t a book about programming. However, reading it fundamentally changed the way I approach pretty much everything in life, programming included. I don’t read a lot of self-improvement books, but I found this one life-changing. It gives practical and well-paced lessons on how to think about plans, social interactions, and setting and achieving goals. It’s best read and digested over a long period. I left a year between reading their first six habits and the seventh, “Sharpen the Saw,” because I needed time to be ready for it.
Status: life coach.
I think if these books have anything in common, it’s that they don’t offer fast solutions or quick fixes. I’ve been coding for over 30 years and still consider myself a relative beginner. Technology is moving so quickly that we can’t stay on top of everything, but if we establish a strong set of personal values, an understanding of core principles, and keep our tools sharp, we at least give ourselves a fighting chance of achieving our goals.