A friend of mine asked me today:
Why isn’t there more code in your blog?
I stopped and pondered over this question for a bit. The fact is that the first part of my apprenticeship is dedicated to studying. I’m doing Bash, learning Haskell, practicing Katas and reading a lot. So, this first part is quite lonely and I’ve been very dedicated to just learning. As such, the code I could share on this blog is not really all that interesting and I wouldn't want to read it. Until I start applying my newly acquired knowledge around, I’ll keep writing about the more behavioural aspects of the craft. And for today, I thought a lot about what it means to be good at something.
The good insert profession here
I believe the main reason we have issues with defining if someone is good at their craft, is our perception of ourselves. If we think we’re good at something, we have a predefined image of what being skilled means. This makes us think in absolutes, and leaves no room for our own, or the other person’s growth and potential. That’s why I believe we should base our idea of what it means to be a good developer, not on current knowledge, but on behaviour.
People who are clearly passionate about what they do always strike me as good at their craft. In software, if I’m speaking with someone and she gives me the impression of being proud and passionate about her work, then I immediately assume she’s a good developer. If she’s also aware of her own current limitations and everything that’s out there for us to learn, then I assume she’s a great developer. In short, you cannot fake passion. It’s either there or completely absent. And people who are passionate about what they do can infect others and influence them positively.
But for years our industry has thought that good developers are the ones who list a lot of technologies on their CV. I don't believe being passionate and having a lot of knowledge or experience are mutually exclusive. But I do believe, that without the first, the other 2 things are much less valuable. All the experience in the world won't make up for the fact that you lack passion. If we don't like what we do, if we're not invested in the idea of improving every day, we're incapable of producing the best work we can possibly produce. And that's just not fair for any of the parties involved. We're just happier, more enthusiastic and overall better at doing the things that we love to do.
Being good technically is not enough. Not anymore. Specially not in an industry where technologies and standards change in what seems like days. We only remain relevant if we’re willing to learn every day, to be open to all kinds of ideas, regardless of where they come. There’s so much we can learn everyday, and so many sources of knowledge all around us that only a fool would look at the world from a pedestal. We must keep our curiosity alive and our eyes open. We must stay humble and aware of our ignorance. And if we're in it for the long run, we must love writing softwre.
Maybe, if we’re able to do all that, we’ll be good developers one day. It’s definitely worth a try.