I just came across this quote from Seth Godin today:
“The job is what you do when you are told what to do. The job is showing up at the factory, following instructions, meeting spec, and being managed. Someone can always do your job a little better or faster or cheaper than you can. The job might be difficult, it might require skill, but it's a job. Your art is what you do when no one can tell you exactly how to do it. Your art is the act of taking personal responsibility, challenging the status quo, and changing people. I call the process of doing your art 'the work.' It's possible to have a job and do the work, too. In fact, that's how you become a linchpin. The job is not the work.”
– Seth Godin, Linchpin.
These sentences have triggered a storm of ideas on my mind. Writing code, shipping a new feature, fixing a bug, might be your job. But you are much more than that. It's very easy to say "I am a programmer," yet you are not a programmer.
Programming is not an identity. It can be a set of skills, a new mindset, but in the end, these are just tools that you have available in your life. They don't become your life.
You are what's behind your idea of being a programmer, you are the one that has a deeper reason, a why as Simon Sinek might say, and that reason might be why you love so much programming.
Discovering your reason and putting upfront in your day to day job is one of the most significant differentiating factors. Use your why to find your work, then use that work to be the compass on your decisions and the way you act on your job.
I am moved by the idea of creating products through software, it still feels magical to me the concept of being able to create something valuable out of thin air, just by writing words on a screen.
For me, delivering something valuable to the end-user is what gives everything else a reason. Through my skills and experience, the best way I can achieve that work today is by sometimes writing a spec for a team to do it, or thinking about the architectural implications of a specific solution for one team vs all the other needs of the company. Sometimes, still for a good chunk of my time, it's by writing and shipping code myself.
I love programming, yet if I self-identified as just a programmer, I might struggle on days I can't get any coding done for any external reason. Or in a future where a ton of the coding we do nowadays is made redundant because it's better (and cheaper) to automate it with sophisticated AI tools. But for me, my focus is on providing that value and on thinking on ways to maximize it.
For you, it might be because you have a mission, you want to help a niche by building tools for them that might improve their lives. You might be in love with technology itself, and your focus is to take our current stack to the next level. And it can be something completely different, and while your job is programming, your work is wholly detached from it. And that's fine.
To figure out who you are, you need to stop identifying with what you are not. And then half of the work is already done.