Skip to content

Instantly share code, notes, and snippets.

@kiview
Last active May 29, 2024 14:41
Show Gist options
  • Save kiview/dd636f4ece4f677c812e37863c1ecc18 to your computer and use it in GitHub Desktop.
Save kiview/dd636f4ece4f677c812e37863c1ecc18 to your computer and use it in GitHub Desktop.
Software Engineering Reading List

Since I sometimes get asked about what I would recommend as reads to gain a deeper understanding about software engineering, I was thinking to just compile a list of my favourite books in this area, which I consider a very valuable read 🙂

Object Oriented Programming

Design Patterns: Elements of Reusable Object-Oriented Software

By Gamma et. al.

I think this is one of the classics and a very recommended read (but with a pinch of salt), basically, one of the books starting the patterns movement in OOP. While one has to be careful to not blindly force those patterns into your own software design, it is critical knowledge and part of the cultural backbone of the software industry. Knowing those patterns and being able to quickly identify them helps tremendously in understanding unfamiliar code bases and when having architecture discussions with peers.

Code Complete

By McConnel

This is a very hands-on and detail-focused book, concentrating on the lower level aspects of software contruction, e.g. what are good variable names, how can you structure your methods, etc.. This contains a lot of pieces applicable for object oriented programming, but a lot of concepts hold true for other languages as well.

Clean Code

By Robert Martin

Where Code Complete focuses on the details, Clean Code zooms out a bit and thinks about how classes and object should be designed to effectively interact with each other. It still provides a lot of very hands on code-examples though and I think it has, as a whole, a higher information density than Code Complete (which has more details).

Testing

The Art of Unit Testing

By Osherove

This book if where I really understood Unit testing and realized how to write good and useful unit tests.

Architecture

Software Architecture for Developers

By Simon Brown

Simon is the inventor of the C4 model and this book uses the C4 model to give a very pragmatic developer focused approach to understanding and documenting software architecture.

Culture & Career

The Software Craftsman

By Mancuso

This basically summarizes for me personally how a modern self-conception of yourself as a professional and responsible software developer should look like.

The Pragmatic Programmer

By Hunt & Thomas

Some recommendations are a little bit old-school, but if you consider the publication date, this contains a lot of wisdom about techniques we still didn't learn as an industry and that could our (work) life so much easier, especially with regards to extreme automation of tasks (e.g. automatic generation of documentation). and use of scripting languages.

Clean Coder

By Robert Martin

Follow up book of Clean Code. Very hard, very white male, approach to work ethic and career as a software developer. Works well if you are a white male I suppose 😉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment