Live data from Hacker News

Stanford CS9: Problem-Solving for the CS Technical Interview

web.stanford.edu

151–160 of 292 posts

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

#151

Earlier quoted context omitted.

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…

And any challenge that is no longer novel no longer requires "top performing engineers" to work on.

A big part of the interview problem is that everyone wants to think that they are solving really important problems and are changing the world, etc.

Companies need to be honest about what they are doing and who they need to do it. Sometimes you have a hard problem and need a specialist or a brilliant problem solver to conquer it. Most companies need middle-of-the-road people who are reliable and consistent but not necessarily geniuses to maintain the things that have already been built. The idea that everyone needs to be a rockstar or a 10x-er needs to die. This overly inflated notion of what even some of the top tech companies are doing is the reason for all of this craziness.

Extremely few genuinely hard problems are solved by profitable companies. Some exceptions happen. But they happen(ed) in the R&D sections of those companies. Bell Labs, Google, Apple, Intel, Facebook-ish. But those are not the money-making day-to-day jobs that power the profit engines of those companies.

Those think tanks do excellent work, but they are not significantly different from research PhD programs. They just pay better. It's always been the .0001% of top people who solve problems theoretically, and then lesser people find ways to implement those solutions.

For any genuinely novel or hard problem there are ways to suss out how much a person has been coached, and how well the problem is truly understood. You don't have to change from week to week. It's not that hard.

In my own field, I can give a take-home challenge: here's a relational dataset. I want to work with this as a data warehouse. Give a rough outline of what changes need to take place, and how you would design the warehouse. Ask questions as needed as you go through the exercise, and be prepared to defend your design choices at the tech interview.

In less architecty roles, perhaps I'll ask a person to do some pretty basic data transformation as a kind of a fizzbuzz. But the tech interview is just to ask a series of questions that are pretty open-ended but have a list of points I think are relevant and assign points based on how many checkboxes they hit. And yes, that list can and will be leaked at a sufficiently large and desirable company, but it doesn't matter. Because the checkboxes are there to remind you from interview to interview what you were looking for. They are not a replacement for your assessment of the person. And you, personally, can change your mind as you go.

The point of an interview shouldn't be to find out if a candidate knows exactly what you know. If that's the design of your process and the only thing you care about, then you are going to have problems. The point of an interview is to let the candidate tell you what they know and for you to have some baseline for comparing that to what they need to know for the role.

In some cases, all the candidate needs is basic programming skills and the ability to memorize stuff. And in that case, you don't need to worry about if the candidate cheated, you need to worry about how honest your team is about what it's doing and what you need as a manager or coworker.

It's like security through obscurity. It never works. You need a better process.

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

#152
How is this conceptually different than a course that focuses on standardized tests like the SAT? Having worked for only almost 2 years after college graduation, I can still see that there are many more technical and non-technical skills that affect one's and his/her colleagues' performance on the job. Being nice and helpful is one. Constantly learning from mistakes and rapidly iterating while adding value to the team/company is another. More examples: Picking up technical books, writing toy projects to learn new languages/frameworks/libraries and being able to come up with good engineering decisions. The list goes on.

Not to be too salty about this, but I remember friends from college who are terrible teammates (no significant contributions to group projects, barely understanding the project material, but knowingly do so cause others will finish it for them etc.) but go on to get job offers from the Big Four. Having these technical whiteboard interviews will not filter for such soft skills that are needed to succeed in the workplace.

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

#153

How is this conceptually different than a course that focuses on standardized tests like the SAT? Having worked for only almost 2 years after college graduation, I can still see that there are many more technical and non-technical skills that affect one's and his/her colleagues' performance on the job. Being nice and helpful is one. Constantly learning from mistakes and rapidly iterating while adding value to the tea…

People measure what’s easy to measure, not what’s valuable.

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

#154
post #106

Just wait until you start interviewing at even crazier companies than FB/Google that would like you to tell them 20 ML algorithms, 20 computer vision algorithms, compare expected results of non-linear optimizations applied to some weird Deep Learning problem and analytically justify it (why is it worse/better than SGD on this loss function?), then off to some deep domain knowledge, conjure graph algorithms on the spo…

If you're interviewing at Deep Mind, sure.

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

#156

I kinda like the idea of having an intense data structures and algorithms class for hands-on problem solving. If a candidate has shown an ability to solve several hundred medium+ DS & Algo questions on the spot, that gives him an edge up in day to day to programming. Not everybody can do that. You can supplement that with other areas (concurrency; distributed systems; execution latency, memory management etc; quirks…

I hate the interviews as much as anybody... but really I wish that kind of instruction had been a bigger part of my college curriculum. Yea, we had data structures classes, algorithm classes - but none of them really made me good at any of them. Not like how math classes makes you good at the math, by forcing you to solve problems over and over, until it becomes nearly instinctual. I've actually become a better progr…

Yeah, I agree on the last part. Practice helps. Memorizing solution doesn't. It takes effort to crack those Leetcode problems.

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

#157
post #137

Earlier quoted context omitted.

Indeed. If it was illegal to work as a programmer without a Master’s degree in Computer Science with a GPA above 3.0 the interview process would not look like the current one.

The industry wouldn't look the same, either: it wouldn't be nearly as profitable or widespread as it has become, and nobody but CS academics would care about it.

On the other hand, perhaps the quality of code would go up?

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

#158

Earlier quoted context omitted.

Preparation is a huuuuuuge part of being successful in the workplace[1]. Simply showing up just doesn’t cut it. Part of interviews aren’t even testing skills, but testing prep. Of course, you want to test for innate genetic talent as well. Good interviews do that, but as with gattaca, we see that desire and sincere interest counts too over genes. Preparation, sincerity, and genes. That’s what I like to see in potenti…

Software engineering does not consist of preparing for and then giving short/intense performances. Plenty of fields do - performing arts, film, trading, etc. all involve some form of short, intense, expensive activity to which you show up prepared and work in a burst of superhuman activity. But software isn’t like that at all - you get a problem and you dig into it, mull it over, research, etc. at your leisure until…

Like every other field, you need to practice and you need experience to do well. Maybe you can dive into a new framework without trying out any tutorials, but not everyone.

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

#159
post #120
post #64

Earlier quoted context omitted.

> FWIW, preparing for interviews is standard practice irrespective of the industry. This is simply wrong. I suppose if you've spent your whole life as a developer, it may seem like it would be done likewise other industries, but it's not the case. Typically, how you might "prepare" for interviews in other industries is...learning about your potential employer. And maybe reviewing your accomplishments. That's it. And…

> And in industries like law, medicine, etc., if a potential employer asked you to perform some random task from a highly technical and complex subject from med school or law school, it would be very unusual. I'm not a developer, so maybe this sounds absurd, but as someone who has good understanding of how medicine works, maybe this industry could use a few standardized exams/certifications? I think it's possible tha…

> maybe this industry could use a few standardized exams/certifications

I doubt it. for example having OCJP doesn't prevent interviewers from asking basic Java questions. It is like they are telemarketers with prepared script and aren't flexible enough to skip some parts no matter what.

Post reply on HN