Re: Math/CompSci Interview Question - Thoughts?
- From: "Balog Pal" <pasa@xxxxxx>
- Date: Mon, 23 Nov 2009 23:11:19 +0100
"Paul E. Black" <p.black@xxxxxxx>
I often ask questions to understand an applicant's approach, not for
their specific knowledge. (I asked one candidate to write a
quicksort, and he replied he would look it up. I was not impressed.)
Sounds like a contradiction. Knowing the specifics what is titled 'quicksort' is definitely "specific knowledge" and has little to do with approach. And the approach of "I look it up" is one with great benefit, if the man can really get it effectively.
Why would you want to clogger memory with quicksort? We have qsort in C lib, std::sort, all ready to call, need to implement it from scratch comes up in what circumstances? And who in right mind would start just writing the code instead of inspecting the existing implementations first?
I took an algorithms or analysis of algorithms class. We solved a ton
of problems like "design an O(n^2) algorithm for ..." (or n log n or
whatever). After a semester of this, we were pretty good at coming up
with stuff. Note: just "knowing" the complexity of a solution went a
long way as a hint to how it might be solved.
And what is the percentage of time you spent in work that you spent inventing algo or using that knowledge? And what would be IYO the figure for the general case?
So yes, studying how to come up with algorithms should help people in
Similar to what?
IMO being *able* to use such stuff, to understand and learn it as need comes is indeed important. But otherwise it is just a special area. Like say the internals of the 6502 processors, or to tweak oracle, or being fluent in prolog -- applicability tied to some niche.