<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: News Flash: Tech Interviews Don&#8217;t Work</title>
	<atom:link href="http://mark.santaniello.com/archives/311/feed" rel="self" type="application/rss+xml" />
	<link>http://mark.santaniello.com/archives/311</link>
	<description>the body of a very slow loop</description>
	<pubDate>Thu, 20 Nov 2008 22:28:13 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: Mark</title>
		<link>http://mark.santaniello.com/archives/311#comment-24932</link>
		<dc:creator>Mark</dc:creator>
		<pubDate>Sun, 25 Mar 2007 05:27:41 +0000</pubDate>
		<guid isPermaLink="false">http://mark.santaniello.net/archives/311#comment-24932</guid>
		<description>For posterity, here's a reference for the "double hump" that "Occasional" mentioned previously:

&lt;a href=http://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf rel="nofollow"&gt;The Camel Has Two Humps (Working Title)&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>For posterity, here&#8217;s a reference for the &#8220;double hump&#8221; that &#8220;Occasional&#8221; mentioned previously:</p>
<p><a href=http://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf rel="nofollow">The Camel Has Two Humps (Working Title)</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mikee</title>
		<link>http://mark.santaniello.com/archives/311#comment-19490</link>
		<dc:creator>mikee</dc:creator>
		<pubDate>Fri, 02 Mar 2007 00:09:46 +0000</pubDate>
		<guid isPermaLink="false">http://mark.santaniello.net/archives/311#comment-19490</guid>
		<description>Mark - you are spot-on with your observations.  I've never found it very productive asking or answering geek-trivia questions for an interview.  I'd love to see a broader set of questions that help categorize candidates in terms of personality traits and likely strengths/weaknesses.  Didn't the military used to give tests like this (and the promptly proceed to ignore the results)?</description>
		<content:encoded><![CDATA[<p>Mark - you are spot-on with your observations.  I&#8217;ve never found it very productive asking or answering geek-trivia questions for an interview.  I&#8217;d love to see a broader set of questions that help categorize candidates in terms of personality traits and likely strengths/weaknesses.  Didn&#8217;t the military used to give tests like this (and the promptly proceed to ignore the results)?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Occasional Interviewer</title>
		<link>http://mark.santaniello.com/archives/311#comment-19486</link>
		<dc:creator>Occasional Interviewer</dc:creator>
		<pubDate>Thu, 01 Mar 2007 22:09:08 +0000</pubDate>
		<guid isPermaLink="false">http://mark.santaniello.net/archives/311#comment-19486</guid>
		<description>Definitely! There's a lot more to hiring than just technical screening.

Thank you for this excellent discussion.</description>
		<content:encoded><![CDATA[<p>Definitely! There&#8217;s a lot more to hiring than just technical screening.</p>
<p>Thank you for this excellent discussion.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Knox</title>
		<link>http://mark.santaniello.com/archives/311#comment-19485</link>
		<dc:creator>John Knox</dc:creator>
		<pubDate>Thu, 01 Mar 2007 21:51:41 +0000</pubDate>
		<guid isPermaLink="false">http://mark.santaniello.net/archives/311#comment-19485</guid>
		<description>&#62; What is more important on the job: effort, or intelligence? 

To a large extent, I think a hard worker should get preference over a smart person. What is easier to change: intelligence or work ethic and persistence? Studies show that you can improve your intelligence. I'm not sure about work ethic though.

So how do we interview for hard worker?

It seems like a trick, but I suppose the interviewee could be interrogated about their knowledge of what the interviewing company does or sells. Perhaps a hard worker would be interested in the company's needs while non-hard workers would just be interested in brushing up on pointers and recursion the night before the interview. I'm just making this up...

Volunteer, open source, and entrepreneurial buzzing on the resume would probably indicate hard workers as well.</description>
		<content:encoded><![CDATA[<p>&gt; What is more important on the job: effort, or intelligence? </p>
<p>To a large extent, I think a hard worker should get preference over a smart person. What is easier to change: intelligence or work ethic and persistence? Studies show that you can improve your intelligence. I&#8217;m not sure about work ethic though.</p>
<p>So how do we interview for hard worker?</p>
<p>It seems like a trick, but I suppose the interviewee could be interrogated about their knowledge of what the interviewing company does or sells. Perhaps a hard worker would be interested in the company&#8217;s needs while non-hard workers would just be interested in brushing up on pointers and recursion the night before the interview. I&#8217;m just making this up&#8230;</p>
<p>Volunteer, open source, and entrepreneurial buzzing on the resume would probably indicate hard workers as well.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark</title>
		<link>http://mark.santaniello.com/archives/311#comment-19475</link>
		<dc:creator>Mark</dc:creator>
		<pubDate>Thu, 01 Mar 2007 20:51:26 +0000</pubDate>
		<guid isPermaLink="false">http://mark.santaniello.net/archives/311#comment-19475</guid>
		<description>We can agree on your first point for sure.  I love autodidacticism.  

I think FizzBuzz or simple recursion are fine high-pass filters.  Just don't expect to avoid problem hires.  Some of the "most selective" interview processes I've seen still result in folks who *literally* sleep on the job.</description>
		<content:encoded><![CDATA[<p>We can agree on your first point for sure.  I love autodidacticism.  </p>
<p>I think FizzBuzz or simple recursion are fine high-pass filters.  Just don&#8217;t expect to avoid problem hires.  Some of the &#8220;most selective&#8221; interview processes I&#8217;ve seen still result in folks who *literally* sleep on the job.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Occasional Interviewer</title>
		<link>http://mark.santaniello.com/archives/311#comment-19473</link>
		<dc:creator>Occasional Interviewer</dc:creator>
		<pubDate>Thu, 01 Mar 2007 20:07:30 +0000</pubDate>
		<guid isPermaLink="false">http://mark.santaniello.net/archives/311#comment-19473</guid>
		<description>Well, I think it's perfectly fair to review core CS classwork at any time, interviewing or not. :-)

More seriously, if the candidates are all up to speed on the basics, it prevents competent candidates from stressing out and bombing on a question they could easily answer.

I don't much like the "subarray with maximum sum" question. It requires a non-trivial insight into a specific problem, and testing for that sort of thing in an interview is hit or miss. Another question I don't like is "implement malloc", because there's a couple of tricks that you need to discover to find a simple solution.

Of course, modern optimizing compilers do involve a lot of hairy algorithms and non-trivial math, so "subarray with maximum sum" may be a fair question for the MS compiler team to ask. I mean, compared to register allocation, that's a walk in the park.

Still, my preferences run towards basic algorithms over recursive structures. They're all part of the standard CS curriculum (so there's no secret trick), and they do seem useful in distinguishing the stronger programmers.</description>
		<content:encoded><![CDATA[<p>Well, I think it&#8217;s perfectly fair to review core CS classwork at any time, interviewing or not. :-)</p>
<p>More seriously, if the candidates are all up to speed on the basics, it prevents competent candidates from stressing out and bombing on a question they could easily answer.</p>
<p>I don&#8217;t much like the &#8220;subarray with maximum sum&#8221; question. It requires a non-trivial insight into a specific problem, and testing for that sort of thing in an interview is hit or miss. Another question I don&#8217;t like is &#8220;implement malloc&#8221;, because there&#8217;s a couple of tricks that you need to discover to find a simple solution.</p>
<p>Of course, modern optimizing compilers do involve a lot of hairy algorithms and non-trivial math, so &#8220;subarray with maximum sum&#8221; may be a fair question for the MS compiler team to ask. I mean, compared to register allocation, that&#8217;s a walk in the park.</p>
<p>Still, my preferences run towards basic algorithms over recursive structures. They&#8217;re all part of the standard CS curriculum (so there&#8217;s no secret trick), and they do seem useful in distinguishing the stronger programmers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark</title>
		<link>http://mark.santaniello.com/archives/311#comment-19451</link>
		<dc:creator>Mark</dc:creator>
		<pubDate>Thu, 01 Mar 2007 17:32:12 +0000</pubDate>
		<guid isPermaLink="false">http://mark.santaniello.net/archives/311#comment-19451</guid>
		<description>I wasn't aware of the "double-hump" -- that's interesting.  Thanks.

I have a sort of ethical problem with studying for interviews, but I don't deny that it works.  Thanks for those suggestions as well.

If there's a standardized test you can give candidates which correlates well with on-the-job performance, I'd highly recommend giving it.  I've heard that IBM used to do this.  Color me skeptical.

I suspect that the typical on-site for MS, Google, Amazon or Yahoo is a lot more difficult than you suggest.  It all goes back to the nerd ego problem.  We love to ask hard questions for which we already have answers.

For example, this one is used by some on the MS C/C++ compiler team: &lt;a href="http://mark.santaniello.net/wiki/index.php/SubArrayWithMaximumSum" rel="nofollow"&gt;
Sub Array With Maximum Sum&lt;/a&gt;

Switching gears, here's something to ponder.  What is more important on the job: effort, or intelligence?  This is an unfair question because, clearly, they are both important.  However, I'd take a hard worker over a genius any day.  Geniuses tend to be assholes, and I hate working with assholes :)</description>
		<content:encoded><![CDATA[<p>I wasn&#8217;t aware of the &#8220;double-hump&#8221; &#8212; that&#8217;s interesting.  Thanks.</p>
<p>I have a sort of ethical problem with studying for interviews, but I don&#8217;t deny that it works.  Thanks for those suggestions as well.</p>
<p>If there&#8217;s a standardized test you can give candidates which correlates well with on-the-job performance, I&#8217;d highly recommend giving it.  I&#8217;ve heard that IBM used to do this.  Color me skeptical.</p>
<p>I suspect that the typical on-site for MS, Google, Amazon or Yahoo is a lot more difficult than you suggest.  It all goes back to the nerd ego problem.  We love to ask hard questions for which we already have answers.</p>
<p>For example, this one is used by some on the MS C/C++ compiler team: <a href="http://mark.santaniello.net/wiki/index.php/SubArrayWithMaximumSum" rel="nofollow"><br />
Sub Array With Maximum Sum</a></p>
<p>Switching gears, here&#8217;s something to ponder.  What is more important on the job: effort, or intelligence?  This is an unfair question because, clearly, they are both important.  However, I&#8217;d take a hard worker over a genius any day.  Geniuses tend to be assholes, and I hate working with assholes :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Occasional Interviewer</title>
		<link>http://mark.santaniello.com/archives/311#comment-19447</link>
		<dc:creator>Occasional Interviewer</dc:creator>
		<pubDate>Thu, 01 Mar 2007 16:39:15 +0000</pubDate>
		<guid isPermaLink="false">http://mark.santaniello.net/archives/311#comment-19447</guid>
		<description>"Maybe youâ€™ve seen how I *panic*. Is that relevant?"

Well, for some jobs. :-/ Even in the best-run shrink-wrap companies, you can discover a crashing C++ bug within 48 hours of the gold master. So being able to solve pointer problems in a state of total panic isn't _entirely_ irrelevant, sadly.

But "Please reverse a linked list," is really a way of asking, "Please prove to me that you can easily cope with recursive structures that involve pointers."

Programmer aptitude tests show an interesting "double hump". For example, the AP Computer Science AB examination used to show the following breakdown (higher is better):

1: 15% 2: 15% 3: 30% 4: 10% 5: 30%

The 1s and 2s will never make it as programmers. The 3s can kind of muddle along, but won't get any placement credit when they get to college. The 5s can eat pointer problems for breakfast, and they're generally more productive across a huge range of tasks.

When I'm interviewing system programmers, my goal is to screen out everybody who isn't a 5. We could just give the AP exam, but that takes over an hour. So instead, I ask candidates to implement a simple algorithm over the simplest possible data structure, in the language of their choice.

I don't think it's unreasonable to expect candidates to answer an easy second-term CS problem in a programming interview. This is more-or-less standard at Microsoft, Google, Amazon and Yahoo, so it shouldn't come as too big a surprise.

If you know you can do this stuff, but you're rusty and you're concerned about screwing up under pressure, I'd recommend a good AP CS study guide or a book like "Programming Interviews Exposed".</description>
		<content:encoded><![CDATA[<p>&#8220;Maybe youâ€™ve seen how I *panic*. Is that relevant?&#8221;</p>
<p>Well, for some jobs. :-/ Even in the best-run shrink-wrap companies, you can discover a crashing C++ bug within 48 hours of the gold master. So being able to solve pointer problems in a state of total panic isn&#8217;t _entirely_ irrelevant, sadly.</p>
<p>But &#8220;Please reverse a linked list,&#8221; is really a way of asking, &#8220;Please prove to me that you can easily cope with recursive structures that involve pointers.&#8221;</p>
<p>Programmer aptitude tests show an interesting &#8220;double hump&#8221;. For example, the AP Computer Science AB examination used to show the following breakdown (higher is better):</p>
<p>1: 15% 2: 15% 3: 30% 4: 10% 5: 30%</p>
<p>The 1s and 2s will never make it as programmers. The 3s can kind of muddle along, but won&#8217;t get any placement credit when they get to college. The 5s can eat pointer problems for breakfast, and they&#8217;re generally more productive across a huge range of tasks.</p>
<p>When I&#8217;m interviewing system programmers, my goal is to screen out everybody who isn&#8217;t a 5. We could just give the AP exam, but that takes over an hour. So instead, I ask candidates to implement a simple algorithm over the simplest possible data structure, in the language of their choice.</p>
<p>I don&#8217;t think it&#8217;s unreasonable to expect candidates to answer an easy second-term CS problem in a programming interview. This is more-or-less standard at Microsoft, Google, Amazon and Yahoo, so it shouldn&#8217;t come as too big a surprise.</p>
<p>If you know you can do this stuff, but you&#8217;re rusty and you&#8217;re concerned about screwing up under pressure, I&#8217;d recommend a good AP CS study guide or a book like &#8220;Programming Interviews Exposed&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark</title>
		<link>http://mark.santaniello.com/archives/311#comment-19428</link>
		<dc:creator>Mark</dc:creator>
		<pubDate>Thu, 01 Mar 2007 13:58:12 +0000</pubDate>
		<guid isPermaLink="false">http://mark.santaniello.net/archives/311#comment-19428</guid>
		<description>No, I'm not actually suggesting that we not interview, or that we not ask simple technical questions when we do.  I was just lamenting the fact that, no matter what we do, it won't work very well.

I mean, look, I'm a professional programmer.  I don't use -- let alone reverse -- linked listed on a regular basis.  In an unfamiliar environment, under high pressure, I could easily screw up that question.

When I do, you certainly haven't "seen how I think."  Maybe you've seen how I *panic*.  Is that relevant?</description>
		<content:encoded><![CDATA[<p>No, I&#8217;m not actually suggesting that we not interview, or that we not ask simple technical questions when we do.  I was just lamenting the fact that, no matter what we do, it won&#8217;t work very well.</p>
<p>I mean, look, I&#8217;m a professional programmer.  I don&#8217;t use &#8212; let alone reverse &#8212; linked listed on a regular basis.  In an unfamiliar environment, under high pressure, I could easily screw up that question.</p>
<p>When I do, you certainly haven&#8217;t &#8220;seen how I think.&#8221;  Maybe you&#8217;ve seen how I *panic*.  Is that relevant?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Occasional Interviewer</title>
		<link>http://mark.santaniello.com/archives/311#comment-19424</link>
		<dc:creator>Occasional Interviewer</dc:creator>
		<pubDate>Thu, 01 Mar 2007 12:54:39 +0000</pubDate>
		<guid isPermaLink="false">http://mark.santaniello.net/archives/311#comment-19424</guid>
		<description>Well, the point of the recent discussion is that you can filter out quite a few candidates with a very low bar--FizzBuzz requires a 'for' loop and preferably a modulus operator, which isn't a lot to ask. And yet I've seen candidates who would fail it.

Slightly harder screening questions involve trivial problems with pointers and/or recursion. Again, these questions filter out large numbers of candidates, many of whom have entirely plausible resumes (and who sound fine in a phone screen). About 75% of people who make it to an interview will sit there for 10 minutes or an hour trying to solve some trivial problem. The successful candidates solve it in about a minute.

Do you _really_ think that "Hey, write some code to reverse a linked list" is too much to ask? Do you really think we'd be better off hiring people who can't? Because the candidate pool is full of these people, and they've figured out how to write decent resumes.

I do agree with your larger point, though--really hard technical questions will eliminate too many competent candidates, because everybody can answer a different set of questions.

(Of course, if a candidate claims guru-level skills in a particular area, then I'll ask harder questions. Got a PhD in distributed systems? Dining philosophers it is, then.)</description>
		<content:encoded><![CDATA[<p>Well, the point of the recent discussion is that you can filter out quite a few candidates with a very low bar&#8211;FizzBuzz requires a &#8216;for&#8217; loop and preferably a modulus operator, which isn&#8217;t a lot to ask. And yet I&#8217;ve seen candidates who would fail it.</p>
<p>Slightly harder screening questions involve trivial problems with pointers and/or recursion. Again, these questions filter out large numbers of candidates, many of whom have entirely plausible resumes (and who sound fine in a phone screen). About 75% of people who make it to an interview will sit there for 10 minutes or an hour trying to solve some trivial problem. The successful candidates solve it in about a minute.</p>
<p>Do you _really_ think that &#8220;Hey, write some code to reverse a linked list&#8221; is too much to ask? Do you really think we&#8217;d be better off hiring people who can&#8217;t? Because the candidate pool is full of these people, and they&#8217;ve figured out how to write decent resumes.</p>
<p>I do agree with your larger point, though&#8211;really hard technical questions will eliminate too many competent candidates, because everybody can answer a different set of questions.</p>
<p>(Of course, if a candidate claims guru-level skills in a particular area, then I&#8217;ll ask harder questions. Got a PhD in distributed systems? Dining philosophers it is, then.)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
