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:
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.
- 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.
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.
- 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.
- 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.
- 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 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.