One of the most valuable skills a software engineer can have is a “tabula rasa” mindset. Tabula rasa, Latin for blank slate, is a philosophical concept dating back to Aristotle to explain how human minds are blank from the beginning and acquire knowledge through the human experience.

I think of it as being able to approach new challenges and experiences with no prior bias. Done well, this is an incredible power since you’re able to cut through the complexity and focus on what actually matters. Imagine you’re a software engineer who joins a new company - there’s so much business context you need to ramp up in addition to the code that’s grown in complexity over the years. By the time you’ve mastered everything it all makes sense and you’ve embraced the complexity.

There’s a well known story about a monkey experiment where a group of monkeys is taught to avoid reaching for a banana by being sprayed with ice-cold water. Over time they replace one monkey at a time - at each stage that new monkey goes for the banana and is then beat by the other monkeys until it learns to avoid going for the banana. At some point, there are none of the original monkeys left yet they continue to avoid the banana despite no longer knowing the original reason - and beat up any monkey that tries. Unfortunately, as nice as this sounds it’s apocryphal and yet we can all learn from these imagined monkeys.

The ability to constantly approach things from the perspective of “what if we were starting from scratch” is rare and becomes more and more difficult as we gain expertise. Our strength is in our ability to quickly pattern match but it becomes a curse when we would benefit in starting from first principles. The way to make this stick is to constantly ask yourself that question until it becomes second nature and you start doing it naturally.


Read more!