5 ms·
That was my first thought today. Faced with a programmer who had to look up how to determine array length, what would you conclude about their skills? I seem t
by sago 11y ago
That was my first thought today. Faced with a programmer who had to look up how to determine array length, what would you conclude about their skills?
I seem to remember a Joel on Software post a while ago that said that deep and specific API knowledge was a must, and I remember disagreeing rather strongly with that too.
The last company I ran, we used a programming test in a language the candidates didn't know. It seemed to be a better predictor than the C++ test it replaced. Because it separated knowledge and understanding. I'd rather have people with deep understanding who can offload their knowledge retention burden, than trivia-gurus.
- austinjp 11y agoKnowledge. Understanding. Experience. They all seem necessary for optimal performance. And they all seem different. Yet they all rely on the first: knowledge. At some arbitrary point of abstraction, the ability to manipulate accumulated knowledge becomes understanding. This seems best gained through practical (rather than theoretical) experience. But it's all based on knowledge. Certainly "understanding" appears to be more valuable, as evidenced by examples given here comparing understanding with knowledge. But is that an arbitrary distinction? Is understanding predicated on knowledge? It seems to be. Is practical experience better than theoretical? It feels so. I wonder if the distinctions we draw between these concepts is somewhat arbitrary. I struggle to pinpoint the phase-shift at which accumulated knowledge becomes understanding, and what signifies a collection of knowledge that had failed to become understanding.
- sago 11y ago> I wonder if the distinctions we draw between these concepts is somewhat arbitrary. Yes, that is a feature of all language. But I think I was specific about the knowledge I meant. Namely, deep and specific recall of the API. Contrasted with understanding of a range of ways an API might have been structured or defined that would allow someone to program effectively in an environment they had no experience of. Of course, one can define that as 'knowledge of a range of ways an API might have been defined', but them's language games. Beloved of undergraduate philosophy majors, but pointless beyond that, I'd say. I wasn't making a point about words, but about the way we approach syntactic recall in programming languages as a proxy of programming competence.
- austinjp 11y agoI wasn't disagreeing with you, just adding some thoughts. However, I do disagree with you here :) I suspect that AI researchers, linguists, theorists of mind, neuropsychologists and many others may take umbrage with your suggestion that exploring the ability to gain knowledge and convert that into "understanding" is pointless beyond philosophy. Perhaps my tone was philosophical, not that I have a problem with that. However I was hoping for someone to dig further into the topics raised rather than dismiss them. I also wasn't "making a point about words" but rather the fields I mention here. Perhaps I should have been more explicit about that. Anyhoo... syntactic recall as a proxy of a practical skill always seems doomed to produce inaccurate results. A job is not like an interview, in many ways. Where does that leave us? It feels that we should be able to interview people in order to separate the suitable from the unsuitable. Perhaps that's not the case, and we're deluding ourselves. I'm reminded of Daniel Kahnemann and the Israeli army recruiting procedure: http://www.businessinsider.com/daniel-kahneman-on-hiring-decisions-2013-1 http://www.businessinsider.com/daniel-kahneman-on-hiring-dec...