The all-time best software engineering books

The all-time best software engineering books

Nothing can beat first hand experience, but you can't always get it and when you can't, these all-time best software engineering books are the next best thing.

Will Mayger

A post by Will Mayger
July 15, 2021

I have been a frontend software engineer for almost all of my working life so far, and have worked in many companies and in many different areas.

Nothing can replace real life experience when you are trying to improve yourself and your skills.

However, for most of us we don’t get to work and gain experience in everything we might want to, which can be a limiting factor to how far experience alone can take you.

Which is why I have written this post, to share with you the all-time best books for software engineers (for both frontend and backend engineers) to level up your career and get you more responsibilities in your work, better pay, and to write better code.

Disclosure: This page contains affiliate links, meaning I receive a commission if you decide to make a purchase through some of these links, but this is at no additional cost to you and it is worth noting that I only promote products I truly believe in.

Let’s take at my picks for the all-time best software engineering books:

  1. Cracking the Coding Interview
  2. You don’t know JS yet (YDKJS)
  3. Introduction to Algorithms

1. Cracking the Coding Interview

Hard cover of the Cracking the Coding Interview by Gayle Laakmann McDowell book

The software engineering book Cracking the Coding Interview is written by Gayle Laakmann McDowell and is an immensely useful book if you are looking to learn the skills you need to accelerate your career by 2 - 5 years all whilst being able to land yourself the jobs that everyone wants at top tier tech companies such as Google, Facebook, or Microsoft.

This book not only goes over what you need to pass these technical interviews, but it also covers basics that all software engineers need to know like big o notation, algorithms, data structures and more such as heaps, heapsort, and mergesort, to name a few.

It covers these topics in a way that is easy to understand even if you have never touched algorithms and data structures before.

All in all, I believe this book to be the best all-rounder in my selection so if you are looking to smash coding interviews, get paid more and are looking to level up your software engineering knowledge, then this book is for you. You can find this book on amazon by clicking here.

2. You don’t know JS yet (YDKJS)

Hard cover of the you don't know JS yet (YDKJS) by Kyle Simpson book

You don’t know JS yet is one of the best and most well known books in the industry and that you will ever read if you want to get to know JavaScript in depth.

The book has been created and written by Kyle Simpson.

If you plan on becoming an expert in JavaScript or are going after roles such as senior, staff or principal engineering roles based around JavaScript I highly recommend reading this book (and more than once) because it covers all the essentials of how JavaScript works along with the intricate little details that could save you hours of debugging in practice.

You will learn how JavaScript gets run in the browser, how many threads JavaScript uses (Spoiler, it is 1), why and how it solves this problem, how things like useTimeout, useInterval, and async code are able to work in JavaScript and much more.

This book will save you hours upon hours of research that you will inevitably need to do at some point in your career if you work with JavaScript.

If you are serious about interviewing for JavaScript roles or serious about leveling up your career in JavaScript then you shouldn’t think twice about reading this book, and every book in the YDKJS series.

To find this book you can either buy it on amazon by clicking here, or you can also find it free here on github.

I personally recommend to buy yourself a physical copy of this book from amazon because not only will you be referencing it for years but you will also want to make notes, have the complete set of books on your bookshelf so everyone knows that you do in fact know JS and also to help support the author who has written this book.

3. Introduction to Algorithms

Hard cover of the introduction to Algorithms by Thomas H. Cormen book

Now, I am sure most have already heard about Introduction to Algorithms by Thomas H. Cormen.

It is pretty popular amongst software engineers because it is one of the best and most complete books you will find on computer algorithms.

This book is certainly not a light read but it will cover more algorithms than you realise were in existence and if you go through the ones in this book you will become very knowledgeable in that part of software engineering.

If you are looking to become an expert in algorithms, it is a book you need. It goes into great depth over hundreds of algorithms no matter how complex they are.

It goes without saying that if you can learn and master even a handful of the algorithms in this book you will ace just about any technical interview that uses them to assess your ability as well as writing performant code.

However, whilst you don’t necessarily need to have experience with algorithms and big o notation before reading this book, it is also not for beginners and I would highly recommend having at least some experience beforehand because it is advanced and covers highly complex topics (having experience with math used in computer science would really help as well).

If you are looking to pass a single technical interview, then this might not be the book for you and instead it might be worth looking at something like Cracking the Coding Interview.

But if you actively want to learn and master algorithms in software engineering and to level up your career for years and years to come, then this is the book for you. You can purchase it from amazon by clicking this link.


And there we have my top 3 picks for the all-time best software engineering books.

Even if you only ever get and read one of these books, it will still drastically improve your knowledge in software engineering and help you to level up your career and ultimately demand better pay.

I hope this post has helped, but before you go I highly recommend that you checkout Pluralsight if you are interested in improving your software engineering skills, such as React, JavaScript, or Typescript (and much more).

Not only does Pluralsight provide you with all the learning material you need but it also let's you learn in a fun, interactive way and gives you the ability to see your current progress and level in a certain skill via their Skill Assessment tool which can help you see what you need to learn next to keep improving!

Some graphics used on this post were made using icons from flaticon.