Live data from Hacker News

Stanford CS9: Problem-Solving for the CS Technical Interview

web.stanford.edu

51–60 of 292 posts

Re: Stanford CS9: Problem-Solving for the CS Technical Interview

#51

Earlier quoted context omitted.

"Your job is to write a function that accepts as input a pointer to a linked list with an even number of elements "

Would writing it to handle odd numbers of elements as well cause the employer to move forward with a different candidate?

This may not have been a serious question but I'll give a serious answer: depending on the interviewer, you could get bonus points for going "above and beyond" or, yes, you could be penalized for "not reading the spec."

I've found that the best way to handle it in a conventional whiteboard interview is to mention it when appropriate and offer to add the functionality later.

"Now, here's the part of the code where I'd deal with odd N. Since we're guaranteed even N in the problem statement I'll skip this for now, but we can come back to harden this function later if you like."

Re: Stanford CS9: Problem-Solving for the CS Technical Interview

#52
post #50

Earlier quoted context omitted.

No matter what system you use to interview people, if the position is desirable enough, and the number of positions is smaller than the applicant pool, isn't gaming the system the expected outcome? If people at Google were interviewed by juggling raquetballs, there would be books, courses, etc. on how to juggle better. People are willing to pay for this prep because they want to work at Google. Eventually most everyo…

Sure but if that were the case wouldn't you think it's silly that you need to train months to be able to juggle to land a SWE position? wouldn't it be stupid? the current interview culture in those companies is not as silly as juggling but is also not a fair representation of candidates, with too much weight being in algorithmic puzzles and behavioral checkboxes you can train for. Obviously if the process was a 100%…

Yes, it is silly that you have to train for an interview for months to land a SWE position at a top company. However, until someone comes up with a less gameable system or a magic wand that stack ranks applicants, then I don't see a viable alternative :\

As someone who gives a lot of interviews, I'd love a better way to assess a candidates ability that is less gameable, but we haven't found one yet.

Re: Stanford CS9: Problem-Solving for the CS Technical Interview

#53

The on-the-spot technical interview is the biggest waste of time in the history of humanity. Everyone underperforms in technical interviews. I've conducted a number of them and I've never learned a single thing other than the fact that people make surprising mistakes when under pressure in contrived situations. Here's something that I think works much better: come up with a novel challenge that requires a couple hour…

How do you prevent cheating? Someone can very easily have a friend complete the challenge and walk them through it in a lot of detail. They could prep well enough that you hire someone who is massively under-qualified. Then if your company is large enough, your novel challenge gets leaked and everyone knows it ahead of time. Solutions start being sold or distributed. Then your interview is meaningless. I'm all for a…

If your challenge is novel, as I said, then it should be difficult for them to cheat. All the same, people are welcome to cheat. It should become clear that they've done so when you're interviewing them if you ask the right questions when they're explaining what they did. And if they somehow make it through anyway, you should be evaluating the quality of their work until they get established in your company. If they're underperforming over the first month, you should be showing them the door.

Re: Stanford CS9: Problem-Solving for the CS Technical Interview

#54

This makes me very, very sad. I will never subject one of my potential hires to this nonsense. These concepts are valuable and academically interesting, for sure, but for the practical kind of engineering that's done at most companies it's simply not needed. Either that or it's already implemented in a library. What a waste of time.

It's very tempting to say this. However, trying to find an alternative that is not equally or more gameable is very challenging. Take home assignments are easy to cheat on and take a lot of time. Asking questions about someone's experience is a great way to find someone who is a great conversationalist that can't code. Asking someone to program at a computer in a limited amount of time falls victim to the same issues…

Take home assignments are easy to cheat on? What does that mean (in the context of a take-home problem as an interview method)? Are candidates expected to derive solutions to coding or engineering problems themselves from first principles as their day to day? The answer is "no" almost without exception, even in serious research or hard core low level systems programming jobs.

Re: Stanford CS9: Problem-Solving for the CS Technical Interview

#55
Could there be a clearer sign that the quality of higher education in our time is in steep decline?

If, one hundred years ago, Oxbridge had floated the idea of sanctioning a student to embark on a program of study designed to anticipate questions that might arise in a job interview, it would have been as preposterous as suggesting that the Queen should take her meals in a pub.

