
Stanford CS9: Problem-Solving for the CS Technical Interview - master_yoda_1
https://web.stanford.edu/class/cs9/
======
czardoz
This is what I was afraid of. I always thought interviews were something where
you present your abilities, experience and knowledge. It should not be
something you "prepare" for because then you're not showing off your skills,
instead you're just regurgitating what you are trained to do.

I do somewhat blame the whiteboard culture, but I guess that's the one that
has given the best results so far. I've no doubt that it will change soon.

~~~
brailsafe
FWIW, preparing for interviews is standard practice irrespective of the
industry.

~~~
jnbiche
> 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 most people don't even do those things. None
of this hours and hours reviewing textbooks from your college classes, since
you've been in the same job for 5 or 7 years and have forgotten algorithms
that you never use in your job. It's simply perverse.

Software development is the only industry I'm aware in which technical
preparation for job interviews is not only advisable, but increasingly
necessary for interviews at _all_ levels of the career hierarchy.

Even in other engineering disciplines, this kind of bullshit is unheard of for
any interviews except _maybe_ your first interview out of college. 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.

~~~
bshimmin
_Typically, how you might "prepare" for interviews in other industries
is...learning about your potential employer._

It has always shocked me that people don't instinctively think that doing this
is an absolute necessity for every single job interview. I have very often
been met with a totally blank look when I've asked candidates what they think
it is the company I'm interviewing them for does, even when phrased as nicely
as, "Tell me a little about what we do and why you'd like to work for us" \-
surely not a hard question, you would think!

~~~
35bge57dtjku
> surely not a hard question, you would think!

Not so much hard, more that it sounds like a complete waste of time and could
be signaling to people that this is one more non-technical/HR interview they
have to get through before getting to talk to people they'd be working with
and who can fill them in on details specific to their prospective job or team.
Whatever you're trying to figure out with that question, there's gotta be a
better way to probe that, that doesn't make it look like you're wasting the
available time.

~~~
walshemj
I wouldn't want some one on my team who had know idea of what the company did.

I normally for public companies read the annual report and accounts.

~~~
alexvoda
This only works depending on the scale of the company. If the company is huge
and involved in many things there is less engagement from each employee with
the overall mission of the company. This is even more pronounced when
employees can't even see the fruit of their work in society. Like when the
developer workforce of a company is spread across many countries but the
clients are focused only in one company. I think expecting candidates to have
a basic idea what the company does is fine. But unless the company is a small
startup, expecting them to be engaged with the mission is unreasonable.

There are many reasons for candidates to be excited to work for a company:

\- friends

\- great team fit

\- technological challenges or preferences

\- work-life balance

\- location

These and others contribute to an employee doing his job with passion. (note:
money is not one of them. there is a study that showed that above a certain
level for a person, no amount of extra remuneration will result in an increase
in productivity)

And I imagine this is the case even for pinnacles of vision like SpaceX. I
imagine employees at SpeceX do not care about the future of SpaceX , they care
about putting man on mars, making space available cheaply, pushing the
boundaries of human exploration and of technological capabilities, Musks
vision and enthusiasm. But not SpaceX as a company.

People should really stop expecting companies to have emotions. Companies do
not care about people so people should not care about companies either. People
care about other people and society at large.

~~~
walshemj
I was talking about for the purposes of the job interview, I though that was
obvious. Also you want to look a bit at the companies financials to get a feel
for any equity based comp and also if the company looks like its in trouble -
eg Carillion in the UK

------
lz400
I think this is terrible. I feel there are many good engineers that can't
possibly compete for decent jobs in tech companies because they haven't spent
6-12 months reading cracking the code interview, doing this Stanford course,
practicing mock interviews in crowdsourced websites, getting their leetcode
rank up, attending bootcamps where they pad their githubs and practicing any
single interview question they can scrub off glassdoor. All things that are
marginally useful in the job at hand. And this is getting worse all the time.

~~~
twblalock
It's really not that hard. I suppose there might be a few companies with
insane expectations, but most interviews don't require that level of
preparation.

~~~
lz400
I don't know. If all the candidates are _that_ well prepared, then if you are
not you are at a disadvantage, even if it didn't used to require it. And at
companies where people want to work for, like Google/amazon/FB/Netflix, etc.
and startups many people come prepared.

