Skip to content

shehab-as/software-engineer-handbook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

Software Engineer Handbook

Whether you're starting out in tech or looking to expand your knowledge, these books provide valuable insights that have benefited me a lot as an engineer over the past 8 years. I update this list every 3-4 months with personal feedback on the books I’ve read. Hope you find it useful—happy reading!

Books I’ve Read

A must-read for every software engineer. Clean code is code that’s easily understood by the whole team, ensuring readability, extensibility, and maintainability. This book covers essential principles like standard conventions, the broken window theory, KISS (Keep It Simple, Stupid), and the boy scout rule. It also covers some design principles like using polymorphism over if/else, dependency injection, over-configuration, and the Law of Demeter.

Highly recommend! This book helped me develop a pragmatic approach to problem-solving. It starts by discussing the Pragmatic philosophy, emphasising ownership and responsibility, then moves on to methodologies for working as a Pragmatic programmer and the tools to use. I recommend it to any engineer with 1+ years of experience.

One of the best resources out there for learning Distributed Systems. It is a deeply technical book that covers a wide range of topics like properties of a distributed system, Data Modelling, Storages (SQL vs NoSQL), Transactions, Scalability through Replication or Partitioning, etc. I recommend it to mid-senior engineers looking to deeply understand how distributed systems work.

A great book for studying system design questions. It first introduces a framework for approaching system design problems and then solves commonly asked questions by scoping the problem with functional and non-functional requirements. Once the scope is defined, it then designs a simple solution and then evolves it to a scalable system that meets the non-functional requirements. It's an excellent reference for anyone preparing for upcoming system design interviews.

I read this book back in 2017, and it was an excellent reference for practicing problem-solving skills. Managed to pass some FAANG coding interviews thanks to Gayle’s book. This book covers some of the core data structures, algorithms, Big-O notation, and more. I highly recommend it to CS students or anyone looking to learn data structures, algorithms, and how to solve coding interview questions.

Another great book for practicing problem-solving skills. (similar to Book #5) It has 180+ problems with a variety of new types of problems. It also has an online judge for problem-solving! https://elementsofprogramminginterviews.com

Everything you need to know about design patterns can be found in this book. It covers each design pattern in detail, mostly theoretical with some small code snippets. It's still an excellent reference for quickly looking up a specific pattern and learning about it. For example, if I need information about the Adapter pattern, I can simply open the book and find everything I need. I recommend to engineers who are looking to learn more about design patterns.

An influential book that introduces a practical and innovative approach to starting and managing a business! It outlines key principles like the Build-Measure-Learn feedback loop, building a minimum viable product, measuring its performance, and making informed decisions based on the results. I highly recommend this for engineers working at startups or entrepreneurs looking to start their own business.

One of the most inspirational and interesting books I’ve ever read. Meadows explains how everything in life is a system and unpacks the concept of systems thinking, helping us better understand and use the systems around us in sustainable, productive, and harmonious ways.

10. Staff Engineer: Leadership Beyond the management track (by Will Larson)

An insightful book for software engineers seeking answers to the question: "What if you want to advance your career without becoming an engineering manager?" Will Larson discusses the common archetypes of Staff Engineers and how their titles vary across different organisations (e.g., Tech Lead, Architect). He interviews several Staff+ Engineers, gathering their advice for those starting their careers as Staff Engineers. I recommend this book to senior software engineers who want to grow and step into tech leadership roles without necessarily going into management.

Books Recommended by Other Software Engineers

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published