Hacker News new | ask | show | jobs
by geebee 3854 days ago
Although I try to be careful with analogies, I do think this is an excellent one, largely because it can help explain why coding can be seen as simultaneously easy and extremely difficult.

I remember reading an interview with Andre 3000 a while back about how he composed "Hey Ya!". It turned out (this is all from memory) that the reason he used the chord pattern he chose was because he was relatively new to the guitar and those were the chords he knew. So in short, Andre 3000 was able to take very limited knowledge of a new instrument and produce something very compelling and interesting. However, this was certainly after a lifetime of building an interest in and understanding of music.

Shortly after reading that interview, I was hanging out in a music store, and a guy was amazing everyone with his acoustic guitar ability. He did some very cool stuff with his fingers while hitting a harmonic and going back down the neck, at a rapid pace, without faltering even slightly. He was available for lessons and corporate events.

Truth is, it actually is possible to do something very interesting with programming with relatively little experience, though you do need to be a creative and technically minded person. At the same time, you know, nobody would have hired Andre 3000 as a session musician. Sometimes I think that those coding tests, where you have to find the least common ancestor of two nodes in a binary tree, handle tricky threading issues while avoiding deadlock or race conditions, or doing complex outer joins, are really done by companies looking for the equivalent of a session musician. They're not saying you aren't creative or incapable of writing novel and useful software if you don't pass. They just can't add you to a band, at least not yet.

Lastly, I am increasingly in agreement with the last paragraph, which is that our "profession" does need to take initiative in determining how basic competence is established.

"If the main point of a professional qualification is filter out people who can’t code, does it really matter if what is being tested for is out of date, or irrelevant to current industry practices? Maybe our tentative qualification would involve the completion of a reasonably serious program in LISP?"

This is insightful. I've been very ambivalent about it, because I am scared of what happens through regulatory capture. But at this point, I do sometimes wish there were an industry-wide, well recognized exam that covered the paces that you go through when you interview at google, amazon, and small companies that are copying them. I've read/heard people say that they'd happily take such an exam formally if it meant they wouldn't have to re-take this exam, in a more capricious way, every time they apply for a new job.

2 comments

>This is insightful. I've been very ambivalent about it, because I am scared of what happens through regulatory capture. But at this point, I do sometimes wish there were an industry-wide, well recognized exam that covered the paces that you go through when you interview at google, amazon, and small companies that are copying them.

I'm just as worried about regulatory capture as you are, but it might be possible to create a de facto standard exam in this vein just by making a good one and then relying on its merit to make it well known. I mean, fizzbuzz has already reached this status as an easy flunk-out interview question and lots of people take it as a positive test of programming ability. (Which it obviously isn't.)

The basic problem with an 'open exam' in this vein is that it is very easy to copy the work of others. So whatever problems you pick need to be things that are objective enough to be verifiable that someone has solved them but general enough that it won't be something where we all need to worry about whether you pasted your solution in from someones blog.

This is a great comment that I'll be saving.