November 16th update

Added a guide on Design Thinking

Design Thinking is the final topic in the developer mindset portion of the pillars of clean code.

In this guide, we learn about the basics of Human-Centered Design how you can use it to optimize your code to be understood by humans.

We're learn the psychology behind how humans discover and understand what can be done and how things work.

Then, we're learn the fundamental principles of design. Just like how there are software design principles, there are human-centered design principles. We can use them to optimize the discoverability and understandability of your code.

Armed with that knowledge, we'll be able to determine if code is clean and easy to work with, what makes it challenging to use, and how to improve it so that we can keep the developer experience of our coworkers and future maintainers high.

But Khalil, can't I just read Uncle Bob's "Clean Code"?

While I do recommend reading "Clean Code", this guide is going to act as a part of the philosophy — the baseline, behind how we reason about our own coding conventions. It will then act as a compliment to the rest of the structural software design principles we cover in this book.

Lastly, after having established the philosophy here, it will become possible for us to have principled and empathetic discussions towards balancing code that is structurally correct yet still understandable to humans.

Read the guide here.