And yet today, we have one of the preeminent universities not just of the United States but of the world offering a course that appears to amount to Kaplan for a tech job.

Re: Stanford CS9: Problem-Solving for the CS Technical Interview

#56
As crazy as these interviews are they have to be working right? Some people must be passing these things otherwise there would be a lot of unfilled positions.

So much for there being a staffing shortage in our field. These types of interviews imply there is a much higher bar that exists to weed out all the chaff due to oversupply or companies won't settle for anything less than the most academically best people.

Re: Stanford CS9: Problem-Solving for the CS Technical Interview

#57

Earlier quoted context omitted.

How do you prevent cheating? Someone can very easily have a friend complete the challenge and walk them through it in a lot of detail. They could prep well enough that you hire someone who is massively under-qualified. Then if your company is large enough, your novel challenge gets leaked and everyone knows it ahead of time. Solutions start being sold or distributed. Then your interview is meaningless. I'm all for a…

If your challenge is novel, as I said, then it should be difficult for them to cheat. All the same, people are welcome to cheat. It should become clear that they've done so when you're interviewing them if you ask the right questions when they're explaining what they did. And if they somehow make it through anyway, you should be evaluating the quality of their work until they get established in your company. If they'…

Any challenge that doesn't change across applicants at a company that has a large enough applicant pool, will eventually be solved and prepared for so well, that almost any question you can ask will be prepped for.

Beyond that, if you do use a single question, you're now playing a game of whack-a-mole: I used to ask this question about the challenge, now I can't because it is leaked and people prepped for it. How do you scale that across an engineering organization? Do you have weekly meeting with every interviewer informing them of the questions about the challenge that are now blacklisted? It's going to be infeasible for any reasonable sized organization.

The challenge with this idea as well is that the risk of false positives is much higher than the whiteboard interview. The current interview process is designed around minimizing false negatives.

False positives are really costly to an engineering organization. It's not good for morale when engineers are being hired and fired in the same month on a regular basis. It's takes time to onboard, and slows the team down. It's also not good for the company reputation - would you apply to a company who had a reputation of firing a good chunk of its new software engineers within the first month?

Re: Stanford CS9: Problem-Solving for the CS Technical Interview

#58
post #56

As crazy as these interviews are they have to be working right? Some people must be passing these things otherwise there would be a lot of unfilled positions. So much for there being a staffing shortage in our field. These types of interviews imply there is a much higher bar that exists to weed out all the chaff due to oversupply or companies won't settle for anything less than the most academically best people.

Not everyone is (or pays as well as) Google. Many companies don't have a bar as high, there is still a lot of work for B and C players to do (albeit, that is probably true even at Google).

Re: Stanford CS9: Problem-Solving for the CS Technical Interview

#59
post #55

Could there be a clearer sign that the quality of higher education in our time is in steep decline? If, one hundred years ago, Oxbridge had floated the idea of sanctioning a student to embark on a program of study designed to anticipate questions that might arise in a job interview, it would have been as preposterous as suggesting that the Queen should take her meals in a pub. And yet today, we have one of the preemi…

I doubt this is a sign of a decline in quality of higher ed, and more a sign of the popularity of CS as a major and software engineering as a career.

These kinds of courses and prep has existed in similarly popular fields for many yeas: law, medicine, finance, etc.

Re: Stanford CS9: Problem-Solving for the CS Technical Interview

#60
post #54

Earlier quoted context omitted.

It's very tempting to say this. However, trying to find an alternative that is not equally or more gameable is very challenging. Take home assignments are easy to cheat on and take a lot of time. Asking questions about someone's experience is a great way to find someone who is a great conversationalist that can't code. Asking someone to program at a computer in a limited amount of time falls victim to the same issues…

Take home assignments are easy to cheat on? What does that mean (in the context of a take-home problem as an interview method)? Are candidates expected to derive solutions to coding or engineering problems themselves from first principles as their day to day? The answer is "no" almost without exception, even in serious research or hard core low level systems programming jobs.

It means that you have a friend or someone you pay solve the challenge and prep you very well on the solution. This isn't about creating the universe before you bake an apple pie, it's about preventing a mediocre software engineer who can understand a great solution, but has a hard time writing one from being assessed the same was as a great software engineer.
Post reply on HN