TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Interviews Can Be a Terrible Way to Identify Good Programmers

126 pointsby ksabout 13 years ago

21 comments

jasonlotitoabout 13 years ago
No offense, but the only advice I've learned from all these "how to hire programmers" article, as a programmer, is that it doesn't make a damn bit of difference, because every person hiring as their own idea of what works. The best thing <i>I</i> can do to get hired somewhere is be myself.<p>For every person who says not to bother with a resume, there is another person who wants them.<p>For every person who denounces certain terms on a resume, another person is looking for them.<p>For every person who thinks "experienced with" means "you can write a book on the subject", someone else things "you've used it in production."<p>White board tests are necessary. They are useless. Example code is critical. No, just showing projects. Gotta see open source contributions. No, show what your code accomplished.<p>You need schooling. You don't need schooling. Degrees don't matter (though, try to get a visa without one). Self-taught rules.<p>Ask them to write a FizzBuzz program. Reverse FizzBuzz. FizzBuzz is silly and doesn't matter.<p>Throw out half the resumes so you only hire the lucky ones. Have them work for you for 90 days/1 month/2 weeks/1 week/1 day/1 project.<p>My advice: ask them whether they prefer green or purple. Whether they prefer the number 34 or the letter X. Take them out to lunch and see if they know the name of the waiter/waitress. Then get your mother's opinion on them. Then play a game of Magic: The Gathering with them, and if they win, roll a d20 to see if they can beat the AC of the job. That method has never failed me.<p>So yeah. Looking for work? Be smart. Be yourself. Because if you resort to playing games and being someone else, you're going to end up working for someone who thinks you are something/someone you are not. If you can't get the job because your resume was too plain/too fancy for the person doing the hiring, it's probably for the best.<p>Edit: To be clear, this isn't a direct response to the original article, but rather, to these types of articles in general.
评论 #3935328 未加载
评论 #3936533 未加载
评论 #3933760 未加载
rntzabout 13 years ago
The author places a lot of stress on memory. I think he's overgeneralizing from his personal experience.<p>Personally, I have a very bad memory, especially when confronted with query-like questions like "explain how you solved some hard problem when working at company X". I remember based on associations, not time: If you sit me down in front of the code I wrote, or pose the problem to me directly, I'll remember in a jiffy, but looking back on my time at a company/at school/etc it just seems like a blur---I can't remember anything at all that way!
评论 #3933723 未加载
kabdibabout 13 years ago
One of my favorite questions is: "What's the best bug you've ever found?"<p>Usually I get a "Huh?"<p>The really stellar folks will tell you about the bug that took two weeks to find and boiled down to a single missing comma in a vendor's library routine. Or /something/. But "Huh" is a bad sign.<p>"Huh?" is not a fail, but it usually correlates with people who can't write a function to find the length of a string, and I see a depressing number of those folks, even ones with the tag "Senior" in their title.<p>Hiring strangers is terrifying.
评论 #3934450 未加载
评论 #3933679 未加载
评论 #3934469 未加载
评论 #3933824 未加载
评论 #3934444 未加载
评论 #3935707 未加载
评论 #3933705 未加载
评论 #3934025 未加载
评论 #3937429 未加载
评论 #3935855 未加载
评论 #3933706 未加载
notJimabout 13 years ago
Good to see that we're making good efforts at meeting our "articles about hiring" quota on HN.<p>I have this theory that hiring people is nowhere near as hard as this particular echo-chamber likes to think it is. Everyone thinks they need "rockstars" or "A Players" and is looking for the magical recipe for finding them, but I think for most positions, someone who is smart and technically competent and fits with your company's culture is entirely sufficient.<p>Most of the startups we talk about depend on good execution of a simple idea, not advanced technical skills[1]. I believe that a good leader with the right vision and the ability to articulate that to his or her employees can take smart people who fit well with the company and form them into people who will execute consistently well. Not only that, but this creates a belief system around engineering and product that is compounding and self-reinforcing.<p>Identifying technically competent people is not that difficult. If you were to read a few of the last 200 articles where we've talked about this, there are some common threads.<p>First this, always this: a) Have them write at least a little bit of code to see that they actually know how.<p>Then pick a few of these. If at all possible spread the interviews out amongst a group of people so you can get different viewpoints. a) Ask them some relevant programming questions and observe their answers. Focus on things related to the kinds of work they'll be doing in their job. Maybe work on a whiteboard, or even in a text editor. Maybe even a little bit of both. b) Ask them a broader set of questions relevant to things like algorithms and data structures. Even for simple web apps, it helps to be at least conversant in the basics of these topics. c) Ask them to see open source work, or if they have a profile, or maybe some code they wrote that they're comfortable sharing with you.<p>I really think that if you put someone in a room with a competent engineer for an hour, that engineer will be able to tell if the person they've been speaking to is a good engineer or not.
评论 #3933910 未加载
评论 #3933998 未加载
captobviousabout 13 years ago
There is a lot of focus on team work. I'm still not sure if programming is suited for team work. There's clearly some activities of creative problem solving which are better suited for individuals working mostly alone, but belonging to a community of peers.<p>For example: * math * research * art * visual design * writing * music<p>* programming?<p>People have been trying to apply Taylorism to programming making it approach an assembly line in organization. Now we're trying to organize programmers as sports teams instead with Agile.<p>I just don't understand why programming specifically is under this intense pressure of having to be measurable and quantifiable in every little detail.<p>It seems like being a good cog in an assembly line, or a good member of a sports team is just as important, if not <i>more</i>, as just creating good programs. Why aren't for example visual designers being hassled in this way? No they are beging left alone as long as they do good stuff. They can freelance or work from home if they want.<p>But programming is somehow different. There's this assumption that it needs to be done in a group at all times. Solving all problems by group discussion.<p>If I was hiring I would just ask to see previous project, and/or a portfolio (github for example). If they have nothing to show, or it's really bad and show no signs of progress, I would not hire. Simple as that.<p>I wouldn't hire a group of 15 clearly sub-standard visual designers who have nothing to show, try to organize them into a group, measure closely and try to make them create visual design.<p>In the same way I would not try to do this with programmers either.
评论 #3934667 未加载
cletusabout 13 years ago
/sigh interview techniques really are a perennial topic on HN.<p>&#62; [a coding test] won't tell you squat about how good they are in a year long project with 10 other people,<p>The author misses the point of a coding test. It's a negative rather than positive filter. Someone who does amazing on FizzBuzz is not by definition an amazing programmer. Someone who can't solve FizzBuzz however almost certainly is <i>not</i> a good programmer.<p>Simple coding tests are a very effective filter in terms of the time spent.<p>&#62; So why spend an inordinate amount of time on relatively minor parts of a programmer's skill set?<p>I wouldn't call half an hour "an inordinate amount of time".<p>The author then opines about how "can just tell" if someone is a good programmer or not. I can sympathize because frankly so can I. I went through a period of taking 10 interviewees to lunch. I asked them nothing technical and basically just answered their questions. From the first 10 minutes I could tell:<p>- 1 would probably get an offer (he did);<p>- 8 would not (they didn't); and<p>- 1 I was unsure about (no offer).<p>Looking at the author's profile [1] I believe I can see the problem: it doesn't appear he's ever worked for a large engineering organization. This is fairly obvious from the content of this post because <i>none of his solutions scale</i>.<p>Let's say you have a large organization with 5 Andrews. Each of them says to hire this guy they just interviewed. What do you do if you're looking for less than 5 people? Are they going to work on the respective teams of those giving the recommendation? If not, how do you know they're a good fit? You need to consider company-wise culture and expectations. How do you calibrate between them? Do they have the necessary foundation to do not just the job they'll be starting on but to grow with the organization, adapt and perhaps work on other projects?<p>The other problem I have is the "war stories" aspect. This is a very definite bias. Take the way human memory works. Imagine you have a conversation with someone that's memorable in some way. At first you can remember word-for-word what happened. That quickly fades and you remember the <i>gist</i> of what was said. You may even think you remember exactly what was said and how it was said but usually you're wrong (try it by writing down what was exactly said and going back to it after months or having two or more people recount the same event). After awhile even that made fade and you may just be left with an emotion about the event.<p>Some things I can remember very well but more often than not, I've learnt my lesson and the exact circumstances or even the origin entirely are lost. This is largely because it's useless information.<p>But here's the biggest problem of all with the post:<p>&#62; My favorite idea is still contract to hire everyone after your (hopefully reasonable) interview;<p>Okay, you've excluded anyone really good because they're not going to jump through that hoop. I don't consider myself a "rockstar" and even I won't jump through that.<p>Maybe the real problem is the OP doesn't even know what good programmers are because this is a recipe for mediocrity.<p>Lastly there's a story about team bonding (probably distorted if not made up outright at a guess). The author doesn't seem to realize that his hiring process is pretty much about hiring people like himself, which is fine, but that's not the definition of a good programmer.<p>I've seen teams work well who:<p>- all work closely together and socialize together;<p>- never socialize together;<p>- work remotely;<p>- work on different schedules;<p>- and so on.<p>Don't confuse programming ability with culture fit and work style. Those are three different things all important.<p>In a large organization you're going to have some aspect of a common culture but very different team cultures (and even site cultures). Part of hiring in a large organization is recognizing that you're not trying to hire "you" and then working out how you can best use someone not like you such that they flourish.<p>EDIT: oh and if he thinks Google, as one example, hasn't done extensive data analysis on interview techniques he's nuts.<p>[1]: <a href="http://www.linkedin.com/in/andrewwulf" rel="nofollow">http://www.linkedin.com/in/andrewwulf</a>
评论 #3934110 未加载
评论 #3934464 未加载
评论 #3933939 未加载
评论 #3933771 未加载
评论 #3934190 未加载
martininmelbabout 13 years ago
These articles reinforce something that someone told me a long time ago about a study about interviewing.<p>1. In most cases, the person (or the person in charge, if it is a panel) makes a decision in the first five minutes of the interview.<p>2. The decision is based on how much the candidate resembles the interviewer (i.e. how similar they are to the interviewer in terms of personality and skill set).
heliodorabout 13 years ago
I'd think a good way to hire great developers is to hire and fire quickly. I see this mentioned time and again, yet very few people actually live by it. The process would then turn into a trial period beyond which you are good to go. If you want to have a group of good developers, just operate along the lines of "I give myself X months to notice that this new hire is bad." If you want a group of great developers, switch your mode of operation to "I give this new hire X months to impress his/her peers."<p>The people who can make the judgement call are usually the hire's peers based on their daily interactions, so how would management be able to get its hands on this knowledge without turning the company culture into a disaster where people always feel like they are being continuously judged by their peers and have to watch their backs?
astrofinchabout 13 years ago
It seems possible this guy just has an unusually good memory and regards anyone who doesn't also have a good memory as stupid and "not a good programmer".
davvidabout 13 years ago
I'm happy where I work.<p>I interviewed for google once; their recruiter found me through an open source project in which google has a stake.<p>Anyways, I was tired when I did my phone interview, having just returned home from work. I bombed a couple of those interview puzzles. I felt pretty stupid because the answers are really obvious to me in hindsight. No biggie.<p>So this week they interviewed a junior programmer I mentored in the past. It looks like they might hire him! :-) good one. If they asked him he'd easily send them my way (guess who he comes to whenever he has questions?) Oh well.<p>If their recruiter contacts me again I might still do another interview. Their "write some code in a google document" interview style was novel, but possibly sub-optimal. YMMV
评论 #3934028 未加载
评论 #3933991 未加载
rsbrownabout 13 years ago
Yes, yes, 1000 times yes. Particularly the basketball team analogy at the end of the article really resonates with me.<p>To anyone wondering, "How could this possibly be true? How could so many companies be getting the hiring process so wrong?" I say: it's because they aren't focused on the goal. That doens't mean companies never achieve their goals, they are simply optimizing the wrong aspects of the process.<p>For anyone interested, the book <i>The Goal</i> by Eli Goldratt (<a href="http://en.wikipedia.org/wiki/The_Goal_(novel)" rel="nofollow">http://en.wikipedia.org/wiki/The_Goal_(novel)</a>) illustrates this phenomenon very well.
rmATinnovafyabout 13 years ago
But I don't think that a bad interview will mislead a programmer.<p>Thruth is lot of companies out there are mediocre. And this shows on how they recruit.<p>Everyone wants a "rockstar" for some average CRUD app, but they don't seem to understand that most programmers will do fine building them. Even people who interview badly.<p>I think that programmers should be the ones taking a detailed look at companies to see if they are a fit with the dev team instead of the other way around. After all, if you don't feel well whithin a team, how will you do your best?
jchughesabout 13 years ago
Being a recent graduate of computer science and now job hunting I have come across several different types of interviews in the last few months. I have sat a coding test where they just asked me to write a very basic CRUD application in code igniter, also had the here is a scenario you have 15 minutes to write a presentation and then present us with your result, plus an interview where I was asked to do some UML on a whiteboard.<p>But the best method I have come across was where I was just asked 20 or so questions of basic computer science knowledge from OOP to networking to basic CS theory.<p>I say this was my favourite method because I know some recent graduates who could and can write a very simple application but are terrible programmers and would not last the probationary period (actually happened to someone I know) but I know that if you asked them a series of basic questions they would stumble and fall because in general they where just terrible computer scientists and once outside of the very basic elements of programming they knew nothing so what good does asking someone to write fizzbuzz actually do? apart from weed out the idiots (then again I know someone else who failed fizzbuzz, largely because he managed to get through 3 years of CS and not know about using %).
raverbashingabout 13 years ago
It depends<p>I've hired great people without having them write code. (Or at least, not in a whiteboard)<p>Trust me, you can know a lot about a candidate without him or her writing a line of code (ok, maybe a line)<p>My favorite question: "Tell me about a bug you once solved". That will tell you loads about the candidate<p>Or ask him/her about the difference bewteen foldl and foldr<p>But, really, I won't use FizzBuzz again<p>"blah blah candidate has to write code" I won't use FizzBuzz<p>Be creative people, FizzBuzz is easy, but it's boring. And it's a bad filter (from experience).
评论 #3933684 未加载
darksagaabout 13 years ago
I agree with having someone who's already in the role interviewing you. Let the HR and managers interview the programmers last. This way you can filter out a ton of people before they waste everybody's time. One my last interviews the guy who interviewed me was a "change management" director. I thought to myself, "This is going to be a short, easy interview."<p>After being the industry for a while, I feel the best way to hire someone is still on referral. Developers know good developers and the good ones tend to stick together. They also know what their friends skills are, what they excel at, and what kind of work they would recommend.<p>Also, in the end, I learned its not what questions they ask, it's not about the stupid quizzes they put you through. Developers have to learn it's about you knowing enough about the company or asking enough tough questions to determine if it's going to be a good fit. Developers should have as much, if not more of a responsibility in vetting the companies they choose to interview with.
angdisabout 13 years ago
He makes a brings up an interesting point about the idea checking the effectiveness of interview methods. It seems that lots of people have intricate hacks for divining the talented programmers in an interview, but NO ONE can back their methods up with hard data based on performance and non-performance of candidates over project time-spans.
评论 #3933623 未加载
notJimabout 13 years ago
I'm curious, is it really that hard to identify competent programmers? Surely asking a few technical questions that include some element of programming should be enough. I feel like there's about 5-10 articles on this subject every week, all of which say or or less the same thing. In very nearly every case that I've interviewed someone, I've been able to easily decide if they were a hire or a no hire about 20 minutes into the interview process. I'm sure for certain positions or certain companies who are solving difficult problems, things could be more complicated, but the vast majority of us just aren't in that situation.<p>It seems like the rather more difficult problem is getting competent programmers to want to work at your company and apply.
评论 #3934569 未加载
评论 #3934033 未加载
EternalFuryabout 13 years ago
Ah, I am not alone!<p>Sure, simple tests to filter out people who clearly know nothing about programming are useful, but puzzlers and other ego-trip tests are useless.<p>I can hire better programmers by asking them to write an essay about any current piece of news.<p>The English language is the first programming language one should master. It's the one most useful to handle interactions with other human beings, and that's what makes the most important difference in any job.
droithommeabout 13 years ago
<i>meta post</i><p>It would be better if people would evaluate ideas in articles rather than use the author's name as a leverage point to launch personal attacks. Several posts here attack the author as being incompetent in various ways and not having had serious experience. Yet a brief review of his resume shows he works at Travelocity, worked at Apple in the past, and personally invented a innovative spreadsheet using a different information organization paradigm that ended up influencing iNumbers. So he's not really the dumbass that some people are trying to make him out to be. It's obvious he's a talented, serious and experienced engineer. There is nothing wrong with disagreeing with his article, but snarky and contemptuous remarks about his supposed incompetency detract severely from points made, making them seem like the critic is an immature schoolyard bully.
maeon3about 13 years ago
To fix coding interviews in this country, you need to insist on having a great coder do the interviewing. In 90% of the interviews I go on, I get evaluated by an HR type who could not write any program more significant than Hello World.<p>What's funny is that the Non programmer interviewers are starting to administer coding tests, and they don't know what a good response is! So here I am doing a coding tests on a white board, and and I'm being tested on delivering the optimized code on the spot, basically producing the best code. So now instead of birdseed knowledge tests, we are tested for creating an algorithm from memory on the spot, a memorization game. Like Jeopardy. That's not how the best coders code, we offload most things to google searches and general process of cutting code. They don't realize this because they evaluators can't write a program. They can only understand one specific algorithm and its implementation.<p>So the only way to get a good coder is to take your best coder, and then hand him a stack of resumes, and ask him which ones to bring in, and have him sit down with the recruits and have him give an up or down vote.<p>Using non coders to filter coder resumes? The time is better spent hiring a monkey to throw darts and hire the one with the most darts. I don't care how many books on coding interviews they read.
评论 #3933652 未加载
评论 #3933696 未加载
评论 #3936560 未加载
voxxabout 13 years ago
Alternate Title: I have no social skills but I know C++, GIVE ME YOUR MONEY.<p>too whiny for my taste.