Read those 5 books to become a better Software Engineer

By KaroCodes | KaroCodes | 17 May 2021


Do you want to become a better Software Engineer?
Do you want your projects to be easier to maintain? Follow good programming practices
Do you want to be able to quickly understand a complex codebase when joining a new company?
Do you want to work efficiently with other engineers of the same or different specialties, designers and product managers?
Do you want to gain knowledge and skills necessary to pass coding interviews in big tech companies like Google, Facebook or Microsoft?

If you answered YES to any of those questions this video is for you.

My name is Karo and I’m a software engineer with about 10 years of professional experience both freelancing and working in big tech and rapidly growing startups.

I will present you 5 books that in my opinion can help you become a better software engineer or achieve any of the goals I mentioned at the beginning. The books are technology independent which means it doesn’t matter if you are a frontend, backend, data, mobile or anything else engineer - you will find value here.

The first 4 books come in an order from the least experience required to the most. The 5th book is a bonus as I don’t think it in itself will make you a better engineer but it will help you get opportunities and exposure to situations that will put you in a position of learning.

If you’re interested in books about leadership and taking a career path of engineering manager and eventually, CTO stay tuned for next week’s video/post where I will have 3 book recommendations for you talking about exactly that!

 

 

Clean Code by Robert C. Martin - Book Cover

Book #1

Clean Code by Robert C. Martin

Buy on Amazon: http://bit.ly/KaroCodes-CleanCode

If you are fresh out of uni or about to get your first job the chance is you haven’t yet worked in a codebase shared between multiple people for a long period of time. Working with others brings a whole new level of challenges to your software engineering career. Clean Code talks about those challenges and how to work thru them by writing well-structured, easily understandable and maintainable code. From things as simple as naming your variables thru when and how to use comments (and how to avoid using them) to class organisation and app architecture, good practices on each level of software abstraction including some design patterns and concurrency.

This book is a must-read if you want to produce high-quality code. It will help you develop good standards of how the code should be written. It will allow you to save time by writing reusable code, not having to guess what your old code was supposed to do. It will also make code peer reviews easier for both you and the reviewers as your code will be self-explanatory.

 

 

Design Patterns by Erich Gamma, Richard Helm, et al. - Book Cover

Book #2

Design Patterns by Erich Gamma, Richard Helm, et al.

Buy on Amazon: http://bit.ly/KaroCodes-DesignPatterns

Clean code mentions some design patterns. What is a design pattern you ask? Design pattern is kind of a template for a common software engineering problem. It’s a description of how to structure your code to achieve the result you want in a clean, proven way.

It’s important to know the most popular design patterns so you do not reinvent the wheel. You can save time by applying those proven solutions and your teammates will also understand what you are doing (assuming they are familiar with the given pattern or you can simply point them to a wiki page about it instead of having to argue how your solution works and why it is correct). 

When joining a new company I guarantee you will find a lot of the design patterns being used and being able to spot them will save you time and get you from the onboarding process to delivering value much faster.

By using design patterns you will be able to avoid some unexpected bugs and issues as being resistant to them is often hardwired into the pattern itself.

 

Clean Coder by Robert C. Martin - Book Cover

Book #3

Clean Coder by Robert C. Martin

Buy on Amazon:  http://bit.ly/KaroCodes-CleanCoder

I know it sounds almost the same as the first book and yes it’s written by the same author. However, this book focuses on the other set of challenges that come from working in a team - communication, collaboration and leadership. Those are areas we often neglect as software engineers but they are crucial if you want to become a professional or continue on a path of an engineering manager. 

Clean coder focuses on you, not your code. It teaches you how to communicate with teammates and stakeholders, other engineers or other professions like product managers or designers.

It talks about taking responsibility, estimating, saying yes and saying no, time management, collaboration, mentoring and working in a team and around a project.

What I liked about this book were actual conversation examples. The same conversation was repeated a couple of times using different communication methods and different outcomes were presented based on that.

