| The Wu-Tang Clan's IT Team Lead ( @ 2006-10-16 23:27:00 |
Me vs. On Campus Recruiting
=1= [Awkward Chat]
"When you were at FlusterCo, you wrote..."
"Primarily EJB components, crap like that."
"Crap?"
"Well, the individual pieces, they weren't crap. Just the entire framework. The whole EJB debacle. The ridiculous industry that used peer pressure and free mousepads to convince managers that they need slow web frameworks and giant relational databases in order to put together a site on the web where you can buy boots. That sort of crap."
"Ah. We use that crap."
"You do?"
"Yeah. We're very happy with it."
"Did you get a free mousepad?"
=2= [First "Technical Question"]
"So now that you've seen what this function does, can you write some code for me that might do it?"
"Sure. Do you have a language preference?"
"No. Whatever you'd prefer is fine."
"Okay, I'll do it in Scheme."
"Um."
"Yes?"
"Don't do it in Scheme."
=3= [Second "Technical Question"]
"Let's say you had a series of formulas like 2 + 3 * 4, and you wanted to store them so that you could process it easily. What data structures might you use?"
"Stack."
"A stack?"
"Best just to convert it to prefix notation on the fly, use a stack. Then we can pretend we're an HP calculator. You ever use one of those?"
"What if you were committed to infix?"
"How about I tell you how I'd convert it from infix to prefix, and then use a stack?"
"I'd rather you didn't use a stack."
"I like stacks."
=4= [Second "Technical Question," Continued]
"And what if we didn't want to have all of these if/then statements? What if we wanted to be able to add new functions easily?"
"It's easy to edit if/then statements."
"But if we wanted to add something new..."
"And you didn't want to write a new if/then case."
"Right."
"Well, I suppose you could subclass the object and implement this function separately in each subclass."
"Right."
"And then every time you have an error, you get to check each subclass definition."
"Yes."
"And of course since each of those functions does almost the same thing, we could write all of our error checking and preparation in the parent class."
"Exactly. That's what I'm getting at."
"And then when one subclass works differently, you'll override the parent method and so you won't be sure exactly where you are on the call stack when you get your error."
"No. We would discourage people from doing that."
"Yeah. Code commenting. Maybe you could write in capitals, 'DO NOT OVERRIDE THIS METHOD.'"
=5= [On the Phone]
"Hey, this is K-, from the interview today. I'm delighted to say that we'd like to have you back again to talk more about the position."
=1= [Awkward Chat]
"When you were at FlusterCo, you wrote..."
"Primarily EJB components, crap like that."
"Crap?"
"Well, the individual pieces, they weren't crap. Just the entire framework. The whole EJB debacle. The ridiculous industry that used peer pressure and free mousepads to convince managers that they need slow web frameworks and giant relational databases in order to put together a site on the web where you can buy boots. That sort of crap."
"Ah. We use that crap."
"You do?"
"Yeah. We're very happy with it."
"Did you get a free mousepad?"
=2= [First "Technical Question"]
"So now that you've seen what this function does, can you write some code for me that might do it?"
"Sure. Do you have a language preference?"
"No. Whatever you'd prefer is fine."
"Okay, I'll do it in Scheme."
"Um."
"Yes?"
"Don't do it in Scheme."
=3= [Second "Technical Question"]
"Let's say you had a series of formulas like 2 + 3 * 4, and you wanted to store them so that you could process it easily. What data structures might you use?"
"Stack."
"A stack?"
"Best just to convert it to prefix notation on the fly, use a stack. Then we can pretend we're an HP calculator. You ever use one of those?"
"What if you were committed to infix?"
"How about I tell you how I'd convert it from infix to prefix, and then use a stack?"
"I'd rather you didn't use a stack."
"I like stacks."
=4= [Second "Technical Question," Continued]
"And what if we didn't want to have all of these if/then statements? What if we wanted to be able to add new functions easily?"
"It's easy to edit if/then statements."
"But if we wanted to add something new..."
"And you didn't want to write a new if/then case."
"Right."
"Well, I suppose you could subclass the object and implement this function separately in each subclass."
"Right."
"And then every time you have an error, you get to check each subclass definition."
"Yes."
"And of course since each of those functions does almost the same thing, we could write all of our error checking and preparation in the parent class."
"Exactly. That's what I'm getting at."
"And then when one subclass works differently, you'll override the parent method and so you won't be sure exactly where you are on the call stack when you get your error."
"No. We would discourage people from doing that."
"Yeah. Code commenting. Maybe you could write in capitals, 'DO NOT OVERRIDE THIS METHOD.'"
=5= [On the Phone]
"Hey, this is K-, from the interview today. I'm delighted to say that we'd like to have you back again to talk more about the position."