Shaving with a new razor is wonderful. I found that out this spring. I was on vacation and had no razor, so I bought a new one. I could not believe how easy it was to shave — fun, even. And that’s when I found out my old razor was dull.
What struck me is that I never noticed that my razor was dull. The gradual wear with every use was imperceptible, until I tried a better tool.
Gradual degradation is all around us. It’s well understood that degradation is a default in the physical world. Iron rusts, things experience “wear and tear,” and nothing lasts like it used to.
Degradation happens in the digital world too.
One of the amazing gifts that software engineers have today is the volume of free, high-quality, open source software. For instance, Python has 384,273 projects on PyPI. They span everything from utilities like Requests to backend Web frameworks like Django to machine learning packages like scikit-learn — and more. It’s incredible when you think about it.
When I started getting into software, I remember people talking about contributing to open source. And when I heard contribute, I was translating that to create or maintain, even when those words weren’t used. It sounded amazing — and overwhelming.
I’m very grateful for the work of open source creators and maintainers, and we are at no risk of appreciating that work too much. I am glad that we are talking more these days about how to sponsor open source work, as companies and as individuals, and have programs like GitHub Sponsors.
But open source contribution means more than creating a package or being a maintainer, as important as those roles are.
There are many paths to learning to program. I decided to reflect on mine and thought it might be valuable to share. This post was inspired by Dan Luu’s How I Learned to Program.
For me, this reflection underscores that craft knowledge is learned by doing. The essential way to get better is to practice.
HELLO $NAME. YOU ARE $AGE.
I didn’t do anything much fancier than that, but the whole idea was amazing to me - I could program a computer!
Organizations are not more effective because they have better people. They have better people because they motivate to self-development through their standards, through their habits, through their climate.
— Peter Drucker (The Effective Executive)
I haven’t been able to stop thinking about this. In context, Drucker is talking about how effective organizations leverage common people to achieve uncommon performance.
I was thinking about it from a talent strategy perspective: I think it’s tempting for leaders to overvalue hiring “better people” when looking to increase the effectiveness of their organization.
Fundamentally leaders are responsible for building healthy cultures, with good standards and habits.
Any leader who is hiring should ask: Is my team’s culture healthy and motivating to the team? If your culture isn’t already motivating people, then it isn’t going to motivate the “better people” you hope to hire either.
On the flip side, an amazing culture will motivate your team and attract others.
Bottom line: Organizations with good habits and cultures cultivate the best people. Culture wins.
There’s nothing like a couple workdays to put aside your regular work and do whatever you want. No regular meetings, no pings. You can work alone or on a team. What you do is up to you. Maybe you want to make something, fix something, or learn something (Bill Gates “Think Week” style).
Hack Days are about giving people that autonomy and freedom. It’s like a hackathon, codefest, etc., except it’s not limited to creating software.