~~~
bearforcenine
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 everyone
interviewing at Google would be very well prepared to juggle.

~~~
lz400
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% fair assessment of knowledge and potential
and people do better than you then good for them.

~~~
bearforcenine
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.

~~~
thaumasiotes
> 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

This is exactly the concept of an IQ test, right down to the stack ranking.

They're pretty well understood by now, and they take less than a day, which
compares pretty favorably to "months".

~~~
wrinkl3
Isn't it illegal to hire people based on IQ in the US?

~~~
thaumasiotes
It is presumptively discriminatory unless you do a formal study documenting
that high-IQ employees perform better than low-IQ employees. PG&E and the NFL
use IQ tests in hiring.

~~~
thaumasiotes
Low-effort correction: I may or may not have been thinking of GE when I said
PG&E.

------
tinokid
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.

~~~
bearforcenine
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.

~~~
tinokid
1) Those are professional schools 2) Even so, no respectable law school offers
a bar prep class. Nor does any med school offer "How to ace the USMLE".

~~~
sjg007
But do most law school grads take bar prep classes?

~~~
lr4444lr
Yes, but good law schools aren't squandering the value of their most cherished
currency on them - the reputation of their course credits in the world of
academia.

------
jdiaz5513
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.

~~~
bearforcenine
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 that the competitive programming, whiteboard
interviews currently do.

~~~
sidlls
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.

~~~
pedrosorio
"Are candidates expected to derive solutions to coding or engineering problems
themselves from first principles as their day to day?"

Does performance on these tasks correlate with performance on the job? Is it
easy to measure this performance in interviews reliably? Then it's going to be
used by companies.

~~~
sidlls
The answer to both your questions is "no", and companies use them _in spite of
that._

~~~
pedrosorio
Any studies that support the answer "no" for both questions?

Technical interview performance has ~0 correlation with performance on the
job? I find it hard to believe. Is the mean performance on the job of a
software engineer that fails to pass Google interviews as good as one that
does? Why do most companies want to hire Google software engineers if that is
the case?

As for my second question, it should have been "is it easi-er to measure this
performance reliably than other skills that may be relevant"? It sounds like
this would be hard to answer. But this kind of interview seems to be best
suited for repeatable evaluation (although, of course, you do have the problem
that people will prepare and bias the results, but I don't see how you can
avoid that if you want a repeatable way to measure performance).

Finally, "and companies use them in spite of that". Any guesses why?

~~~
sidlls
> Any studies that support the answer "no" for both questions?

Google had a study that has been linked to death around here which showed the
scores hires received on their interviews didn't correlate to job performance
ratings. There are of course biases and flaws in that study, but it
underscores another separate point: studies should show they do correlate, not
the other way around (prove a negative).

> Finally, "and companies use them in spite of that". Any guesses why?

Bandwagon effect, cargo cults, ego boosting/confirmation bias from applying a
hazing ritual, laziness all come to mind.

------
davesque
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 hours of honest effort and have
candidates present their solution to you when they come in.

~~~
bearforcenine
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 viable alternative to the whiteboard interview, but I haven't
encountered one yet.

~~~
davesque
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.

~~~
bearforcenine
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?

~~~
ianamartin
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.

------
tzhenghao
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.

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

------
FullMtlAlcoholc
To everyone bemoaning the introduction of a class such as this, it's a 1
credit class, which at Stanford roughly translates to about 3hrs/week of work
given that you're expected to take 15 credits per quarter. It is comparable to
a class on financial responsibility or golf. Its focus isn't so much on how to
crack a technical interview than it is on how to prepare for a job interview
in general.

Mock interviews, resume writing and critiques, life at startups, how to answer
team/behavioral questions, and panels of employers and employees are all
covered with sample whiteboard/coding problems only being given one week of
attention. This is simply preparation for how to professionally navigate the
job landscape.

------
adamnemecek
I know this has been said a billion times but the CS interview is bullshit.
It's like asking a pianist to describe how they would play a composition on
the white board.

I always thought that this is a good question to ask
[https://github.com/alex/what-happens-when](https://github.com/alex/what-
happens-when) but then again probably not for all roles. It's good because
even if the interviewee has seen the question, you can really gauge how much
they know.

~~~
nnd
Still very gameable, and only test domain knowledge, rather than problem-
solving skills.

------
starchild_3001
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 of and design ideas behind
your favorite programming language).

