On Building Software Craftsmanship
February 17th, 2024
software engineering, craftsmanshipAfter finishing Part 1 of Deep Work by Cal Newport, I wanted to write down some thoughts about it.
The book says deep work helps us succeed and find meaning.
It gives three different arguments why a deep life is better than a shallow one. One neurological, one psychological, and one philosophical.
All these reasons show that a deep life is a good life, no matter what.
I connect most with the philosophical argument. Which I'll talk about here.
and wrote "All Things Shining." This book looks at how our views on sadness and meaning have changed over time.
Think back to history class. Society used to focus on religion or kings, where God or the King was everything.
But, after the Enlightenment, people started looking for their own truths. Which was an idea encouraged by Descartes. This search is hard and can sometimes make us feel like nothing matters. Neither religion nor moral values.
Craftsmanship gives us a way to find meaning. It gives us something important outside ourselves.
By getting better at software craftsmanship, I want to do two things:
Find deeper meaning in my work, no matter the industry. By focusing on the pursuit of excellence, my identity and self-expression, I can make software that carries on my legacy. I love solving real problems with software, but more than that, I love how focused and fulfilled it makes me feel.
Connect with users everywhere. As Marc Andreessen famously said, "Software is eating the world". This lets us reach people all over. Companies like Google, Facebook, Uber, and Airbnb have changed how society works. Sometimes controversially. But the effect of software is huge. It also lets us engineers help with problems we didn't even know existed.
Santiago Gonzalez, a coding genius and Senior ML Research Engineer at Apple, once said:
Good code is simple and clear. If you show it to another coder, they'll likely say it's well done, kind of like a good poem.
Focusing on craftsmanship in software helps in many practical ways. It improves how we solve problems, making us better at finding new solutions. This can help us get better jobs and move up in our careers. Also, learning to be a craftsman in software keeps us learning new things. Which is incredibly important in this age of AI. By getting better at our craft, we make our own work more meaningful. And we also help make better software for everyone.
Let's aim to make software that will make the future proud. Software that future engineers will be proud to maintain. Software that feels magical when it works.