18 Mar 2014
I don't want to be a Real Programmer
EDIT: You can discuss this post on Hacker News.
Today, I came across this blog post by Nicholas Cloud, where he makes the case of branching out of programming as a means of becoming a better programmer. According to him, playing with the hottest new technology or language won’t make you a better programmer; it will simply allow you to learn new tools. This very fact resonated quite a lot with me, considering how frustrating it can be to see so many cool things being developed, and not having the chance to participate in them.
Let’s be clear for a second: I enjoy programming as much as the next guy and his rubber duck. Since I started about 3 years ago, the ride has been a constant roller-coaster of exciting late coding nights, frustrating next-day debugging sessions, and liberating end-of-projects parties. The few hours that I spend coding part-time at work are by far the most pleasant ones throughout my week. I like trying out new stuff, enjoy committing code at many times during the day, and can’t have enough of hackathons. If anything, I have made sure to try as many flavours of this “software engineering” thing as possible, going from embedded software to web/mobile app development.
The Impostor
Yet, like plenty of other fellow programmers, I feel completely worthless. It does not come a day where the impostor syndrome makes me feel that all I have managed to achieve is the result of simple luck. Even while I was writing the previous paragraph, I can’t stop myself from thinking that I might just be yet another unskilled individual suffering from my illusory superiority. Although this constant fear of “sucking” is something I got used to, the feeling of helplessness that comes with it still manages to kick me in the chins every once in a while.
Because we all suck
Do you know TJ Holowaychuk? If not, then: a) shame on you, because you probably owe him money, and, b) the guy has a cult around his personality (yes, he is that awesome). TJ is so prolific, he has single-handedly shaped the way we write Node code. (TJ, if you are reading this, please accept my sincerest thanks).
If you are anything like me, you want to become as good as TJ. You are more than willing to put the extra effort into mastering new programming languages, spending countless nights working on side projects, and then talk about them at every user group meeting you can find. You are so devoted to your craft that “having a life” does not matter to you anymore, and the simple fact that you have not finished that project becomes an itch you need to constantly scratch. If you are anything like me, you want to be a Real Programmer.
Real programmers
A real programmer, it turns out, is someone who loves programming so much that they’re happy to have the chance to be paid doing it. Real programmers can’t have enough of programming; to the point where they can’t stop working on side projects. Real programmers have mastered all forms of programming, and can recite the API of their favorite platform backwards. To be a real programmer, you have to be dedicated to furthering your knowledge and experience, and expect nothing in return.
For most of the past three years, I dreamed of becoming a real programmer. And who wouldn’t? The perks were just too gratifying. Not only can your code bring you fame and glory, but you could influence the lives of many fellow developers. And, for quite some time, I felt like a Real Programmer.
However, the more time I would put into learning new things, the more I would be convinced of my own demise. While I was trying to figure out how to use CSS to make a client’s website half decent, others were making crazy-ass experiments that involved more browser-specific tricks than all of jQuery. While I was battling with Javascript’s syntax errors, others were redefining the way we would write client-side apps. Nothing I could do would change the (damn) truth: whatever the number of hours I would put in my quest, I would never even come close to being a Real Programmer.
The epilogue
Maybe I am just rationalizing the harsh truth, but I feel that one cannot become a Real Programmer. For sure, they are plenty of Real Programmers out there, who easily agree to the 80+ hours/week workload. My feeling is that these people are satisfied with committing their lives to programming, which is something I utterly respect.
Me? I am just gonna keep doing my thing: trying to squeeze as much code off those few hours. Plus, being a Real Programmer is overrated; apparently, the hottest new thing now is to be Lean.
PS: I know I am not supposed to tell you what to do, but, you know, you could always follow me on Twitter