Saturday, January 12, 2008

How to recognise a Code Monkey

I've mentioned several times in my blog, recently, that when hiring someone for a job, companies should value the person, not a piece of paper. Today, I read an interesting blog on how to recognise a good programmer. Although it's main target was programmers, in general, it could be used to apply to any skilled discipline. Through my experience, I'll have to agree with all the points that were raised in the blog. I'd encourage anyone who wishes to be good at anything, to actually read the blog. It's main points are:

  1. Passion
    I agree with this. In order to be really good at something, a person needs to be driven by passion. Someone who merely does it for the sake of the job, will never be good at it. I personally believe that passion is the most important ingredient.
  2. Self taught
    If someone needs to be taught something, they aren't going to get very good at it. In the case of programmers, most of them start really young. I've personally known someone who started programming at 4! So, it's never too young to start learning any skill. It just gives them more time to get good at it.
  3. Intelligence
    Just because someone may lack certain social skills, doesn't mean that they're stupid. It's important to be able to evaluate intelligence and the only good way to do it is by actually talking to a person about something relevant. None of the small talk crap. Also, no amount of parametric testing will help at all.
  4. Hidden experiences
    Do not assume that a CV tells everything. Someone who is passionately drive, will have things done for "fun", that don't make it into the CV. In fact, they'd probably have more missing from their CV, than in it. If they had to list everything, it'll probably take 20 pages instead of 2.The CV would just contain the highlights.
  5. Variety of expertise
    Their knowledge would not be constrained by anything but their thirst for knowledge. They would also, naturally, have knowledge in other relevant areas. Anyone who claims to only be good at one thing, is probably only good for one thing.
  6. Formal qualifications
    Degrees and certifications are a completely useless indicator of how good a person is. They're only good for HR to cover their asses. A person who is good at something, will do it not for a degree. Any degree is just dressing.
Although, I've mentioned that we should value a person, not a piece of paper, I'm beginning to have an idea on how difficult it might be to do so. For example, a HR manager will find it difficult to identify who a good programmer when he/she knows nothing about IT. The IT manager might have difficulty doing so too, if he/she was never a good one to begin with.

Although a certification does not tell you how good someone really is, it will at least tell you how bad someone isn't. If they were able to pass the exams, at the very least, they'd know ABC, even if they didn't know XYZ. As a result, people ended up having to rely on a piece of paper to help them out. Certificates ended up being used as a baseline. As a result of this hiring practice, most people end up hiring the baseline.

So, how do we identify a code monkey then? Easy. Put 100 programmers in a room, get the 5 who are good to leave, and the ones that are left are the code monkeys.



Michael said...

Shawn is a great chip programmer..

Gabriel Wu said...

offer peanuts for code and see who takes up the offer :D

Shawn Tan said...

that's a good one! i should've thought of that.. the brain doesn't work well at 3am..