I read an article on Joel on Software where Joel advocates hiring developers who can understand pointers. The idea behind that is that using pointer necessitates having a good abstraction ability and therefore it is a good test if you want to hire the best developers around.
In the particular field of web development, I don’t quite agree with this. To be more precise, I do agree, but since I haven’t used pointers in ten years and wonder if I still could, I’ve got to find some reasons to disagree ;).
Web development is more about a volume of knowledge you need to have, rather than an expertise on one special part: you need to be aware of an insane number of technologies, know how to code fluently in many languages, and know how all these technologies work together (or sometimes don’t, by the way). And you realize this when you debug web applications… haven’t you felt like Gregory House sometimes? The bug you’re hunting is the product of four bugs, like Russian puppets, and actually only happens when you don’t watch because when you do watch, you affect the system and another bug hides all the others… Sounds familiar?
It’s an organic process, a bit like medicine: you need to have a vast knowledge base, good technical expertise to write the tools you need, but above all you need an ability to think globally and understand how the whole system works… A bit like a human body: if your feet hurt, there is a chance that the pain causes you to tense your shoulders. Will a shoulder massage ease your pain? Perhaps, but it’s wiser to think globally and remove that pebble from your shoe.
That’s why I’d rather hire the MacGyver type in my team. I need people that can think globally, that can think different (buy Asus, huhu), that are curious and not afraid to try new things, not technical experts who read the Linux kernel at bedtime. I don’t care if you are not an exceptional coder as long as you understand what we do globally and can start working on any part of our web application. More precisely, I don’t care if you are not an exceptional coder, if you know what you have to learn in order to be exceptional at the task I’m asking you.
Strangely enough, the persons that have these qualities often can use pointers. Go figure.