sobani:
“It’s not about java.util.*, it’s about knowing basic data structuring libraries in your language of choice.”
In retrospect, I may have been taking the “e.g.” as a direction to the interviewee and not the interviewer, as the original author may have intended. I was taking it as a literal and not a compiler directive.
"About the big-O, you probably don’t have to know how to write it down. You just have to know that it if you want to look up a value in a sorted linked list, it will take twice as long for a list double the size (in average). While if you had to look up a value in a binary tree, it would only take 1 extra iteration/function call when the tree doubles in size.
Caring about big-O is not such a huge issue when there are few items. But when the amount of data starts to increase, a badly chosen data structure will slow down the application.
See also http://www.codinghorror.com/blog/archives/000957.html about the rationale of caring about big-O in sorting algorithms."
I’m not saying knowing about big-O is not important, just that knowing the notation and terminology (“logarithmic”, “geometric”, etc.) probably shouldn’t be the real target of the interviewer.
Tom:
“Which would neatly show that, in a real project with shifting requirements, you’d be incapable of solving basic problems without overcomplicating them.”
It all depends on what you’re trying to accomplish, doesn’t it? If you’re writing a class for use in your company’s lone card game, you’ll want to write it differently from, say, a class for sale to card-game developers worldwide.
“And? That’s correct (I think), it solves the problem, and all you might need to do to show off is highlight the nouns you’d turn into objects.”
I meant that the answer would be that it has already been done – as it says in a different spot, “don’t reinvent the wheel”. Especially since modeling HTML is a pretty massive undertaking to give someone in an interview question.
“Converting 50,000 Amazon web page templates; a long, slow tiresome process that will cause more trouble than it solves, and will never be complete.
Writing the regex; about an hour’s work, including debugging.
Pretending this problem doesn’t come up all the time; Priceless.”
If you have 50,000 templates in use, you don’t have templates. You have a mess. And I don’t think anyone here is saying that messes don’t exist. It’s just that there’s “doing the right thing” and theres “slap-dab it till it doesn’t error out”. Not that we haven’t all been guilty…
“So, if they asked you to perform a simple task at work, you’d make some clever quip about double-meanings rather than actually doing what they asked… That’s actually good for an interviewer to know.”
Too clever by half, apparently, since it failed to get across to you that emphasis on specific terminology will mislead the interviewer to think that the interviewee doesn’t know something, when, in fact, they know it by a different name. This is a problem with 99% of all computer “skills assessment” testing, by the way.
“This is why they need to start asking these questions.”
My point is: they do need to start asking new questions, but they also need to be careful what they’re really asking.