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.

Common problems I see in technical interviews

49 pointsby leenyover 4 years ago

16 comments

lifeisstillgoodover 4 years ago
&gt;&gt;&gt; correct a design when you have 100 lines of Java code written before I really understand<p>Holy Cow. 100 lines in an interview ? I had an interview like that once and never again. Want to see 100 lines of my code - github.com&#x2F;mikadosoftware. In an interview - no thanks<p>Look we all know interviewing is broken. Hell I have worked with people for months before getting to know them and their coding styles. I think ultimately we are all being a bit too privileged about this : Hiring has three states, acquaintance, friend, spouse.<p>Some people are not skilled enough to be a work collegue - fizzbuzz and 20 minutes chat tell us that - we all know people who after 20 minutes we think we will pay money to avoid the next 20. Fine<p>Friends are harder - we gel in some fashion. This is the mid point for most of us - as long as we pass fizzbuzz &#x2F; basic design, then we can make things work. Yes it might have friction but we can make it work.<p>Spouse is obviously the perfect level - that ideal together.<p>I fear that far too much effort is put into finding the perfect spouse in an interview - when really we can be fine with a friend. (no benefits!)<p>When hiring set your sights lower ...
评论 #24798676 未加载
评论 #24798130 未加载
评论 #24798127 未加载
taywrobelover 4 years ago
Disclaimer that I work server-side. This is not applicable to all of software engineering by any means, but if you want a more technical answer than those the article provides: concurrency.<p>It&#x27;s 2020: computers have multiple cores, and it&#x27;s great to know how to use them, but time and time again I see candidates get tripped up with basic concurrency concepts. Deadlocks in go, event loop blocking in node.js, unsafe memory access in Java or C, they come up all the time in interviews I&#x27;ve done.<p>&quot;Track the median value in a stream of integers&quot;? No problem. Clean code, no errors.<p>&quot;Track the median value of two streams of integers which are coming in concurrently&quot;? Data loss, deadlocks, concurrent modification exceptions... Sad times.<p>I know it&#x27;s a bit more complex than basic algorithms and data structures, but it also is much more important in the &quot;real world&quot;, at least in my opinion. Every language has libraries of data structures already written, but concurrency solutions are often context specific and need handwritten solutions.
评论 #24801700 未加载
评论 #24798382 未加载
评论 #24801364 未加载
评论 #24798835 未加载
petargyurovover 4 years ago
The best interview I&#x27;ve had was at my previous job as a backend engineer. After the first two culture-fit interviews I had a technical interview with the lead dev and the CTO.<p>There were no programming tasks. It was a 3-tiered conceptual question on designing a backend system. They asked me how I would do this and that. How would I handle this edge case? What if the user did this? What if the data was shaped like this?<p>I don&#x27;t think I even did that well in it, but it was the most enjoyable interview process I have had.
lmilcinover 4 years ago
As an interviewer I wholeheartedly agree with this.<p>I think most egregious problems are:<p>1) candidates assuming that I am only interested in them producing a solution<p>2) candidates assuming that I am interested in checking their knowledge of the language or standard library<p>In fact, the process is mostly what I am interested in and I am pretty happy to give hints and especially when it comes to trivia like what is the name of the function that does some specific thing and what kind of parameters it takes.<p>I just would like to see how the candidate approaches and deals with the problem. Does he&#x2F;she have analytical, planned, ordered approach or is everything chaos?<p>High on my list of things that don&#x27;t impress me is solving the problem by running the code dozens of times. This shows the person cannot write any stretch of the code without running it because he&#x2F;she does not actually have a mental model of what is going on and relies on actually running the code as a crutch for their lack of understanding.
评论 #24798855 未加载
评论 #24799182 未加载
yakshaving_jgtover 4 years ago
The common theme in this article seems to be about planning approaches to and implementing algorithms.<p>I think there&#x27;s more to being a successful employed programmer than that. How do you avoid people who are nice as pie in the interview, but play politics and are rude to people under your nose on the job? How do you avoid people who can deploy algorithms on demand, but have very little motivation day to day and fail to get anything substantial done?<p>At a job, you&#x27;re interacting with people every day. I don&#x27;t think you&#x27;re looking for the best-performing algorithm every day. In most cases, best performance doesn&#x27;t matter.
mkl95over 4 years ago
Interviews reveal much more about a company&#x27;s culture than interviewers seem to be aware of, and this one is telling me there&#x27;s a bunch of managers at this company who get away with their lack of organization.<p>If I&#x27;m treated like this at an interview I&#x27;m going to assume it&#x27;s the kind of company where seagull managers write tickets with confusing titles and no descriptions, and expect developers to do their job.
lentil_soupover 4 years ago
&gt;&gt; “Hmm, I wonder if I could … … … no, never mind, I’ll just do this instead.”<p>I can either think OR talk, I can&#x27;t do both at the same time. I can happily think and THEN talk but when I&#x27;ve interviewed with companies that have this interview culture (i.e. Google) they don&#x27;t let you do this. They start telling you they want to hear what you&#x27;re thinking. Also, most of the time thinking is disjointed and nonsensical and is way faster than what you can express so it&#x27;s actually disrupting the problem solving. I really don&#x27;t understand what&#x27;s wrong with letting people think for a few minutes.<p>Additionally I am perfectly fluent in English and talk code everyday in English but it&#x27;s not my mother tongue so having me chit-chat my thinking away while I think (potentially in another language) hinders me since I focus more on what I am saying than actually solving the problem.<p>&gt;&gt; &quot;My typical work process in a technical challenge like this is to spend a minute or two thinking quietly about the problem and writing down notes, I’ll share those thoughts with you in a moment to get your input&quot;<p>That&#x27;s great, but that hasn&#x27;t been my experience. Interviewers constantly tell you to talk and it&#x27;s specially bad during a phone interview. I&#x27;d be fine if the interview was really setup as a collaboration between two people, but it&#x27;s not, you&#x27;re given a problem and a whiteboard.
评论 #24798974 未加载
vorhemusover 4 years ago
I increasingly feel that coding interviews are primarily a company&#x27;s marketing tool (&quot;Look, we have such high barriers to entry, we&#x27;re exclusive!&quot;) rather than real reviews of software engineering skills.
alanfranzover 4 years ago
So, a developer should learn what an interviewer wants (actually what this interviewer wants) because it&#x27;s the &quot;right thing to do&quot;.<p>What about sharing expectations and the way the dev will be evaluated with them beforehand?
Seb-Cover 4 years ago
&gt; “Hmm, I wonder if I could … … … no, never mind, I’ll just do this instead.”<p>&gt; Interviewers want to know what’s going on in your thought process. It’s important that they know how you’re making decisions. How are you qualifying or disqualifying ideas? Why are you choosing to implement something in a particular way? Did you spot a potential problem in your code? What was it?<p>That is a very good way to hire people that are good at interviewing or selling themselves, not so much for very good developers.<p>Speaking loudly about every tiny decision you take for simple algorithms is very hard and inefficient. It is even worse when you have a lot of experience, because you just <i>know</i> which designs will be wrong or not without even thinking twice about it.<p>It is okay to expect communication about the overall design, specifications, input, outputs and behavior, not about the algorithm itself. If spoken human languages were efficient at expressing this kind of thoughts patterns, we wouldn&#x27;t have invented mathematics notation or programming languages.<p>&gt; “I wonder if … hmm … well, I was thinking about implementing this as a depth-first-search, but given a constraint around ___ I think a better approach might be ___, what do you think?”<p>If you have this kind of expectations, you are again hiring people that are good at interviewing, that is all. I have been a developer for 15 years and I don&#x27;t know how most of the basic algorithms are called in English, because it is not a useful vocabulary in my everyday work.<p>I make specific algorithms to efficiently solve specific problems. I do not blindly copy patterns from Stack overflow or from a book. I would not know what is a &quot;depth-first-search&quot; unless I start searching and looking for some code in Google either.
评论 #24798655 未加载
josephgover 4 years ago
A lot of people are badmouthing this article. I think thats unfair. There seem to be some broad misconceptions as to why current technical interviews are designed the way they are. (I speak with the experience of administering over 400 technical interviews.)<p>First, you have to understand that most candidates who apply for a technical position don&#x27;t really know how to program. The obvious reason for this is that weak candidates spend more time trying to be hired, and thus they apply for far more jobs than qualified candidates. I&#x27;d estimate about half the people who apply for an advertised software engineering position can&#x27;t program something as simple as fizz buzz. Many of these people are lovely humans, have families to support and are depressed from being turned down from job after job. But if you can&#x27;t program, I can&#x27;t hire you for a programming role. And for everyone who&#x27;s competent, I get it. Simple programming problems are a waste of your time. But as an interviewer, I need to quickly differentiate you from someone who spent 3 days watching python videos on youtube then forked some random repositories into their github account.<p>As an interviewer, I&#x27;m really trying to answer this question: If I put you in a team of programmers, would you be able to meaningfully contribute? If you want to know how to land your dream job, take a minute to brainstorm which what qualities would make you effective in the role you&#x27;re applying to. Then demonstrate those qualities in an interview. Your list will look almost identical to mine - be proactive, have good communication skills, know how to program, know the domain (web &#x2F; ios &#x2F; ...), etc.<p>If you can&#x27;t demonstrate a skill in the interview, your interviewer will assume its because you don&#x27;t have that skill. This is a reasonable assumption and - despite all the grumbling in these threads - usually true. Most people who fail interviews either have poor technical skills or poor communication skills or both. If your interviewer can&#x27;t tell the difference between you and the mountain of disappointing candidates they&#x27;re drowning in, its your job to figure out why thats the case and fix it. If you apply for a frontend web position but you can&#x27;t tell me what a CSS selector is, its not the fault of &quot;the system&quot; when you don&#x27;t get hired.<p>Lots of folks here are convinced technical interviews are fundamentally broken. I still haven&#x27;t seen any fairer way to assess programmers that can filter out the flood of weak applicants. If you think technical interviews are broken, I challenge you to suggest a viable alternative. Please - prove me wrong!
ChrisMarshallNYover 4 years ago
The one thing that struck me, was all the problems were with the interviewee, not the interviewer.<p>I gave up looking for work, when I realized that it was my job to throw the seed into the interviewer’s nest.<p><i>”God gives every bird its food, but He does not throw it into the nest.&quot;</i> -J.G. Holland<p>I was a hiring manager for 25 years. Hiring people was always a <i>huge</i> commitment. I had to fight like hell for every headcount, and I kept high-end engineers for <i>decades</i>.<p>I wasn’t just interviewing workers; I was interviewing <i>family</i>.<p>I could usually determine basic <i>engineering</i> (not just “coding”) skills after a half hour, and without having to write a single line of code. A big reason for that, was because I worked hard to maintain my own engineering chops throughout my management career, and that helped me to relate well with prospects.<p>Most of the interview was about whether or not the employee would strengthen or weaken the team. Whether they would be conscientious and disciplined in their approach; whether they would be enthusiastic and spend time learning the <i>why</i> of a task, as opposed to just the <i>what</i>.<p>I was interviewing really senior-level engineers. These were people that would need to write high-performance pipeline code, and most of the prospects had no experience in that particular field. I needed to hire people that would learn new algorithms and techniques. Enthusiasm, flexibility, humility, and open-mindedness were the currency; not rote and bluster.<p>I also wanted them to know what they were getting into. I wouldn’t <i>ever</i> lie to prospects, and that probably cost me a few, but I wouldn’t want to establish a relationship on sand. I loved what I did, and wanted people that would also love it.<p>I’m not egotistical, but I am confident in my own <i>engineering</i> (there’s that word again) skill and experience. I don’t demand worship, but I want some simple respect. If you won’t give that to me in an interview, then why should I expect it from you, once you have the free milk? I have had <i>many</i> friends that have left their jobs; uprooted their lives, and headed for greener pastures, only to come back, a few months later, humbled and broken.<p>If you are interested in me, then you are interested in someone that can make an enormous difference in your company. I’m not God’s gift to programming, but I have a unique mix of skills and experience that could really give your effort a big push.<p>I’m also a damn decent person, which becomes obvious after a fairly short conversation. I interview well.<p>But I test badly.
评论 #24804535 未加载
评论 #24799200 未加载
bra-ketover 4 years ago
the best interview would be to pair interviewer and interviewee on a random leetcode problem<p>otherwise it&#x27;s mostly just a power trip for the interviewer and a lousy signal.<p>oh, and people who like problem #19 on project euler shouldn&#x27;t be interviewing humans. In fact programmers should not be interviewing other programmers at all, it&#x27;s not their job.
评论 #24804439 未加载
choegerover 4 years ago
Quote:<p><pre><code> Your algorithm will likely be an O(n^2) (n-squared) algorithm because you’ll be iterating over the data in an exponential way </code></pre> End of quote.<p>Ok, so the technical interviewer mixes up exponential and polynomial run-time in a blog post about interviewing. Can you spot what&#x27;s wrong with interviewing in SE?
评论 #24798365 未加载
评论 #24798561 未加载
评论 #24798244 未加载
评论 #24798277 未加载
评论 #24798560 未加载
timdaubover 4 years ago
Skimmed over the article: Oh, commom problem areas have nothing to do with the skill of coding but only with the skill of being a good interviewe. Kk thx bye
评论 #24798600 未加载
Khelavasterover 4 years ago
Not a good look for the founder of interviewing.io: &quot;I’ve been coding for a pretty long time. Since 1982, actually. There’s no data structure called &#x27;a grouping&#x27; in any language I’ve ever used. So what assumptions are you going to make about the problem?&quot;<p>But--there&#x27;s absolutely a data interface in C#&#x2F;.Net called &quot;a grouping&quot;. It&#x27;s fundamental to LINQ: <a href="https:&#x2F;&#x2F;docs.microsoft.com&#x2F;en-us&#x2F;dotnet&#x2F;api&#x2F;system.linq.igrouping-2" rel="nofollow">https:&#x2F;&#x2F;docs.microsoft.com&#x2F;en-us&#x2F;dotnet&#x2F;api&#x2F;system.linq.igro...</a><p>Shameful to spread the idea that software developers haven&#x27;t created an industry-standard interface for groupings of enumerable data in 2020.
评论 #24798083 未加载
评论 #24798203 未加载
评论 #24798384 未加载