I think this class can be a good prep for day to day programming.

~~~
SmirkingRevenge
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 programmer by practicing interview problems,
because they ultimately are a bit like the arithmetic involved in solving more
large scale problems.

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

------
oneplane
Maybe it's just me, but this seems to either miss the point of a CS interview,
or makes a point about CS interviews containing pointless parts making them
trivial. If an interview contains a known set of possible questions and you
simply remember the answers, than in the end the whole exercise is somewhat
pointless, isn't it?

~~~
pkaye
Yes you are right. This is why I take some standard problems but change things
a little bit so they have to think a bit. And I ask additional questions like
how would you test this function, how to change improve performance, etc.

------
Yhippa
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.

~~~
expertentipp
> Some people must be passing these things otherwise there would be a lot of
> unfilled positions.

The point is - there _are_ a lot of unfilled positions. Companies notoriously
complain for not being able to find "good" software specialists, because...
people with minimal clue on how to judge relevant skills introduce
increasingly more cut-throat filters and processalize everything.

------
adjkant
My school does co-op's and has a 1 credit co-op prep course. We do have
practice interviewing there. We also do resume workshops, general best
practices for the industry you're in, etc.

You can do both the content and the prep, as I am sure is the case with
Stanford CS.

While it's unique to have a course specifically named for this and am sad to
see it as well, I don't think this is as big as people are making it out to
be, nor is it a canary in the coal mine for higher education. To me, this only
signifies the growing shift in education, as it becomes more available to all,
being about preparing for your career as much as learning itself. The simple
fact is that most attending college today are not doing so just out of the
desire to learn alone, but also want to, well, have a nice career in their
respective industry. To be able to make a living.

While I would also agree with cautioning about education for career alone, I
think it's important that modern education focuses on both. It's the reality
of an increasingly college educated world.

~~~
Eridrus
Hey it could be worse, people could be getting a degree because they need it
for signaling purposes and/or to satisfy an arbitrary immigration bureaucracy
and don't actually need any of the things they're being taught. Oh, wait :)

------
bitL
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 spot on problems you've
never seen before, all in 1.5h, expecting Stanford/MIT PhD-level answers.

~~~
optymizer
Sharing a data point: I've interviewed with Google multiple times and at no
point during the interview was I asked a question that required an ML/CV/DL
algorithm.

I suspect those would be more appropriate for a 'data scientist' /
'researcher' position - for a generalist, the interviews were very standard
and not crazy at all.

In hindsight, if I had taken the time to review basic CS algorithms ahead of
the interview, I would have done much better.

That said, I'm not sure I'd be a better employee at Google if the only
difference between my being hired or not hired is the fact that I reviewed
some basic data structures and algorithms.

------
cat199
If a stanford CS degree doesn't otherwise prepare students properly for a tech
interview, I'm going to wager it is the interview process that has a problem,
not the stanford CS degree..

~~~
adamnemecek
You are right but like just having to use the fucking white board is different
enough to throw people off.

------
watwut
If there is whole course on "interviewing", in or of top schools no less, then
the interviews really became divorced from any meaning. That should be seen as
major red flag that industry is doing something wrong.

Maybe there should not be cookie cutter interview at all, but more of harder
look at which skills and personality traits are really needed for this or that
position.

And I tend to do good on whiteboard interviews.

------
foobaw
Don't programming bootcamp classes do this kind of thing too? I feel like this
just increases the probability for a student to do well on the interview. If
you read their intro slide, it clearly states "Level the playing field between
applicants who may learn these things through informal mentoring in their
friend network, and those who would otherwise not know this stuff"

It's kind of sad that there's a trick that needs to be learned to solve
technical interviews without testing the candidates' inherent knowledge, but
at the moment, this could seem like the most logical way to get a good job for
a Stanford CS student with no knowledge on technical interviews.

------
mariopt
What the hell?

Shouldn't we focus on creating great engineers instead of training them to
make a good impression on an interview?

I think is completely immoral. Becoming good at something is a matter of
consistent practice that brings experience and expertise over time. There is
not other way around it.

People might pass the interview but their hat will fall in a matter of weeks.
This is PUA for interviews by a University, this is really depressing.

The only thing that gives me hope is that great engineers will always solve
problems no matter what. Tech hiring is going to become much harder.

