The Wall of Coding Wisdoms in Our Office
Posted on Feb 20, 2020. Updated on Jun 12, 2022
There are some principles in software development that I always try to keep in mind. They guide me when I’m in danger of heading in the wrong direction. That’s why I printed those principles and hung them on a wall in our office. In this post, I share this subjective set of quotes with you. There is also a PDF for download available.
The Wall in Our Office
![The Wall of Coding Wisdoms in our office](/blog/2020/02-wall-coding-wisdoms-quotes/photos/wall-of-coding-wisdoms-700.jpg)
The Wall of Coding Wisdoms in our office
The Quotes
![Premature optimization is the root of all evil. Donald Knuth](/blog/2020/02-wall-coding-wisdoms-quotes/premature-optimization.png)
Premature optimization is the root of all evil. Donald Knuth
Source: Book ‘The Art of Computer Programming’ by Donald Knuth (1968). Wikiquote: Donald Knuth
![Rules of optimization: 1. Don’t! 2. Don’t… yet. 3. Profile before optimizing. Michael Jackson](/blog/2020/02-wall-coding-wisdoms-quotes/rules-optimization.png)
Rules of optimization: 1. Don’t! 2. Don’t… yet. 3. Profile before optimizing. Michael Jackson
Source: Rules Of Optimization
![As a programmer, never underestimate your ability to come up with ridiculously complex solutions for simple problems. Thomas Fuchs](/blog/2020/02-wall-coding-wisdoms-quotes/complex-solutions.png)
As a programmer, never underestimate your ability to come up with ridiculously complex solutions for simple problems. Thomas Fuchs
Source: Tweet by Thomas Fuchs
![Get your data structures correct first, and the rest of the program will write itself. David Jones](/blog/2020/02-wall-coding-wisdoms-quotes/data-structures-first.png)
Get your data structures correct first, and the rest of the program will write itself. David Jones
Source: Programming Pearls
![The #1 rule of distribute computing: Don’t distribute your computing! At least if you can in any way avoid it. DHH (David Heinemeier Hanson)](/blog/2020/02-wall-coding-wisdoms-quotes/rule-one-distributed-computing.png)
The #1 rule of distribute computing: Don’t distribute your computing! At least if you can in any way avoid it. DHH (David Heinemeier Hanson)
Source: DHH (David Heinemeier Hanson) in ‘The Majestic Monolith’. Moreover, Martin Fowler’s FirstLaw has the same message: “My First Law of Distributed Object Design: Don’t distribute your objects”.
![Scalability. The #1 problem people don’t actually have but still solve. Eberhard Wolff](/blog/2020/02-wall-coding-wisdoms-quotes/scalability.png)
Scalability. The #1 problem people don’t actually have but still solve. Eberhard Wolff
Source: Tweet by Eberhard Wolff
![Shared + Mutable = Danger! Andrey Breslav](/blog/2020/02-wall-coding-wisdoms-quotes/shared-mutable-danger.png)
Shared + Mutable = Danger! Andrey Breslav
Source: KotlinConf 2018 Keynote by Andrey Breslav
![Prefer duplication over the wrong abstraction. Sandi Metz](/blog/2020/02-wall-coding-wisdoms-quotes/duplication-wrong-abstraction.png)
Prefer duplication over the wrong abstraction. Sandi Metz
Source: Talk “All the Little Things” and the post “The Wrong Abstraction” by Sandi Metz.
I also like the following quotes from the talk:
- “I felt like I had to understand everything in order to help with anything.” (5:05)
- “Duplication is far cheaper than the wrong abstraction”
![Avoid premature distribution. 2. Avoid premature abstraction. Both offer a lure of purity, cleanliness and scalability but add complexity and operational/cognitive overhead. Karl Isenberg](/blog/2020/02-wall-coding-wisdoms-quotes/premature-abstraction-premature-distribution.png)
- Avoid premature distribution. 2. Avoid premature abstraction. Both offer a lure of purity, cleanliness and scalability but add complexity and operational/cognitive overhead. Karl Isenberg
Source: Tweet by Karl Isenberg
![Data dominates. If you’ve chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming. Rob Pike’s 5. Rules of Programming](/blog/2020/02-wall-coding-wisdoms-quotes/data-dominates.png)
Data dominates. If you’ve chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming. Rob Pike’s 5. Rules of Programming
Source: Rob Pike’s 5 Rules of Programming
![Compassionate Tech Values: Ego < Humility. Elitism < Inclusion. Competition < Cooperation. Being Smart < Learning. Being a Rockstar < Being a Mentor. April Wensel](/blog/2020/02-wall-coding-wisdoms-quotes/compassionate-tech-values.png)
Compassionate Tech Values: Ego < Humility. Elitism < Inclusion. Competition < Cooperation. Being Smart < Learning. Being a Rockstar < Being a Mentor. April Wensel
Source: Talk Cultivating Compassionate Tech Communities by April Wensel (Tweet). With a little update taken from a newer version of this slide.
More
Humbly, I like to add the following:
![KISS > DRY](/blog/2020/02-wall-coding-wisdoms-quotes/kiss-dry.png)
KISS > DRY
Background
I believe that over-engineering is a dangerous tendency in our profession. That’s why many quotes revolve around avoiding over-engineering in terms of premature performance optimization, distribution, abstraction or scalability. Hanging up those quotes reminds us every day on what’s important and point out situations where we have lost focus.
Download
Contribution
I really like to thank our Product Owner Anna-Karoline Abraham for creating the beautiful and colorful pictures of the quotes.