I’m fascinated by the master apprentice relationship in craftsmanship and other things like meditation practice (zen). It is a really powerful and - excuse this wishy washy term - natural principle.
But I think it is not as prevalent as it should be when it comes to programming and software development, which is a beautiful mix of problem solving, craft/skill, and the arts of communication and organization. It is driven by experience/practice and pragmatism but also creativity and synthesis. This paradox yearns for mentorship.
Gladly we have some excellent thinkers and communicators in our culture and history. And the internet. But I feel as an industry we don’t do as much as we should to further our craftsmanship.
Some of my everyday pieces got so good they started rivalling with my quality work I spent days on.
I highly recommend "everydays" as a way to mastery. I've done in arts and music and I'm still mind blown at how fast and proficient I got.
The rules are simple: do one thing every day, that you can be held accountable (aka. in public). Such as a daily jam on twitch or soundcloud, a piece on IG. Keep it up, after 2-3 days you get much faster, after 10 days you do it flyingly, after 30 days I find the curve flattens a bit as you're pretty much as proficient as could be. Time to then start another goal as "everyday". If you miss one day, don't sweat it. Pretend that day didn't happen.