~~~
ksml
This is a _single_ pass/no pass unit out of 180 required to graduate. Stanford
absolutely focuses on creating great engineers (or computer scientists, for
those more interested in the math or theory sides), but it still helps to have
a small course pointing out tips and things to look for in the interviewing
process.

------
paulus_magnus2
Question from European side.

We hear there's a shortage of good people in SV / USA. What if you plainly
ignored all companies that whiteboard? There should be plenty well paying jobs
left.

disclaimer. a major tech company whiteboarded me twice (codility + live coding
via google docs). They were really selective, none of my friends passed. In
the end the job was lousy so ultimately the test selected more for willingness
to jump through irrational hoops than productivity.

------
MollyR
A whole class for technical interviews seems like overkill. It also gives me
an uneasy feeling of being in a tech bubble.

~~~
bearforcenine
This kind of prep has been common place in other desirable fields for many
years. Law, medicine, finance. They all have books, classes, etc. that you can
take to prepare for interviewing, taking the bar, mcat, etc. Compared to
college admissions, the CS interview process looks downright sane.

~~~
seanmcdirmid
They all have prep for everything but interviewing. An interview to get a
residency or a junior assistant position will be much more about your
credentials and a history of your performance.

~~~
bearforcenine
Finance at least has prep for interviewing for investment banking, trading,
and consulting. When I was in undergrad it was common to have mock interviews
and prep for commonly asked interview questions. Most people prepped on being
able to walk you through basic financial statements, valuation, brain teasers,
case interviews, and stuff like that.

I'll take your word for the other fields as I can't speak directly to
interview vs exams there.

------
numbers
The last two places I've interviewed and was turned away would have loved a
"software engineer" who had taken this class. I am a typical developer, I can
get shit done but there are rough edges I have because I'm human. I think,
interviewing in general is tough for me and when there's a set way of showing
your abilities comes up, I'm not great at presenting that.

My github is active, I work on things that a potential employer as well as
fellow developers would be interested in and I also am trying to grow by
showing bad, good, and some code that I'm very proud of on my github. But, the
thing I noticed at the two aforementioned interviews was that they hadn't even
taken a look at my github.

------
fecak
I'm glad they are teaching students about resume writing, and hopefully the
professors are versed in hiring outside academia. I write hundreds of resumes
a year for my clients, and a high percentage of young clients are using really
poor resumes when they engage my services.

It seems many new grads are being drawn to highly-visualized resumes with
fancy templates, often featuring a bar graph for skills ranking (some ranking
themselves as "8 out of 10 in JavaScript", which comes across as laughable and
out of touch).

My feelings on memorizing data structures aside, the resume lessons may at
least help some grads get interviews that they wouldn't have otherwise, and
that's a good thing.

------
bb88
I always thought the the technical white board interview never really matched
what was expected.

A binary tree search has little to do with figuring out the pros and cons of
which api to code against.

How about a scenario where you get to try to find a bug with legacy code?

------
sk2104
I understand this encourages an imperfect system, but I would have really
appreciated this as an undergraduate who didn't understand how interviews
worked.

While the system is admittedly problematic, does it really come as a surprise
that for extremely competitive jobs at the entry level, such artificial
hurdles need to be used to filter the plethora of black-box applicants? I
can't speak to more senior roles, but for entry-level, this only seems like a
natural (and practical) response. It happens everywhere, not just CS:

For any competitive school admissions, SAT/LSAT/MCAT what-have-you are all
poor indicators of student performance, and boil down to trainable tests.

In finance (both quant finance/and positions like sell side banking, private
equity), people constantly practice math/financial modeling/accounting, for
interviews. Many of the more selective quant shops (for undergrad hiring, I
should mention) have much more difficult problems than MS/GOOG/AMZN technical
interviews, and I would argue the type of competition level math/probability
are just as unrelated to their jobs.

In management consulting, people spend hundreds of hours practicing for case
study interviews. Just search consulting interview prep, and you'll find an
egregious number of prep companies.

Some people brought up law and medicine. First, I don't think the grueling
nature of the medicine certification is even close to what it takes to be an
entry level developer. In law, while "technical" interviews are rare, often
times employers filter you by much cruder means: pedigree (both the school you
attend, and at top echelon law firms, clerkship status, and top-top grades
within those schools). Is that any better?

