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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

The Terrible Technical Interview

133 点作者 mtviewdave大约 10 年前

40 条评论

StevePerkins大约 10 年前
I do almost all of the technical phone screens for my company. The process starts with a &quot;where-do-you-see-yourself-in-5-years&quot; personality screen, with an H.R. drone or outside recruiter. It moves on me, and then on to a brief &quot;homework&quot; coding exercise that we ask people to write and submit. If we like their code sample, then they come in for the panel of &quot;whiteboard-exercise&quot; people who conduct the face to face round. At my stage, I seldom bother with certification style questions about the programming language, or with highly abstract thought exercises, because other people will do those things in the face to face stage.<p>Typically, I ask questions that give me an idea about the candidate&#x27;s depth of experience and awareness. For example, &quot;<i>I see that you&#x27;ve spent X years using Subversion for source control. What are your opinions on trunk-first development vs. branch-first development?</i>&quot; I ask questions that speak to practical experience and design ability, without getting into too much depth. For example, &quot;<i>Pretend that you&#x27;re using an OO language to build an application for &lt;insert purpose here&gt;. Just off the top of your head, what are some classes that you would expect to see in your class diagram?</i>&quot;. Etc.<p>I find that this level of questioning is a much better screening tool than trick questions about programming language quirks or the minutiae of frameworks, or cliche puzzles about how many golf balls fit on an airplane. However, I groan and roll my eyes when I hear people challenge the need for technical interviews at all. <i></i>Yes<i></i>, they are necessary.<p>Having performed a thousand interviews by now, I am <i>awestruck</i> by how poor the software development talent pool is. I am aware that the Bay Area is overrepresented in HN&#x27;s readership, and that crowd tends to take for granted the talent level found in the technical equivalent of Mecca. However, I assure you that the rest of the planet is dominated by sleepy line-of-business developers... who have all the passion beaten out of them in the first 5-10 years, and spend the rest of their career just phoning it in and not growing.<p>I sometimes ask candidates what the letters &quot;MVC&quot; stand for. The successful response rate is around 50&#x2F;50. I ask candidates to briefly explain the <i>advantages</i> of the Model View Controller pattern, and only 10-20% can field the question. We bring in Java and C# candidates who have been working with their respective language for 10 or 15 years, and they get COMPLETELY EXPOSED during the face to face round when asked a series of basic certification exam style questions. Nothing tricky, just core fundamentals.<p>People who post here are <i>not</i> the norm. The &quot;norm&quot; is atrocious. So yes, unfortunately we all must endure technical interviews... to filter out people who have enough confidence or personality to excel in the other interview segments, yet are utterly useless.<p>Let&#x27;s put it this way: the more experience I&#x27;ve had with interviewing, the more selective I&#x27;ve been in my own job searching, and the more aggressive I&#x27;ve been in my salary negotiations. If you are really good, and are located outside of San Francisco, then you are worth your weight in gold and should value yourself accordingly. You wield <i>tremendous</i> leverage once you make a strong showing in a technical interview.
评论 #9243752 未加载
评论 #9243577 未加载
评论 #9243760 未加载
评论 #9243609 未加载
评论 #9245200 未加载
评论 #9243822 未加载
评论 #9245495 未加载
评论 #9246080 未加载
评论 #9243688 未加载
评论 #9246245 未加载
评论 #9246932 未加载
评论 #9243528 未加载
评论 #9244988 未加载
评论 #9243654 未加载
fsk大约 10 年前
False negatives are a lot worse than most interviewers think. (False negative = you pass on a good candidate, false positive = you hire someone who turned out to be unqualified)<p>If a &quot;good&quot; candidate is a 1-in-100 find, then each false negative means you have to look at another 100 candidates.<p>Also, if you decrease your false negative rate by more than you decrease your false positive rate, you&#x27;re actually hiring MORE bad candidates (while spending more time interviewing). I.e., every time you pass on a good candidate, that gives you another chance to make a mistake and hire someone bad.<p>Your odds of hiring one specific &quot;bad&quot; candidate may be small, but if most candidates are &quot;bad&quot;, that actually makes it more likely to hire someone bad each time you pass on someone good.
评论 #9245644 未加载
评论 #9243756 未加载
leadgenguy大约 10 年前
I am a self taught PHP programmer. Been working in tech as a freelancer since early 2000s. Built real applications.<p>I thought I was pretty good so a few years ago I moved to Silicon Valley to get a startup job. Boy was I wrong. Even though I had created real applications and knew MVC, etc. etc. I was basically told I was worthless because I didn&#x27;t know algorithms, unit testing, etc. etc.<p>So I moved back home (Tel Aviv) and started my own company (lead gen market). Programmed everything myself. Last year I did over $2 mil (70% margins) and this year I am on track for $3.5-$4 mil in revs.<p>The technical interview was the best thing ever for me because if I had passed I wouldn&#x27;t be where I am today.
评论 #9245979 未加载
评论 #9246393 未加载
评论 #9245248 未加载
bsder大约 10 年前
Look, if you want to talk about code, the easiest and best way to sidestep this issue is to have people bring code (somewhere between 200-1000 lines) to the interview. While they may not have a github presence, they&#x27;ve probably written something on a computer outside of business at some point.<p>I really don&#x27;t understand why more people don&#x27;t do this.<p>It doesn&#x27;t even matter if it is their own code. The fact that they will have to talk intelligently about it means that it will accomplish its task.<p>I used to get this issue interviewing with VLSI chip companies <i>all the time</i>. &quot;Do you know Perl?&quot;--&quot;Yes, I do, but I don&#x27;t know <i>YOUR</i> particular favorite subset of that write-only language&quot; doesn&#x27;t go over well in interviews.<p>After getting tired of getting dinged on questions about a language that I had used for almost daily for 5 years and that I abandoned <i>for good reason</i>, I took an old program of mine from Python and ported it to Perl. I bring both.<p>Now, I have something concrete to talk about, can actually <i>compare</i> the points of two languages, and most interviewers realize that &quot;Gee, you&#x27;re probably better at this than I am.&quot;<p>This shifts the conversation from &quot;Technical Jeopardy!&quot; to &quot;Ah, you know how to program, let&#x27;s look.&quot;, &quot;I did this. Here&#x27;s why.&quot;, &quot;Oh, that&#x27;s interesting. What does that do?&quot;, etc.
评论 #9245276 未加载
mingmecca大约 10 年前
I lose about 20 points of IQ in a technical interview. It&#x27;s nerve racking (I wear black shirts to hide the sweat) and it cost me a job working for a well known VR company. I passed the &#x27;practical&#x27;, which was a 2 hour coding test to generate a working game application, but the tech interview probably did me in. I&#x27;ve been programming games for almost 20 years, and as far as I know I&#x27;m one of the few who has done lead&#x2F;senior level work on games that were both #1 and #2 simultaneous chart-topppers, but I still couldn&#x27;t get the job. Their loss I guess, but it still sucks, as I was really enthused about what they were doing and could contribute significantly. I was about 10 years older than their typical engineer however, so maybe ageism played a part. I&#x27;ll never know. I just wish companies would look at my past body of work, see that I&#x27;m friendly and un-abrasive, and bring me aboard.
评论 #9245171 未加载
foz大约 10 年前
In my organization, we start by looking at what the candidate has actually done. We ask for a github profile, and any side projects they might have worked on. If the CV and body of work look interesting, we go on to a phone screen - general questions, clarifying points on the CV, explaining the job, answering questions.<p>For the on-site interview, we ask candidates to bring their laptop. We advise them to use a typical, comfortable development environment. We&#x27;ve seen candidates struggle with the latest Ubuntu, installed that morning to impress us. So we don&#x27;t want that.<p>During the hands-on interviews, we ask to see a side project, or any code they are mostly responsible for, and familiar with. We ask them to explain code, maybe change something, refactor a test, etc.<p>What we don&#x27;t tell candidates is that this part of the interview is also about how they use their tools. It&#x27;s important to see how good they are with their editor, command-line tools, can they type well, do they get easily distracted, and so on.<p>One of the most effective interviews we do is for project planning. A problem is explained in detail and the candidate is asked to design a solution. Not in code, but to talk it through in detail, drawing or writing docs&#x2F;stories if needed. This phase helps show us how they break down a project, ask questions, negotiate features, and look for opportunities to reduce complexity. Bonus points for making a pen-and-paper wireframe or throwaway prototype.<p>What we refuse to do is the &quot;puzzle&quot; problems, whiteboard code (which makes no sense), or tricky technical questions. We instead want to find people that use best practices, don&#x27;t re-invent the wheel, tackle problems pragmatically, and are good with their tools.<p>Over time, this approach seems to work well. However, we also discovered that we have to re-train and test our own interviewers. Without that step, the process can change unexpectedly, become inconsistent, or unfair. Don&#x27;t just assume your staff is interviewing well - take time to check it out and help them get better.
评论 #9245002 未加载
评论 #9243747 未加载
评论 #9245699 未加载
jimbobimbo大约 10 年前
I&#x27;ve been on both sides of the process and in both cases I prefer the whiteboard.<p>As an interviewer, I simply don&#x27;t have an hour or two to evaluate someone&#x27;s project. I want to see a strong resume and ask a few questions to understand whether the resume is real or not. A simple whiteboard question or two is great for that. You can always see whether the person is capable of writing code and it always brings up questions around the choices they made.<p>As an interviewee, I rather not be engaged in a live coding session: the whiteboard is a very efficient tool to get an idea across, without sweating on syntax errors, searching for API documentation and whatnot. Test projects - I have a job, thank you very much.
评论 #9245711 未加载
评论 #9246900 未加载
评论 #9245134 未加载
rsuelzer大约 10 年前
I remember with horror one technical interview I had. I was asked to complete a fairly basic problem, which I had actually just practiced a few hours before (the fact you can practice for these interviews indicates how questionable they are). As soon as the question was asked, I proceeded to start typing the answer and explaining what I was doing when suddenly my mind went blank, I struggled for nearly ten minutes to regain my confidence but by that point it was too late. The interviewer quickly ended the interview and told me to apply again after I had more programming experience, since apparently he was able to conclude the extent of my knowledge based upon my answer to a single question made during stressful circumstances.
评论 #9245269 未加载
golergka大约 10 年前
I&#x27;m going to go against the popular opinion here: I don&#x27;t believe that technical interviews are broken and need fixing. Of course, we know as engineers who deployed code filled with hacks and known bugs to production, everything is broken. The difference is only how broken it is. Let&#x27;s fix our approach to quality and security, ability to estimate and other things that are much more broken first.
评论 #9244649 未加载
tptacek大约 10 年前
Requiring a side project from candidates would have cost us most of our best hires.
评论 #9244781 未加载
评论 #9246734 未加载
rifung大约 10 年前
I completely get that technical interviews aren&#x27;t great at accurately predicting success on the job.<p>What I don&#x27;t get is all the whining that seems to happen from interview candidates who seem to think they are hot stuff and deserve to get hired but blame it on a bad interview process. It&#x27;s not like the interviewers aren&#x27;t aware of the shortcomings of the technical interview.<p>I have yet to learn of another industry where people routinely blame interviewers for their being rejected. I mean it seems like in other industries people are just hired almost solely based off resumes, and while everyone also realizes it sucks, they don&#x27;t seem to think the interviewer is an idiot for not hiring them.
msoad大约 10 年前
I live in Silicon Valley so I have tons of Software Engineer friends. I also have a friend who&#x27;s a heart surgery researcher at Stanford. When we talk about our hiring process he just laughs and thinks its impossible to do something remotely close what we do in Software in their field. It seems Software is the only field that people have to do some serious work for the interviews.
评论 #9244652 未加载
评论 #9244529 未加载
realrocker大约 10 年前
I bet I can put together dozens of people who think OOP and MVC are bad programming paradigms, another dozen who can make war on the quantum of documentation. We already know the solution to this problem: We need to hire people who have the skills to hire people and willinglines to do it too. Just being a senior doesn&#x27;t cut it. Too costly I guess but is it costlier than making bad hires?<p>IMO successful startups are the one&#x27;s where founders had the skill to identify and hire the right talent. What I don&#x27;t understand is why big companies are not creating a separate division of engineers with primary task of hiring? Is it because that if such a division existed the people there would eventually lose the skills being cut off from mainstream engineering tasks? I am not sure. But it seems to me that this can be solved by looking at hiring task as an engineering task. What&#x27;s wrong in seeing hiring engineers as another piece of code which needs to be carefully thought and polished?
nperez大约 10 年前
If your only goal is to measure the ability to code, then doing a whiteboard interview isn&#x27;t the best way to do that IMO.<p>But what about positions where you will be expected to give presentations, do pair-programming, or mentor junior developers? I think whiteboard interviews can be a measure of your ability to take technical concepts and illustrate&#x2F;explain them clearly to a team.<p>I used to really hate whiteboards, but as I grew into positions that required more leadership, I realized that I personally needed to develop better presentation skills. If a potential employer were to test me on that, a whiteboard test wouldn&#x27;t seem unreasonable to me.<p>So I have mixed feelings on this. Not every hire needs to be capable of being a teacher or delivering a solid keynote speech.. some positions would be best filled by someone with those skills.
评论 #9243343 未加载
danans大约 10 年前
Articles demonizing coding interviews always attack strawmen that are the worst kind of interview questions: 1) Trivia questions (i.e. &quot;what is the name of the method to do X in Java&quot;) 2) Questions with precisely 1 solution (you either get the one solution or you don&#x27;t).<p>These are indeed useless technical interview questions.<p>But that doesn&#x27;t meant there aren&#x27;t good technical coding interview questions. I tend to favor the kind that present a candidate with some example data and a set of constraints or patterns, and ask them to write code that analyses the data for those patterns or constraints and reports them. This sort of problem is ubiquitous in my domain. Importantly, I always choose problems for which there are multiple possible attack angles, not just one. And I don&#x27;t give a hoot about syntax errors, or what language they use.<p>This sort of question gives you a good sense about the candidate&#x27;s analytical capability (breaking down the &quot;word problem&quot;), and their ability to translate their problem-solving thought process into code. Because there are always multiple angles of attack, candidates have some leeway to exercise creativity.<p>In the end, it&#x27;s not terribly important to me that they get the optimal solution. I do care whether they demonstrate strong analytical capability in the literal sense, meaning they can decompose the problem and the associated programming exercise into their logical parts and implement them. I also look for good communication skills in the questions they ask when reasoning through the problem - this is something that only an in-person technical interview can reveal, AFAICT.<p>There are probably many smart candidates that don&#x27;t do well on these questions because they&#x27;re just having an off day, or nervous, or don&#x27;t perform well under pressure. I sympathize with them, because I&#x27;ve been there and felt all of the above.<p>But if the goal of a technical interview is to assess a candidate&#x27;s analytical and coding abilities, and their ability to do both simultaneously, there is no shortcut I know of to just giving them a role-relevant problem to work on.<p>EDIT:wording.
ffran大约 10 年前
I usually countered FizzBuzz question with an offer to show of the source code of a small project I wrote while studying. While some didn&#x27;t care, most interviewers were actually happy about it and let me do it. I tell them about the problems I had and how I approached them, usually leading to a question from me on how the company had similar problems and how they solve them. In my experience this &quot;opens up&quot; the interviewer(s) to talk a bit more honestly about development practices in the company.<p>On test projects. I generally expect that companies (after a pre screening) put similar efforts in me as I put in them. If you let me do a two day project, I&#x27;d expect that one person (preferable my future boss or a future colleague) to show me a &quot;company fitting&quot; solution and take the time to discus my work and theirs. If you&#x27;re not willing to spend that time I&#x27;ll most likely think you don&#x27;t respect my time. Which is a factor in choosing a company. I understand you are busy, I hope you understand that I’m too.<p>Edit: not a native speaker, sorry for bad english
jaredmcdonald大约 10 年前
&gt; It is time for engineers–especially excellent engineers for whom demand is high–to start to flatly refuse to do whiteboard interviews.<p>This might be a viable strategy for people who have a well-established career&#x2F;credentials&#x2F;references (etc), but for junior-level candidates still trying to prove themselves (such as myself) I can&#x27;t see this working out too well.
评论 #9245356 未加载
nevaben大约 10 年前
I&#x27;ve found this technical interview process to work very well. This is done after the initial phone screen.<p>1. Show them a problem with your product along with the code. For front end developers it could be how form invalidation errors are being presented to users. 2. Ask them to figure out what why the code is doing this and observe them troubleshoot the code. 3. Tell them to fix the problem in the code and observe them apply a fix, test, and debug it. 4. Ask them to architect a better solution to the problem and to explain what makes it better. What would would be drawbacks to their solution.<p>The benefits of this approach is that you can evaluate directly how someone solves problems, not how well they communicate, nor how knowledgeable they are. It also helps me judge how fast they are. Sometimes I ask people to estimate how long it would take to solve this and time them. The last step helps establish how they think through their solutions and how well they can communicate their ideas.<p>Additionally, I get to see how quickly they might get up to speed with our codebase and I can hear other solutions to some of the technical problems we are facing which is incredibly beneficial as a small startup.
ditonal大约 10 年前
In my experience, a lot of companies are combining _all_ these things. So you&#x27;re expected to do a phone interview, a test project&#x2F;coding test, a whiteboard test, and the management brown-nosing at the end of it where you get to pitch that you&#x27;ve studied a hard technical skill your whole career just because you&#x27;re so passionate about getting woken up at 3AM on PagerDuty to build _their_ vision, and definitely not because you expect to be paid for your time and skill. The fact that you realize money exists and can be used to pay for things like housing, education, and healthcare means you&#x27;re not truly passionate about technology.<p>The worst is the NYC tech scene where they have the exact same standards (which they cargo-cult from the west coast), but they decided not to bring over that aspect where engineers are respected and valued. Instead they borrowed the west coast interview and combined it with the east-coast finance style where programmers are considered clerical workers and cost centers.<p>NYC is actually a fun city to interview in because since it combines so many different cultures, you can&#x27;t even study for an interview because 5 different companies will give you 5 different interviews. Finance companies still love brainteasers and they _love_ mutexes, seriously, if you&#x27;re interviewing at a finance shop just memorize Java Concurrency in Practice and the producer&#x2F;consumer wikipedia article, because they are reading questions from there, even though when you show up on your first day you&#x27;ll have been better off having read Spring in Action and Headfirst Enterprisey Design Patterns or whatever.<p>In general I love how these companies have elite hiring standards but incredibly mediocre interviews. You get asked the same questions over and over again by these companies. Find the biggest sum in a list, find two items in a list that sum to a given number, sort a list of integers&#x2F;strings but keep integers where integers were and strings where strings were, copy files with ids to all servers with ids, etc. What&#x27;s the difference between an abstract base class and an interface (by a Python&#x2F;Node shop), what is a closure, etc etc. I&#x27;ve heard so many of the same questions repeated over and over. They have &quot;high bars&quot; for their candidates but apparently their interviewers can just use the first link off of Google or re-use whatever Facebook was asking in 2010 when they got rejected by them.<p>And then at the end we have a &quot;tech talent shortage&quot;. Whatever happened to that part where we claimed a false negative wasn&#x27;t a big deal? (glad the article calls this attitude out).<p>Tech hiring is totally broken and then they claim there&#x27;s a shortage. There definitely is a shortage of qualified interviewers, not so much a shortage of qualified candidates. I have a friend who I mentored into the industry, she&#x27;s very smart but absolutely a junior engineer, and yet she starts a new job and was doing interviews with _no_ training 3 months later. They just threw her into the lion&#x27;s den and expected her to figure it out.<p>Coding tests are another great one because the exact same people who talk about the importance and value of data throw all of that out the window when it comes to evaluating them. There is no calibration or standards, generally. One person is offended by a hardcoded file path but doesn&#x27;t care about whether you have tests, and another person is the direct opposite. Many people expect you to write extensive optimizations for the 100Kb input file you were given, another person sees that as absurd premature optimization. Whether you make it through a code screen is entirely tied to whether your coding style happens to jibe with whoever is reviewing you.<p>Again, the West Coast is better because at least compensation packages reflect the hoops you have to jump through and the monkey dances you have to have learned on cue. On the East Coast, anybody paying attention is desperately trying to get into management by the time they&#x27;re 30 because to do otherwise is to be humiliated and infantalized during the interview process _and_ during your tenure working there. My simple solution to all this nonsense is to make sure your CTO and head tech managers are being made to jump through all the same hoops with all the same standards. Drop this whole &quot;Oh, the CTO is a _manager_ role, he shouldn&#x27;t have to worry about all that.&quot; (again, more of an East Coast attitude).<p>Another incorrect thing tech companies claim that benefits them at the expense of labor that engineers brainlessly parrot: &quot;false positive are expensive because firing is hard&quot;. No, it isn&#x27;t, I&#x27;ve seen many people fired very easily the second they&#x27;re not up to standards. At worst they&#x27;re instantly let go because it&#x27;s at-will employment. At best, their given some absurd Performance Improvement Plan that establishes a paper trail so they can fire them without severance. And if your employer tries to tell you people have come off of those things, I have news for you, people lie, and liars are good at reaching senior management positions.<p>Something else is how you can put in hours and hours of your life, and get _no_ feedback, because telling you how you scored on an interview might expose them to legal liability. Let&#x27;s be real, the legal liability is when they reject qualified people for things like &quot;culture fit&quot;, and if your interview process exposes you to legal liability, maybe it&#x27;s because it&#x27;s illegal and unethical.<p>Another thing tech companies should consider is, instead of paying insane money to recruiters to be pushy sales people who are trying to dupe engineers into their low-paying positions, maybe just redirect that money to the engineer instead, it&#x27;s 2015, the days that sleazy recruiter types are necessary to try to fast-talk an engineer into a position that&#x27;s not good for him are over because we have the internet and we can read your terrible Glassdoor reviews.<p>I&#x27;m convinced one huge reason all this happens is to discourage job-hopping, because in this market, liquidity would probably help salaries move up faster.<p>I know I sound bitter, but again, these are the exact same companies running to the taxpayers to spend hundreds of millions of dollars of middle class Americans money to pay to solve their tech shortage crisis. Yet they absolutely refuse to evaluate their own hiring processes. And a huge chunk of engineers just eat up all this dogma about how hiring is hard and these processes are necessary, and don&#x27;t think for one second that all these processes are totally designed to please the employer at the expense of engineers being treated well. In a few years, there will be another recession and we&#x27;re all going to be &quot;rightsized&quot; away, so, demand to get treated well while you still can.
评论 #9243531 未加载
评论 #9243746 未加载
评论 #9245482 未加载
pandaman大约 10 年前
Almost everywhere I went on interviews the questions were about the very basic things. The things you&#x27;d knew if you did what you claimed you did on your resume. E.g. if you are a 3d graphics programmer with 10 years of experience you know what cross product is. If you had been shipping multiple 1M+ LOC projects in C++ you know what the word &quot;virtual&quot; mean and other popular syntax as well.<p>The places that asked me things I did not know probably had been looking for somebody with different experience than I had so it&#x27;s fine with me too, even though it would be better if they evaluated my experience from my resume.<p>So I don&#x27;t see the author&#x27;s problem. If the questions on the interview are too hard - you are probably applying at above your level or in the wrong field. I will most definitely not spend my time working on some programming test or do some side project for &quot;show-and-tell&quot; to please you.<p>Heck, he is appealing to other professions allegedly not doing interviews, yet it&#x27;s even harder to imagine them doing things he suggests. What kind of side project a doctor will have? A civil engineer? A manager? A pilot? A chef? A lawyer?
kelukelugames大约 10 年前
Maybe I&#x27;d have sideprojects if I didn&#x27;t use all of my spare times studying for interviews.
TACIXAT大约 10 年前
I get to interview candidate team members for the malware research team I&#x27;m on. We write a lot of code, but we&#x27;re not really software engineers. Accordingly, I only ask people very basic things in an interview to see if they can use the tools they list on their resume. Often times it&#x27;s something that can be handled with a single list comprehension (though no one every does that). It is astounding how few people can do what their resumes say.<p>I&#x27;m sure it&#x27;s stressful if you don&#x27;t know what you say you do. Then again, if you list 6 programming languages on your resume and can&#x27;t xor decode a string in the one I let you choose from that list, you deserve to sweat a little.
suchire大约 10 年前
IMO, having interviewed hundreds of candidates, whiteboard coding selects works very well for hiring a very specific type of fresh-out-of-CS-undergrad student, but it breaks down in almost every other scenario.<p>For more experienced candidates, we&#x27;ve swapped out most of the whiteboard questions for several other types of interviews, including in-depth technical discussion of one of their past projects, a discussion of how to architect a non-trivial system, and a more soft-skills interview on how they work with others, break down projects, and so on. This gives us a much rounder picture of a candidate, and allows candidates who are very good at something to shine a bit more.
kamaal大约 10 年前
The best interview I&#x27;ve had is where I was given a small project but with a tough deadline and I was asked to come back with a working code&#x2F;demonstration. The remaining interview was a code review session, and we talked about design, choice of tools, libraries and other general stuff.<p>I was stunned by the end of the interview because they got out everything one would want to know about how good a person is at their everyday job.<p>The worst interview I face is when people try to test my algorithm skills, that generally a test of how much I could memorize from careercup.com
yeureka大约 10 年前
I conducted quite a few interviews at my previous job and my solution for the whiteboard anxiety problem is to give a set of coding exercises&#x2F;questions on a piece of paper to the candidate and give him&#x2F;her as much time as necessary to answer these in private in a separate office.<p>When the candidate is ready he&#x2F;she announces it and we review the solutions together.<p>It is not perfect, but I find it much less taxing than being asked to solve a technical problem in a white board in front of an interviewer.
fit2rule大约 10 年前
I just went through one of these terrible interviews at a local game company, and I have to say I agree with this article 100%. I can code, have been doing it for 30 years, and I can handle myself in challenging technical situations - and I have the resume to prove it.<p>But put me in front of 3 guys I&#x27;ve never met whose purpose for being in the meeting is to expose every single one of my weaknesses, push me up in front of a whiteboard and ask me to explain the best way to solve a maze puzzle, and I&#x27;m going to freeze up and fail the interview. The reason is, this is simply not how I work. I work by sitting at my desk, thinking about the problem presented, and writing code to have the computer do all the work. It may very well be organizationally convenient to have these psychological lynchings occurring, but I highly doubt it gets the absolutely best candidate in the door.<p>I look forward to new solutions to the problems of finding qualified people; in my case, I feel I unjustly failed an interview at a company I could have been quite productive. Such is life in the modern software world, alas ..
amarjeet大约 10 年前
I follow this process for most of tech&#x2F;product&#x2F;analyst type roles. Specifically, in the case of tech, to me, it really depends upon the level of coding exposure a candidate has. If he&#x2F;she is a fresher then I would prefer some real-time exercise (white-board&#x2F;phone&#x2F;skype exercises) - it helps me get the idea of a person&#x27;s thought process. I don&#x27;t look for right answers in that exercise. If the candidate has some code exposure, I prefer to dive deep into his previous work and figure out how he executed the projects. In both the cases I am trying to asses a candidate&#x27;s approach to execute something. I also try to figure out the candidate&#x27;s ability to pickup new things and start executing them quickly. This is measure of a candidate&#x27;s potential. I assign similar weightage to &#x27;Potential&#x27; as to &#x27;Past Work History&#x27;.
logn大约 10 年前
I think people overstate how much interviews are the problem. Managers&#x2F;HR are the problem. In most companies the team manager has little to do with finding and initially screening candidates and they (or HR) are too afraid of firing people. I think managers alone should be handling this.<p>I also don&#x27;t think hiring by committee decision makes much sense. It reduces the one-on-one evaluation time by the hiring manager. If you have 6 people doing 30-minute interviews of a candidate, everyone gets a few good questions in then the decision comes down to a consensus of gut feelings. Plus the manager can deflect blame for bad hires.<p>But changing this require re-organizing people and job duties in a company and they&#x27;d rather just look for the next hot interviewing trend. (Edit) But as far a trends go, looking at real work is at least better than contrived exercises.
tezka大约 10 年前
I agree that technical interviews are broken, but not in the way that the author describes. I think the interviews should retain the algorithmic questions, but do away with language gotchas and design patterns etc. More emphasis should be added on the following topics: distributed systems issues, traits of modern hardware (cache efficiency, concurrency issues). There needs to be a part about mathematical competency introduced as well. Knowledge of basic probability, statistics and linear algebra should become part and parcel of the engineering interview process.
monksy大约 10 年前
&gt; This is why personal references and recommendations remain everyone’s favorite hiring technique… &gt; …which in turn is a major reason why the tech industry’s diversity numbers are so disastrous.<p>I&#x27;m not buying that argument. I would however agree that recommendations and references create a lack of diverse ideas&#x2F;approaches. Lack of racial&#x2F;gender diversity: That would indicate that the people in the minority just aren&#x27;t reaching out or participating in the community.
评论 #9244803 未加载
socrates2016大约 10 年前
An issue with technical interviews is the shortness of the measurement. Real-life programming occurs over days, weeks, and months. You think about a problem and come up with progressively better solutions while thinking through and understanding tradeoffs. Its more a marathon than a sprint. Technical interviews are like sprints. So its as if you hire runners based on how well they can sprint but then race them in marathons.
moey大约 10 年前
I think the best approach would be options for different people to choose.<p>Think you can pass a hardcore whiteboard interview? Go for it.<p>Would you rather spend a day and solve a real problem we have? Lets see what you got.<p>Think you have the attitude, just not the knowledge to match our exceptions yet? Do you have time for an internship? Ok cool. Lets play.<p>One size fits all is a bad idea for interviews. Just as how teachers test their students.
dba7dba大约 10 年前
Why not require programmers to submit samples of work (most likely personal, side projects due to legal issues) done over a period of time, like graphic artists do when they apply for positions? I would think that would be a much more correct assessment of the programmer.<p>Interviews should really be limited to check personality, and not much more imo.
评论 #9245803 未加载
apinstein大约 10 年前
I have found the most reliable measure for a candidate is looking at their public interactions&#x2F;contributions. Seeing what projects they choose to work on in their spare time, how they speak at user groups, how they interact on an &quot;issue&quot; online. Blog posts are also great. For me, ability to communicate is such a huge part of being a successful developer, that being able to see how they communicate is always a very strong signal of intelligence, mastery, and interpersonal style.<p>So this works great for people that partake in such things, but there are clear still many great developers (perhaps the vast majority) that don&#x27;t have this type of extensive public profile. These are the applicants that I fear false-negatives for the most, and the candidates for which I am not confident of my interview techniques.<p>Could it be that the proper way to technically interview such a candidate is to offer them a &quot;fellowship&quot; to work on an open-source project? Point them at any project (used by the company or a favorite project of their own) that they&#x27;d like to contribute to, and offer them a small stipend and enough time to make a legitimate contribution to open source? And use that as the technical portion of the interview?
评论 #9246839 未加载
jdmichal大约 10 年前
Is it maybe time to start allowing software professionals to have a portfolio? I would guess that companies are the main driving force behind not having portfolios that can be shown, but at the same time they are thereby hurting themselves because they can&#x27;t properly evaluate employees.
BurningFrog大约 10 年前
This article seems to be written inside a different bubble than mine. Then author lives where all technical interviews are conducted in a similar way, and thinks that is the universal truth everywhere.<p>In my bubble things aren&#x27;t perfect, but they&#x27;re quite different.
cpprototypes大约 10 年前
I think this would be a fair and effective interview system:<p>1) College graduate: Keep the traditional algorithm programming tech interview. But allow the use of a laptop (no whiteboard)<p>2) 2 - 7 years engineer: Require a github side project or give a home coding test. Interview will focus on discussing the project implementation. Also ask them to add a simple feature.<p>3) 7 - 15 years engineer: Ask them to come to the office and show them some bad code from the company source control. Ask them to explain why it&#x27;s bad and to refactor it to something better.<p>4) Express route: Instant offer, no interview. Only &quot;interview&quot; is by a VP and it&#x27;s more about trying to convince the candidate to join the company instead of the other way around.<p>The first 3 scale according to typical life situation and industry experience. The amount of free tend tends to decrease from college graduation to 30&#x27;s and beyond. For example, a college graduate has lots of free time. Someone in their 20&#x27;s has less, but still a significant amount. 30&#x27;s and beyond tend to have little free time due to family responsibilities.<p>But the interview styles also match what they should know by that point. A college graduate doesn&#x27;t know anything about real industry coding so the typical algorithm coding interview is ok. Someone with 2 - 7 years experience should be good at writing lots of code. But they don&#x27;t yet have the experience to know that sometimes deleting code is better than adding more. They also don&#x27;t have enough experience yet to read code well and refactor, their &quot;code smell&quot; sense is not yet developed and they think adding more code is the solution to everything. An industry veteran of 7 - 15 years should be able to read code well, spot all the issues, and be able to refactor into something better. These skills can only be gained after years of experience.<p>So the 3 interview styles scale well according to the free time they are likely to have and testing whether they&#x27;ve really grown as an engineer. The last one, the &quot;express route&quot; is reserved only by referral from the company&#x27;s best engineers. For example, if the company has this tech ladder:<p>junior engineer, engineer I, engineer II, senior engineer, senior engineer II, principal engineer:<p>Then only senior engineer II or above AND being at the company for at least 3 years would be allowed to make ONE express route referral per year. The reason is that an engineer has to be in the industry for a while to meet other good engineers. And 3 years is enough to learn the company culture. This express route system effectively would give a competitive advantage over other companies. For example, imagine a very good engineer who is already employed. They are busy and don&#x27;t want to go through any kind of interview process. But if they are given an instant offer, that greatly reduces the barriers for them and they are much more likely to seriously consider switching to the company. The main idea here is that good engineers have a lot of options but not much free time to interview, your good engineers should know a few in other companies, so the express route is a way to get more good engineers who would usually not consider moving because they don&#x27;t want to spend time interviewing.
评论 #9244608 未加载
crdb大约 10 年前
I&#x27;ve seen two kinds of motivations: that for career climbing, and that of an engineer who enjoys making things. I personally prefer my engineers to have the second.<p>I tried hiring the normal way (CV, white board) and had one candidate worth speaking to in over 200 applicants.<p>We decided to try something else. We stopped reading any cover letter or CV and wrote that in the job ad. We asked candidates to build a simplified version of what the job was about, taking about 4 hours, then to send us the code which we&#x27;d discuss with them over the phone at their convenience. Anybody whose code passed would be hired, and if people couldn&#x27;t be bothered because they were already famous they could send us their libraries. Nobody took the Starcraft best of 7 option :(<p>Why we did this:<p>- having to write code eliminates those who can&#x27;t, or who can&#x27;t be bothered; not having complex unrelated hoops to jump through eliminated those who are good at career climbing;<p>- we replaced the hours candidates would normally spend dealing with HR or travelling to a site for something (&quot;cultural fit&quot;) that overselects the polished anyway, with something people we want would enjoy doing (solving a problem, writing code);<p>- no pressure, access to your &quot;external brain&quot; (Google, your own libraries) unlike with a white board; allows for the anxious to pass, and those who outsource a lot of their knowledge to the machine (like me);<p>- you can tell a lot about how people will approach their job from the way they approach the small version of it; documentation, structure, abstraction levels, choice of libraries, and if you&#x27;re wrong about the candidate&#x27;s reasons you can always clear it up in the chat;<p>- it&#x27;s fair because everybody has to tackle the same problem;<p>- no discrimination since it&#x27;s all ability based: I took to Skype-text-chatting with candidates instead of voice calls mostly because I don&#x27;t like talking on the phone. It was only when she sent us her passport scan for the contract that we realised one of our candidates was female. Another team member didn&#x27;t have a CV; it&#x27;s because he was just finishing high school, as we discovered when we talked to him, but his code was good enough, so he got the offer and skipped university.<p>I&#x27;ve never had to put out another job ad (not for myself anyway) because I have so many qualified candidates left over from that round, and from the team network. Surprisingly, we didn&#x27;t get spammed; the requirement to post code seems to have been mostly understood and we only had a half dozen &quot;dear Sir&#x2F;Madam&quot;s.<p>So I disagree with you, but YMMV. We were hiring for a small, distributed team solving relatively well known problems. Requirements are probably different at Google or Facebook.
评论 #9246270 未加载
sytelus大约 10 年前
The guy who wrote this is not even a real professional software developer[1] but it seems that he has strong opinions on technical interviews anyway. In fact I looked up few people he mentioned in article and none of them seem to be real full time software <i>developers</i> either. Nevertheless whoever has microphone gets to get heard, I guess.<p>I have seen a lot of PMish&#x2F;weak programmers make cries about technical interviews. Yes, whiteboarding interviews are not perfect and false negatives rate is typically high but the companies who want nothing but the best would care less about false negatives and rather more about false positives. Anyone who has worked long enough in software engineering <i>professionally</i> knows the enormous cost of false positives [2]. These sort of companies also typically care less about which language and frameworks candidate knows at the moment. They rather put huge weight on evidence whether a candidate can analyze a challenging problem, apply computer science and obtain a solution. Why? Because these companies are actually working on problems that <i>does</i> requires deep hard computer science.<p>Most - perhaps 80% - of software development houses are not like that. Programmers in those companies have never bothered to think about collisions in hash tables and they often wonder why anyone would care when libraries take care of everything. They never need to create data structure for trees or graph or even linked lists because simple things have always got job done. They wonder why they are being asked questions on those &quot;arcane&quot; things when nobody really uses computer science stuff that they were taught at school.<p>That&#x27;s the culture problem. Those 80% of companies tend to copy interview process at other 20% even though it is meaningless for what they do. Interviewers typically chose their questions from algorithms text books or even internet searches. Then they get stuck on it for a decade and proudly mention it as their &quot;favorite question&quot;. That&#x27;s completely wrong. I almost always tend to ask CS questions that I myself needed to solve to get my job done. I typically retire my questions in month because I probably would have found another problem where applying right algorithms and data structures was the key. When I ask these questions to candidates, (1) it&#x27;s rare chance that it would have been covered in books like Cracking the Coding Interview (2) no risk because candidate decides to do interview brain dump (3) I know candidate is smarter than me if s&#x2F;he can solve within hour under pressure (4) If they fail miserably I know this guy could have screwed up our project just last month had he been hired.<p>Bottom line: Ask questions from your actual day job. It takes a lot of skill and effort to abstract away other complexity and form a good interview questions and that&#x27;s why being an interviewer is hard. Whiteboarding <i>works</i> if you do that. It doesn&#x27;t work if you are trying to copy companies which are doing different kind of work than you do. It most certainly doesn&#x27;t work if you never actually needed to solve the problem you are asking to get your actual job done.<p>1. <a href="http://rezendi.com/aboutauthor.htm" rel="nofollow">http:&#x2F;&#x2F;rezendi.com&#x2F;aboutauthor.htm</a><p>2. <a href="http://www.joelonsoftware.com/items/2007/06/05.html" rel="nofollow">http:&#x2F;&#x2F;www.joelonsoftware.com&#x2F;items&#x2F;2007&#x2F;06&#x2F;05.html</a>
yason大约 10 年前
The more I interview the less I tend to give weight to the technical part and the more I focus on evaluating how well I get along with the person, how easily and naturally we can <i>discuss</i> programming topics, and do we happen to converge on building a rapport.<p>People can learn technical stuff and people can grow professionally but the chemistry is harder to fix. And, unlike some programmers might see it, even code is communication and, a bit surprisingly, is subject to chemistry. You can talk to some people via code. Not all people.<p>I consider the technical part merely as a way to filter out people who seem to be missing something blatantly obvious. I&#x27;m fully aware that my system will sometimes generate false negatives but there&#x27;s no such thing as a fully objective interview.<p>I have a few technical things or topics that I usually ask about and I expect every candidate to know at least a few of them but certainly not all. I generally go forward topic by topic until the candidate has at least N things s&#x2F;he knows about. Of those that the candidate does know about, I ask more and more details until I run out of questions or the candidate runs out of answers. If I&#x27;m getting strong signals early that the candidate is likely to be ok, I&#x27;ll just try to finish up the technical part quickly.<p>Then I proceed to the most important and revealing part which seems to be asking about a project that the candidate is really proud of, work or hobby. In the best case I get a lecture down to details on something the candidate built that s&#x2F;he&#x27;s still excited to explain to someone, on the coolest things s&#x2F;he could build into that project. A good programmer pours so much passion into some, possibly minuscule, part of what s&#x2F;he&#x27;s building that you surely should be able to ooze some of that out back.<p>Another important part is asking about hobby projects: if one particular candidate doesn&#x27;t program on his&#x2F;her spare time, I&#x27;ll probably go with any other candidate who does unless s&#x2F;he&#x27;s exceptionally strong otherwise.<p>I try to remove pressure from the interview by acknowledging that given some rough preliminary filtering, I could go wrong either way. Maybe I reject a good candidate because I don&#x27;t know as much myself. Maybe I accept someone who&#x27;s really nice and who seems to know about things, passing my filters, but turns out s&#x2F;he just can&#x27;t produce much code hands down. All that will happen some day.<p>The trial period is there so that both parties can revert an obviously wrong decision. We haven&#x27;t needed that yet but I greatly prefer to postpone some responsibility for later and relaxing the actual interviews as much as possible. People don&#x27;t like to be grilled and I don&#x27;t like to grill people, not only because it&#x27;s very consuming but because it doesn&#x27;t seem to be a particularly effective indicator.<p>There will never be a silver bullet to interviewing because there will never be a silver bullet to meeting people the right way, but if I were to suggest one thing it might be to listen more and ask fewer questions. By listening, I don&#x27;t mean letting a babbling candidate take over the interview. By listening, I mean to figure out who is this person, where s&#x2F;he&#x27;s coming from and where s&#x2F;he seems to be going.<p>Being the fastest and most accurate shooter isn&#x27;t much of a value unless you know what you want to shoot, what needs to be shot, and why.
评论 #9245752 未加载