For me being both not great at communication and not a native-speaker this book helped greatly and actually helped me be happier at work as I was able to state my boundaries and expectations as well as my progress and blockers.



How many licks?: Or, How to Estimate Damn Near Anything by Aaron Santos - Book Cover

Book #4

How many licks?: Or, How to Estimate Damn Near Anything by Aaron Santos

Buy on Amazon: http://bit.ly/KaroCodes-HowManyLicks

One part of communication, especially with product managers or other business stakeholders is estimations. As you progress in your career and take on more responsibility there are also more expectations towards you.

One of them is that you will be able to estimate when a given feature or a project will be ready. How many engineers you need in your team to deliver it before a given date. What trade-offs you can make to deliver faster. What are the risks that might jeopardise sticking to the deadline?

How many licks is not about managing and estimating a software project. But it gives you methods and tools to estimate damn near anything ;)  It will also be helpful if you are planning a freelance career as clients also request estimations as often they pour their own private money into whatever it is you are developing for them.

This book is very short, easy and fun to read and I find it useful in both my engineering career and my everyday life. The thing I used it for the most recently was to estimate how long it would take me to earn the same money from YouTube as I do at my every-day job. My estimations say around 14 months - NOT BAD AT ALL.

 

Cracking the Coding Interview by Gayle Laakmann McDowell - Book Cover

Book #5

Cracking the Coding Interview by Gayle Laakmann McDowell 

Buy on Amazon: http://bit.ly/KaroCodes-CrackingTheCodingInterview

Initially, I didn’t mean to include this book here. I actually wanted to recommend Algorithms + Data Structures = Programs by Niklaus Wirth as a book #1 on this list. Algorithms and data structures are fundamental in your software engineering career. They are tools that you will use every day, and knowing your tools is extremely important.

However, after checking availability of this book I realised I simply cannot recommend this to you. This book is old, only available as a hardcover and very expensive.

I don’t want to just pick a random algorithmics & data structures book that I haven’t read so instead I’m recommending you this: Cracking the coding interview

This book helped me score my internship at Microsoft and Google. It showed me how to use the algorithms I learned at uni to solve problems usually presented at coding interviews at big tech or in programming competitions. It explains the algorithms and their applications to you so if you learn best by example - this just might be the book for you.

 

Those are my top 5 books to read if you want to become a better, more professional software engineer. No matter if you work or want to work in big tech, startup, freelance or still study. I’ve read them all at different stages of my career and one thing I wish I did differently is to read them earlier. 

Also remember - books on their own are not worth much. It’s the practice you put after reading them that matters. Try to apply everything you learn as soon as you learn it. You will remember it longer and you’ll be able to spot chances to use it easier in the future. Write things down if that helps.

What is your favourite book about software engineering? I’m always happy to read some more so any recommendations are welcome :) 

Keep up with me on​
❤️ YouTube 
🖤 GitHub ​
🤍 Discord 
💙 Twitter ​
💜 Instagram 

My desk setup
https://kit.co/KaroCodes/my-desk-setup

My recording setup for YouTube videos
https://kit.co/KaroCodes/my-youtube-recording-gear

My book recommendations
https://kit.co/KaroCodes/books-for-software-engineers




How do you rate this article?


5

0

KaroCodes
KaroCodes

Software Engineer at Canva 🎨 Content Creator on YoutTube 🎬 https://youtube.com/KaroCodes


KaroCodes
KaroCodes

Karo: Ex-Microsoft, ex-I-said-no-to-Google Canva Video Android engineer coding since I was 8 with Master's in Computer Science specialising in Embedded Systems and Sensor Networks 🎓 Youtube channel: https://youtube.com/KaroCodes 🎥 Exploring the world of blockchain, cryptocurrencies and dapps development and will document here 💻 🎉

Send a $0.01 microtip in crypto to the author, and earn yourself as you read!

20% to author / 80% to me.
We pay the tips from our rewards pool.