Programmer street cred

Boys will always be boys, they say. And rightly so - since the basic urge to show off or brag never seems to go away. And I use the idiom here to denote the sentiment of competitiveness rather than people of a particular gender: please don't lose the point of the post amidst all the he/she madness. When you are talking about little kids playing on the field, the bragging rights can be earned by who can throw a stone the furthest, or who has taken the most number of catches. See, those numbers matter. However, when you talk about geeks at the computer keyboard, the metric for this comparison changes.

Before I delve into the details, let me set the record straight on some things. Your idea of the computer geek might be the meek nerdy guy with glasses hunched over his laptop who can barely look at a girl straight in her eyes. Sorry to break this news to you, but such people are rare and do not make your typical software engineer in the real world. We do in fact play football, drive fast cars, read nice books, play the violin, get into fistfights, etc. Generally, we are equally diverse in physical characteristics, body language, etc. as in any other white-collar field.

So when it comes to seeing who is the "alpha programmer", so to say, we often use other metrics. The marks you received in a particular course in school do not count - there is a lot of subjective stuff in the equation there. We need to use some kind of a game where the only thing that can objectively determine things is your programming prowess. Many such games already exist. ACM Inter-Collegiate Programming Contests (ICPC) immediately come to mind (P.S. - I represented my college once, and cleared a few rounds;)). There are similar contests organized by almost all colleges: we had a C-Online contest at Mindbend, IIT Kharagpur had Bitwise. Big enterprises also typically use such programming contests to find out the best talent to hire, and also propagate their own brand name. Google Code Jam, CodeEval, etc. are good examples of this. Typically, some corporations trying to propagate their own API also use a contest as a pretext; case in point: Verizon's VDC App Contest. Winners of any of these contests deserve respect any given day: they have enough street cred.

However, all of these above contests have some limitations. You don't know if the programmer you are going to hire is a one-trick pony, or if it is only a contest that motivates her. It is difficult to know if such a winner is also someone you would want to work with. Does she have some breadth of knowledge or do you need to set up everything for her right from the keyboard to the Vim preferences to let her churn out awesome Python code. See, although these attributes above seem more like a recruitment checklist rather than a critique of the "methods" described above, we programmers do value these things a most. If you want our respect (which is essentially street cred currency in our world), we would definitely like you to have these.

Most importantly, people geeks generally want to help other people and it gives them the same kind of satisfaction as writing open source code or contributing to Wikipedia: people helping people without the expectation of any tangible reward. Although I bet not more than five people who will ever read this blog can name at least five Linux kernel developers, the StackExchange folks have figured out the perfect method. Disclaimer: yes I have recently joined the site as a contributor, and yes I do intend to remain there and get points. As they say on their website, "Free, Community-Powered Q&A".

What I love most about the site is that it merges the ability to help others through your own consistent high and diverse knowledge not necessarily related to one particular area, and yet easily display street cred in terms of points or reputation without one actively trying to brag. If you are a company looking for the best programmer to suit your needs, you can instantly look for the profile with the most diverse knowledge, across domains. Given two people you are looking to hire as potential Python programmers, wouldn't you go after the guy who also has a good deal of System Administration knowledge?

I know, I know, this is turning into a StackExchange fan post, (and I assure you that I wasn't paid by them :P), but I find it a very compelling story nonetheless. A good reputation there, or a great account on GitHub/Sourceforge define my idea of programmer street cred. Here's to free help, and open source! *Clink* :)


Popular Posts