The common denominator here is the high demand for all of these schools/jobs,
and the problem always seems to come down to, how to optimally recruit -given-
resource constraints. Maybe I'm cynical but almost any reasonable entry-level
interview can be "gamed" or trained for, and most firms are either small and
lack resources to extensively evaluate their applicants holistically,
especially if they're only in undergrad, or they are large and get way too
many applicants, so some proxy is necessary.

------
NTDF9
So, Stanford grads can't pass interviews without training for it. Looks like a
degree is really worthless. Al that matters is memorizing these problems.

------
RafiZ
As other commenters alluded, interviewing and coding are indeed two different
skills. However, contrary to some of the comments, I don't think there is
anything wrong with preparing for an interview or even taking an entire course
for that matter. If it helps you shine and showcase your real skills to an
employer then why not? I’ve seen many brilliant software engineers get
rejected for positions cut out for them only because they were so nervous at
interviews that they had trouble even understanding simple questions until
right after the interview ended. I know that because I'm a co-founder at
Pramp.com, a free p2p mock interviewing platform for software engineers. It's
incredible to see the improvement in one's confidence even after a single
practice interview.

------
akhilcacharya
I've been through the ringer quite a few times now (though less than the
average Stanford student) and I think about these interviews more than I
probably should just for my sanity.

This is a decent primer (and people need primers!) and a good resource overall
but I'm very skeptical that this is terribly helpful for most interviews. I
liked some of the problems but most are about a notch lower in difficulty than
required for the offers Stanford students get.

With that said, it's clear that the students that take this class are going to
do well in their internship and job search. I'm honestly just becoming more
convinced that ability to perform in these interviews is an inherent quality
of top students (no matter the original field!) at this point.

------
keeptrying
Institutionalzing a broken process. :-/

------
sigi45
I trained for google and failed. Still it didn't feelt like stupid or a waste
of time.

It was interessting to do so, i think it made me better and i will try it
again.

And yes there are people who don't care enough to work for companies like
google and there are.

Also while i did more interviews as the person who is interviewing: I feel
that i like to have more better prepared people to interview.

------
andoma
FWIW the second example of finding halfway points in
[https://web.stanford.edu/class/cs9/sample_probs/ListShufflin...](https://web.stanford.edu/class/cs9/sample_probs/ListShuffling.pdf)
is buggy. Crashes if the list have odd number of elements.

~~~
stephencanon
"Your job is to write a function that accepts as input a pointer to a linked
list _with an even number of elements_ "

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

~~~
lmartel
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."

------
methodin
Not all jobs require this preparation-style. If you don't like it - shop
around and find companies with different styles that match your preference.
Interviews are equally important to the interviewee as the interviewer.

------
sov
Do people actually put "objective" on a resume? It seems laughably hackneyed.
My experience is that something near 40% of people have it, and it usually is
the most trite sentence possible.

------
yigitdemirag
“Most metrics are good until you start optimizing for any of them”

------
tentakull
What a joke, but I'm completely unsurprised. Prep for the SAT, prep for jobs,
prep on the job - minus the whizkids, Stanford grads make great corporate
drones.

~~~
akhilcacharya
Corporate drones that are paid $50-$100k more than me total comp their first
year, yes.

------
tw1010
This is a natural response to the incentive structure that has evolved. But
fear not, the fact that this metric is being overemphasized to this large a
degree surely must mean that the adversarial species (the industry) will
respond by changing their strategy. The more universities focus on vanity
metrics (helping students build their peacock tail), the more likely it is
that the industry realizes the kink in their armour and shifts to some wiser
signaling measure.

------
wbillingsley
I know universities are sometimes accused of "teaching for the test" anyway,
but, well, wowsers

------
quotheth
Say what you will about the state of the software dev interview, it sounds
like it could be a fun class.

------
abiox
maybe a bit meta but i've been wondering why course links are posted to HN. is
this a tradition or something?

------
pjmlp
This just feels wrong.

------
kjgkjhfkjf
Two more of my favorite interview questions rendered useless :C

------
kramer1416
Off-topic probably:

This timing!

I'm going to interview on Tuesday with a startup in SF. I've spent better part
of last 3 weekends studying and solving DS&A.

Any advice from HN on what could I do in ~14 hours of prep time?

~~~
bitL
Do Codelab at Facebook, sleep, avoid jetlag.

