Top 5 books for a junior software engineer (without a CS degree)

Jessie Auguste
CodingBlackFemales
Published in
6 min readMar 30, 2022

It can be daunting starting your first Software Engineer role. As a career switcher who does not have an education in Computer Science, it was daunting to think of all the information I might be missing compared to my peers.

We know that people can become efficient at programming without completing a CS degree, but there are certain parts of the job you’ll be able to grasp much quicker if you have a solid understanding of the fundamental concepts.

One of the things I struggled with most, is where to find that information without being overwhelmed by how much there is to know about each and every topic.

  • How important will knowing this particular algorithm be?
  • Will I need to know about the advantages and disadvantages to lots of data structures in my day to day?
  • Do I need to study software architecture to get a full understanding of how to structure this new feature?

The answers is: it depends.

I’ve found since reading these books, my decisions have been better informed and I feel confident in choosing one way over another.

These books haven’t given me what a whole Computer Science degree would, but it’s certainly gone a long way to helping me to understand a lot of what is ‘assumed knowledge’ required when looking for answers online.

These books give you a curated selection of without the overwhelm of a million possible rabbit holes you could go down for each word you don’t recognise when learning online.

Clean Code

A staple in most “must read” book lists related to coding. For good reason too.

“Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.”

When starting out in a code base, I really struggled to identify patterns that were ‘good practice’ vs not so good. Although it uses Java to illustrate the rules and different ways to write code, it is applicable.

This book is full of very strong opinions, and arguably a little extreme at times, but its also quite fun to feel your own opinions develop as you go through the book.

One of the best parts of the book are the code examples. Instead of just listing rules, you’ll be taken through examples that you revisit, applying the new concepts explained.

Test Driven Development with Python

“Obey the testing goat”

It can be tricky to understand the concept of Test Driven Development, and especially in the beginning, it can seem a little tedious and not clear what the purpose is.

This book changed all of that for me.

“By taking you through the development of a real web application from beginning to end, the second edition of this hands-on guide demonstrates the practical advantages of test-driven development (TDD) with Python. You’ll learn how to write and run tests before building each part of your app, and then develop the minimum amount of code required to pass those tests.”

If you’ve never used Django or an ORM/Web Framework before, this book gives you an awesome project to start with. The first couple of chapters can otherwise be skipped and you are given a step by step ‘code along’ project, where you go between building tests and extending features.

This book was really good for introducing and illustrating why TDD is so crucial to developing web applications in a safe way.

Grokking Algorithms

“Grokking Algorithms is a disarming take on a core computer science topic. In it, you’ll learn how to apply common algorithms to the practical problems you face in day-to-day life as a programmer.”

Big O notation?

Recursion?

Which database to choose based on your requirements?

If any of those topics scare you, this book is a fantastic introduction.

Full of diagrams and helpful exercises which get you to put into practice the topics it’s introducing, you’ll build up concepts and combine them until you get through some topics which might have initially seemed out of your reach.

I found that it has been super helpful to read this book along in a group, as we’ve been able to discuss answers to the questions as well as help each other with explanations to why we arrived at different conclusions.

Designing Data Intensive Applications

This one is incredible for joining lots of dots of distributed information.

By this point in the list, you will have spent a while building small isolated pieces, you may have even sunk your teeth into a larger project, and you’re starting to wonder how everything fits together.

I had tried using the youtube to gain insight into the things you want to consider when building software from scratch but there are so many opinions that it can be hard to distinguish what is fact and what is someone’s bias.

This book goes through lots of major design challenges in software architecture as well as explaining the different modern solutions available.

“Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications.”

Fluent Python

“Many experienced programmers try to bend Python to fit patterns they learned from other languages, and never discover Python features outside of their experience.”

This book is quite big but you can easily find the chapters that are most relevant to you and what you would like to use Python for. I’d look at it more as reference material, and not something you will need to read from cover to cover.

I’ve found myself coming back to this book, time and time again, when I come up against challenges in my day to day using Python.

My top tip for getting through these big text books?

Start a bookclub with people at a similar level to you and go through them together.

I wrote a post about how starting a Data Structures and Algorithms book club helps me to battle imposter syndrome. Read it here.

Thanks for reading!

I’d love to hear what you think of these books if you have had a chance to read them. Please let me know if there are any you think deserve to be featured on this list, that I’ve missed!

--

--

Jessie Auguste
CodingBlackFemales

Backend Software Engineer at CybSafe, Co-host of Glowing in Tech podcast: linktr.ee/glowingintech