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.

And here’s a sneak preview of the books which will appear in part two:

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.

Related Post

Jamie is a .NET developer specialising in ASP.NET MVC websites and services, with a background in WinForms and Games Development. When not programming using .NET, he is either learning about .NET Core (and usually building something cross platform with it), speaking Japanese to anyone who'll listen, learning about languages, writing for this blog, or writing for a blog about Retro Gaming (which he runs with his brother)


GaProgMan

Jamie is a .NET developer specialising in ASP.NET MVC websites and services, with a background in WinForms and Games Development. When not programming using .NET, he is either learning about .NET Core (and usually building something cross platform with it), speaking Japanese to anyone who'll listen, learning about languages, writing for this blog, or writing for a blog about Retro Gaming (which he runs with his brother)

  • Great list, Jamie.
    Especially Algorithms to Live By. Thought it was just one of those dry algorithms book but turns out to be a very practical book!

    And my recommendation is Working Effectively with Legacy Code (https://www.goodreads.com/book/show/44919.Working_Effectively_with_Legacy_Code?ac=1&from_search=true).
    The reason being that, every developer will have to work in brown field (legacy code). The books extensively with creating test codes and now I am realizing the importance of unit testing thanks to the book. I haven’t realized it in the beginning but now I do.

    • Algorithms to Live By really is amazing. I would definitely recommend that as a follow up to The Impostor’s Handbook for anyone who needs to brush up on algorithms.

      I have Working Effectively with Legacy Code on my list of books to read (I got it last year, but haven’t had the chance to read it yet), so I’m looking forward to it. I agree that most of our time, as developers, is spent in brown field (not sure how I feel about the visual, but I get why we use it as the opposite of green field) work.

      • I’ve just read The Impostor's Handbook recently and probably read Algorithms to Live By as a next technical book 🙂

  • Pingback: So You Want To Be a Game Developer? – The Gaming Waffles of the Taylor Boys()

  • Pingback: Yet Another Top 10 Dev Books Post – Part 2 – Jamie's Blog()