TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: What do you think is the ideal programming interview process?

28 点作者 mckee1将近 10 年前
After the recent thread on Google rejecting the creator of Homebrew. If you could design the process from scratch, what would it involve?

10 条评论

audieleon将近 10 年前
First, do a phone screen, not more than 1&#x2F;2 hour of questions around the tech, team fit, and motivations. Involve a few people from the team the person will work with. This phone screen should weed out 80-90% of candidates. If you have a doubt about them on the phone, that&#x27;s a no.<p>If they pass the phone interview, invite them back and tell them to be prepared to code during the interview.<p>Start your actual interview with code test like FizzBuzz or something similar. Have them do this in front of you and one or two other competent developers. Many candidates will outright fail this type of test. If they do, politely end the process there.<p>The rest of the interview should be a few panel type interviews with the team and both technical and team fit questions. Include non developers if you can (testers, marketing, ops, etc.). Leave empty spaces in the conversation for the candidate to fill. They more they talk the more they will reveal. If you start getting a preponderance of thumbs down, politely end the process immediately. Don&#x27;t waste time.<p>Take everyone&#x27;s feedback seriously, and arrange to get it quickly from everyone. Preferably you would have a thumbs up&#x2F;thumbs down from everyone immediately. (Know your team well enough to know who gives only thumbs down...) Look for and pay attention to biases within the group. As the manager, sometimes you have to make a call that the team might not like. Be prepared and courageous enough to do so. (For instance, hiring a process-oriented qualified woman candidate might not sit well with your team of male cowboy coders, but it might make the team better...)<p>Typically, if the candidate has gotten this far, then I take them and the team to lunch to get them in a more informal setting. As long as the candidate doesn&#x27;t say something stupid or otherwise fall on their face during lunch, I&#x27;m ready to hire them.<p>If you are in the position to do so, have the offer ready, and make the offer right then and there. If you find the right person, ACT. Cancel remaining interviews with your apologies.<p>Hope this helps. Good luck.
评论 #9708511 未加载
steven2012将近 10 年前
Have a deep conversation about technical topics, have more conversations over lunch. Try to see if the person is a good fit with the team. Check references.<p>Then hire this person.<p>If they can&#x27;t code, if they are too slow, if they wont be productive at the end of one month, then give them 2 months severance and let them go.
评论 #9698577 未加载
评论 #9699325 未加载
评论 #9702240 未加载
MichaelCrawford将近 10 年前
I would find it far easier to persist in my job search, as I expect would many others, were my interviewers to avoid needless cruelty.<p>&quot;I&#x27;m sorry but we are unable to offer you a position&quot; while unpleasant to hear, is at least what I expect when I don&#x27;t get a job.<p>Just last week I was given a 24-hour challenge test. As I had to take an early morning call from a potential client, I chose to get some sleep rather than staying up all night to work. I did complete the challenge, with beautiful C++ code and a couple dozen unit tests.<p>Unfortunately they had a test that I did not, so my code tripped an assertion. The CTO emailed me to say &quot;According to the rules of our process, the conversation ends here&quot;.<p>I&#x27;m dead certain he did not even look at my source; one of his engineers ran the test. Most coders don&#x27;t know what assertions even are - expect most HN members do, but not coders in general - and it is uncommon for C++ coders to write exception safe code.<p>This company has been advertising the position for months. Why was it so important to stick to &quot;the rules of our process&quot;? Even if it was so important, did he really have to say &quot;the conversation ends here&quot;?<p>I don&#x27;t have a problem with whiteboard tests but this was actually the very first time I&#x27;ve so much as attempted a challenge question outside of the interview.<p>I&#x27;m going to bill them for my time; if they don&#x27;t pay I&#x27;ll take them to small claims court.
评论 #9699432 未加载
nate510将近 10 年前
tl;dr: Essentially agreeing with soham.<p>I don&#x27;t believe that there is any ideal process. A lot of it comes down to having good hiring managers that know how to evaluate a candidate based on their alignment to the company goals and the role they are being hired for.<p>Reid Hoffman wrote a great piece recently calling for a change in the company&#x2F;employee relationship from &quot;join our family&quot; to &quot;help us while improving your skills&quot;. He said that a standard interview question at LinkedIn is (paraphrasing) &quot;What would be your ideal role after you leave LinkedIn?&quot; The point of the question is to A) identify candidates who are motivated to grow their talents, and B) communicate to the candidate that it&#x27;s OK to imagine quitting someday.<p>That&#x27;s an example of what LinkedIn believes works, but it might not be appropriate for another company, say that wants to hire programmers into more of a stable career pipeline. Similarly, some shops might be highly specialized in certain roles&#x2F;technologies, making deep-dive technical interviews more valuable than at a company that needs bright generalists to solve poorly defined problems. There can be no one-size-fits-all solution.<p>One thing that&#x27;s worked well for me is to have candidates meet a significant number of the peers they will be working with. Another is to ask a quick &quot;weeder&quot; tech question and then an open-ended architecture design question (i.e. Describe how you would build the Facebook activity feed). Checking references is also valuable. But these are just ideas and they may not make sense (or be possible) in every situation.
soham将近 10 年前
Interviewing is not a standardized test. On the spectrum of human interactions, it&#x27;s closer to a date than it&#x27;s to a class test.<p>i.e. by definition, there isn&#x27;t a perfect interview process. It&#x27;s different for different companies, teams and people. Everyone hires people who &quot;fit&quot; their thinking. Case in point: Despite Google having &lt;1% pass rate, nearly everyone who applies gets a job somewhere.<p>It also follows, that the &quot;ideal&quot; process, even if one exists, is going to be a combination of techniques. And even then, it&#x27;s not going to be perfectly correlated with job performance. Simply because there are so many human elements in it and (figuratively speaking), human is the antonym of ideal.<p>You can take your time to really evaluate an engineer different ways, if you are hiring slow, say 1 person a month or so. But the moment you hit scale (say 15 engineers a quarter), it&#x27;s very hard to do better than what we do today. The process today is the path of least resistance, which is what humans will take when left with a deadline and quota to hire.<p>(About me: Founder of <a href="http:&#x2F;&#x2F;InterviewKickstart.com" rel="nofollow">http:&#x2F;&#x2F;InterviewKickstart.com</a>)
staacyc将近 10 年前
Interviewing and hiring is an expensive process so a one size fits all model would be ideal. There are a handful of variables to consider, like company stage, who&#x27;s hiring, etc. At Grok + Banter, an early stage startup, my co-founder and I have vetted a number of potential developers who were either someone we know or they were recommended to us. Keegan sticks to conversations about tech while I try to uncover goals and agendas to see if we can work together to align individual goals and company goals. We look for people who challenge our thinking in constructive ways (rather than demeaning ways). When we speak with someone who seems adept at solving real world technical problems as well as someone who is clear and forthcoming with regards to their goals, we work together to create a 30 day contract that will either end employment or continue employment with an extended contract after 30 days. What I have found is that with in 2 weeks, give or take a few days, Keegan and I both know if the person is a good fit. With in a year, we&#x27;ve ended three contracts. Interestingly, all parties look great on paper and are able to talk (white board) their way through problem solving, all three are highly intelligent, unfortunately, all three lacked the ability to execute. We&#x27;ve also interviewed and hired people that lack an ability to demonstrate their defining attribute(s). This attribute inevitably starts to appear around week two- three. If you can determine whether someone will execute or not as well as draw out defining attributes in an interview, you may be well on your way to a one size fits all model.
speedyapoc将近 10 年前
After a basic call to make sure that the culture fit is ok and to learn some background about someone, I believe the best way is to assign a small (4-10 hour), realistic, paid (market rate) task for the interviewee to work on.<p>I don&#x27;t think that programming on a whiteboard is a good way to evaluate how someone works, and many of the problems don&#x27;t reflect the real world. Interviews without programming can also favour someone with good charisma and ignore programming skills. Instead, by providing a realistic task for someone to work on, a company can better gauge how a person works, what solution they come to, etc. The interviewee is also at home and in a comfortable environment versus one with time pressure.<p>I&#x27;ve had two contracting jobs that evaluated this way, and both of the teams were nothing but joy to work with. In the first one, I was commissioned for 10 hours to evaluate an existing codebase, refactor a little bit, give input, etc. Their CTO agreed with my feedback and I was hired. In the other job, I was commissioned to layout their mobile application&#x27;s view controller and navigation architecture. Once again, my solution was reasonable and I was hired.<p>Neither of these tasks are unnecessarily algorithmic, tricky, etc. They&#x27;re simply real world problems and in both cases, even if I wasn&#x27;t a good fit, the company would have (hopefully) benefitted in some way or another.
评论 #9697133 未加载
NathanKP将近 10 年前
I&#x27;ve been pretty involved in the hiring process at the startup I currently work at. Our process works like this:<p>1) Phone screen of roughly 30 minutes.<p>2) Coding challenge. There are a couple different ones you can work on, such as exploring and scraping data from an HTTP REST API programmatically, building it into a report and submitting it to a different endpoint, or slightly more complex one that involves reading raw socket data to download a video stream, validate it&#x27;s checksums, and extract it. This is an offline challenge that candidates can do on their own time, using whatever tools, docs they want. But the point is that candidate&#x27;s choose which one they want to work on, giving them some choice to pick the easy thing or the harder challenge, and send it to us as a sample of their coding style.<p>3) Assuming the challenge code they sent us wasn&#x27;t god awful they can usually get an on site interview. During this interview they sit with a few engineers they would be working with and each engineer has their own type of approach to interviewing. Personally I have developed the following test that I find works quite well:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;nathanpeck&#x2F;wordladder&#x2F;blob&#x2F;master&#x2F;ladder.js" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;nathanpeck&#x2F;wordladder&#x2F;blob&#x2F;master&#x2F;ladder....</a><p>One advantage of a code exercise like the one above is that you can go as deep as you wish depending on the candidate&#x27;s skills. When interviewing a very junior candidate you can focus on their understanding of how to organize code, refactor it, and their knowledge of the basic JS toolkit.<p>For someone more advanced you can get down into details like &quot;Is this a breadth first or depth first algorithm?&quot; or &quot;How can this be optimized to make it more memory efficient?&quot;
zerr将近 10 年前
Assuming we&#x27;re talking about mid-career professionals. The fact that someone is invited to the interview means that you liked CV. Now the task is to ensure that CV is truthful - by discussing previous projects, experience...<p>After this discussion, if the interviewer is unable to tell whether the candidate is lying or not about his past experience - this means he shouldn&#x27;t be interviewing in the first place.<p>And there is one thing to remember - false negatives, i.e. skipping over good candidates, is <i>very</i> expensive. Big G might ignore this fluctuation, but it is much more crucial for those wannabe-be-big-G startups who mimic even how interviews are held.
andrewstuart将近 10 年前
No company gets hiring right. Accepting that is step one to rethinking hiring.