Today’s header image was created by Sebas Ribas at Unsplash
Another Top 10 Post?
Why not, everyone likes lists right?
What I thought that I could do is I could list 10 books I’ve read which I feel have had a positive affect on my career. I’m no expert in development
shh! Don’t destroy the illusion
but I feel like reading these books has gotten me a little closer to becoming the expert that I want to be.
Before I start though, I want to say that this isn’t going to be the same list of 10 books that you’ve read elsewhere. I’ll have a small selection of “greatest hits”
books which often appear in these kinds of lists
towards the end of this series of posts, but the 10 books that I’ve picked might not be on everyone’s top 10 development books lists.
How Do You Mean?
I don’t want this to be yet another blog post which lists the commonly recommended books, which appear in all of the top 10 lists that anyone can find on Google.
For example, everyone recommends Code Complete 2 by Steve McConnell
and with good reason
but I haven’t included that classic tome in my 10 recommended books. Mainly because I can’t bring anything new to the discussion about how amazing that book is or how each time I read it, I learn something new.
if you take development/programming seriously then you need to read this book.
And more than once
This doesn’t mean that you won’t have heard of these books, quite the opposite. But I feel like you might not have read them all.
How Are You Going To Do This?
I’ll list each book, discuss why I think you should read it and how I think it’s helped me to improve. I’ll also link to the book on Good Reads where you can see what other people think about each book, and I’ll even have a link directly to Amazon where you can buy a copy of the book.
The List – A TL;DR
I’ll list the books here, with links to GoodReads, so that you can see which books I’m about to discuss. Don’t worry though, I’ll go into detail about each one in their own section.
Oh, I’m also not going to rank them. Each book appears in the list, but not in any kind of order.
- Code: The Hidden Language of Computer Hardware and Software
- The Imposter’s Handbook
- Clean Code: A Handbook of Agile Software Craftsmanship
- The Complete Software Developer’s Career Guide
- Algorithms To Live By
And here’s a sneak preview of the books which will appear in part two:
- The Spirit of Kaizen: Creating Lasting Excellence One Small Step at a Time
- Masters of Doom
- Effective Programming: More Than Writing Code
- Dreaming in Code
- The Phoenix Project
psst, any of these would make perfect Christmas gifts for a developer in your life
Anyway, let’s start the show
Code: The Hidden Language of Computer Hardware and Software
Back at college
in the UK you (usually) attend college between the ages of 16 and 18, THEN go on to university
I took an electronics and telecommunications course. It was a two year course and it introduced me to a whole bunch of exciting stuff like: Assembler and C (I’d only programmed in BASIC before then); all sorts of communications encodings and modulation patterns (Pulse Code Modulation, anyone?); and low level digital and analogue electronics.
As soon as I hand soldered my first flip-flop circuit
I seem to remember it being an SR-NOR circuit
I wanted to see how all these transistors, capacitors and resistors built up to being able to me being able run around a dingy cave as Lara Croft.
If I’d have had this book back then, my questions would have been answered… until I got to university that is.
Buy “Code: The Hidden Language of Computer Hardware and Software” on Amazon
This book covers EVERYTHING from the invention of the Telegram all the way up to high level programming languages. Seriously, the author (Charles Petzold) starts at resistors and capacitors and builds all the way up to the modern computer. Each stage along the way is approachable and teaches you all of the maths and physics need to understand what you’re about to read.
It also has some amazing circuit diagrams
I’d recommend this book for anyone who wants to know how a computer works on a deep level.
The Impostor’s Handbook
I studied Computer Science at University – as part of a computer science degree they teach you all about Algorithms.
Algorithm comes from the Medieval Latin “algorismus”, which in turn is a mistranslation of the Arabic “al-Khwarizmi”, which is the surname of a 9th century mathematician called Abu Ja’far Muhammad ibn Musa al-Khwarizmi.
They also teach you about programming languages, scripting languages, operating systems, Big O notation, databases, and all sorts of other cool stuff.
These days you can be a developer without having taken a Computer Science degree
it’s always been possible, to be honest. But it’s more accepted these days
or having learnt about algorithms. The book is for those folks, or anyone who wants to re-learn any of the Computer Science fundamentals.
Rob Conery
one of the two dudes who brought us the This Developer’s Life podcast
is the author of The Impostor’s Handbook and he makes no bones about the fact that he didn’t come from a traditional Computer Science background. He also doesn’t mind talking about the dreaded Impostor Syndrome
impostor syndrome affects folks from other walks of life, too. But it’s particularly rampant with developers
and how it has affected his life and career.
Buy “The Impostor’s Handbook” at Big Machine
I’ve read this book a few times and, just like Code Complete, something new sinks in each time. And I have a CompSci background.
maybe it’s the cute stick figure images
Conery is able to describe incredibly complex topics in a manner that is both down to Earth and charming. This is, hands down, the best introduction to Computer Science fundamentals that I’ve ever read.
I would definitely recommend this book to anyone who either wants to learn the CompSci fundamentals, or brush up on them.
Have you got an interview coming up? Give this book the once over before you have the interview.
There’s even a bundle where you get the book and a bunch of videos which feature Rob talking you through each topic – if videos are more you thing, that is.
Clean Code: A Handbook of Agile Software Craftsmanship
I’m not going to lie, I really wanted to discus Rob “Uncle Bob” Martin’s latest book (Clean Architecture), but it’s been sold out in the UK since it came out.
for context, it was released on the 1st of September, 2017
That doesn’t mean that I wouldn’t love to talk about Clean Code, though.
This is a classic book and the first in Uncle Bob’s “Clean” series (Code, Coder, and Architecture). It’s an important book for Agile folks, too. It not only points out the importance of clean code
code which is short, elegant, and to the point
but also that it must be produced that way for an organisation to remain Agile.
Buy “Clean Code: A Handbook of Agile Software Craftsmanship” at Amazon
Without a clean code base, how can the developers within a company possibly hope to utilise Agile methodolgies? If the code isn’t clean, then it will bounce between QA and Dev until the cows come home.
which is the opposite of Agile – although some do say “fail fast, fail often”
And this book will teach you the methodologies you’ll need to create lean, mean, clean, and Agile code.
The Complete Software Developer’s Career Guide
I owe a lot to John Sonmez
he runs Simple Programmer
If it weren’t for his course on starting a development blog, then “A Journey in .NET Core” may never have been started
at least, not by me anyway
I wouldn’t have been on The Cynical Developer podcast, I wouldn’t have guest written for codeshare.co.uk, and my previous blog post wouldn’t have been about how I’d written 101,000+ words across 52 blog posts in a single year.
This guy really knows his stuff, and The Complete Software Developer’s Career Guide is a follow up to his previous book (“Soft Skills: The Software Developer’s Life Manual”)
which I’d also recommend
but this time with a focus on the steps that a software developer can take in order to climb the ladder, be a more productive worker, be seen as the expert (and actually be that expert), and everything else which is required to achieve your goals as a software developer.
Buy “The Complete Software Developer’s Career Guide” at Amazon
Anyone who wants to learn how to climb the corporate ladder (or to become financially independent enough to quit their developer job completely) should read this book. John takes a no-BS approach to the topic and presents the information in an easy to consume format, with short chapters and links to his website for more information where necessary.
Algorithms To Live By
Where The Impostor’s Handbook finishes
on the topic of algorithms, that is
this book starts off. Algorithms To Live By is an amazing book about how you can apply Computer Science algorithms to your real life problems.
Want to know how best to sort your socks? How to look for the best apartment? The most efficient way to store and retrieve files in a filing cabinet? This book not only teaches you those things, but it also teaches you the algorithms that the techniques are based on, where they came from, and how they’re applied in Computer Science.
It’s a no-nonsense book, and is extremely easy to follow.
Buy “Algorithms To Live By” at Amazon
Combine this book with The Impostor’s Handbook, and I guarantee that you’ll ace you’re next interview.
my client accepts no responsibility for your getting hired
I think that will do for the first part in this series. In part two, we’ll go through the remaining books in my list. You should definitely come back for part two.
What are some books which you feel have had a positive affect on your career? Are they all technical ones, as they have been in this list so far? I’d love to hear about them, even if you’re not a developer.
Recommend me some books in the comments below.