
I am stressed out about interviews - intv_stress
I have an interview at facebook and google coming up. I have about 7+ years of experience. I have been doing leetcode and studying for last month.<p>I have tried to motivate myself, I have been reasonably diligent in studying, but when I read through these forums it seems like people treat these interviews as FT jobs. I want to do that to, but I lack the motivation because I don&#x27;t think I can compete. I feel I am hard worker, but apparently not compared to other folks. The only way to really compete is to put in as much work as these people. I got like a 100 in my algo classes, but they can ask the gambit of questions. They can ask anything from heaps to recursion to  dfs to red black trees to I don&#x27;t know what. I graduated top 10% from one the 10 best CS schools in country. I don&#x27;t think I am dumb, but I feel I am just not as sharp as I was when I was younger.<p>I feel like not going because its just stressing me out. Heck I didn&#x27;t even apply for these jobs. Sure I would love the money and having google or fb on your resume looks nice, but its not helping my mental state. I really got to respect people who work at Google or FB for going through the tests.<p>Are there really that many people who are so good at algo that they can come up with o(log n) o(1) solution to a problem in 30min? I am guessing they are recruiting a million people so they get 1% to pass through their tests, but is the stress really worth it?
======
karim
Here's one way to see things – there's around 3.6M software engineers in the
US. Google has 100k employees, so let's assume they have 50k engineers. Do you
think the top 1% of engineers in the US all work at Google?

Obviously they don't. The truth is, there's no perfect interview process, and
chances are you may fail (or succeed) for reasons completely out of your
control. You've been studying for a month, and have a degree from a great
school – what else can you do to improve your chances? Relax, accept that
interviews are a crapshoot and try doing your best.

Worst case you won't get an offer but guess what? Plenty of great engineers
got passed by Google or Facebook.

~~~
croo
I second this. Do your best and know that you will be a better programmer
because of the one month study and the experience of the interview.

------
AnimalMuppet
First of all, what's your downside? You didn't seek the interviews, so I
suspect you're already employed? Then your downside is that you may waste a
vacation day or two on interviews that don't result in a new job. That's not
the worst thing in the world.

They aren't necessarily testing your ability to solve the exact problem. The
thing is, at Google or FB scale, the difference between o(log n) and o(1) can
be huge. It can be millions of dollars in hardware cost. So they _really care_
about the ability of people to find a way to do it in as optimal a way as
possible. But, again, they aren't necessarily expecting you to solve it in 30
minutes. They want to watch your thinking process as you tackle the problem.

And, if they _do_ ask something that you know cold, your reward will probably
that they very quickly ask something else. They (I presume) aren't trying to
see if you know all the algorithms. (We've got this company called Google that
does a pretty good job of helping you look up an algorithm if you need it.)
They want to see how you work on one you don't.

If I'm reading their intent correctly, then you _cannot_ study well enough for
this, because they will move away from what you know. So don't worry that your
studying wasn't good enough. _Nobody 's is._ If, from your studying, you kind
of got how to attack problems like these, then that's about as good a
preparation as is possible.

And if you completely fail... you didn't lose much.

------
muzani
To quote Joel Spolsky, "...if you reject a good candidate, I mean, I guess in
some existential sense an injustice has been done, but, hey, if they’re so
smart, don’t worry, they’ll get lots of good job offers."

It's part of the process. People accept that they'll have false negatives. But
you'll get good job offers anyway.

Google and Facebook probably don't have the best process either. They're giant
brand names. They get a _lot_ of garbage in their funnel and probably have to
filter for minimum garbage, as opposed to having the best engineers.

Not that they don't have great engineers, but the system is flawed and it's a
bit of a gamble to get in.

[0] [https://www.joelonsoftware.com/2006/10/25/the-guerrilla-
guid...](https://www.joelonsoftware.com/2006/10/25/the-guerrilla-guide-to-
interviewing-version-30/)

------
gnusty_gnurc
Having just recently interviewed at one of the FAANG for a role that I felt
was really well suited for me experience-wise, it's not worth the stress. I
study all the time already, simply to do my job and out of interest.

The average whiteboard interview nowadays doesn't reflect my day-to-day work
and tests a narrow slice of my ability to solve problems. It also supremely
fails to qualify people from non-traditional backgrounds.

Enough of the "we should be thankful there's such a low bar of entry - you
just need to cram exercises". FAANG and many others externalize the burden of
qualifying employees by relying on volume and setting the bar very high. Many
are going to wear themselves down when the entire process is skewed against
them.

So my advice - don't worry too much, you're probably a great candidate and it
sounds like you've already done as much as you should to prepare.

------
tmm84
You don't sound like you really want to be a part of these companies your
preparing to interview at by saying "Heck I didn't even apply for these
jobs.". And you seem to be having trouble finding a good reason to really go
to the interview. The more I read your post; the more I feel that you don't
want to feel stupid or inadequate based on the interview. Everyone doesn't
want to feel stupid or inadequate, this is normal. Also you've put the
interviews on a pedestal that'll declare you as good enough by discounting
your experience and achievements thus far.

If you feel this wound up before the interview how do you think you'll feel
working for these two companies? It'll be a daily anxiety/fear of being
inadequate for the job.

My advice is to lower your expectation/valuation of the interviewing company
and go to the interview if you really deep down inside want to. These kinds of
interviews have a history of making interviewees feel worse about themselves
so bear that in mind.

------
gcheong
There is no amount of preparation that will prepare you 100% and guarantee you
a job at any of these companies. I think we've gotten to a ridiculous point
with the interview process now and at some point you just have to decide
you've done enough to prepare on the technical end and it sounds like you're
basically there. I would probably start looking at other aspects of
preparation. Think about the human aspect of things and what you want to
impress upon your interviewer. These are more subtle things that might make
the difference when deciding a thumbs up or thumbs down. But in the end don't
sweat it. Decide you're going to have fun with it and see what happens. Truly
try to enjoy yourself and view each problem as an interesting puzzle instead
of some do or die test. And hey, free lunch!

------
victorhn
Yes, there are people that good at algorithms, you just need to enter a
contest at leetcode/codeforces/topcoder where you can just amaze yourself how
some people can solve these difficult problems in such a little amount of
time.

On the other hand, for FB and Google you just need to be decent enough at
these questions not really a superstar. I would say if you can solve most
medium problems in leetcode and occasionally a hard then you are good enough.

Worst case you just get rejected and life follows its normal course.

BTW, i have been rejected like 30 times from these companies, it does suck
when they tell you, because you start doubting yourself, but then after a few
days the feeling goes away.

------
Jemaclus
There are three things I'd like to share with you.

First, I've hired dozens of people in the last year, and the main piece of
advice is this: I'm rooting for you.

Seriously.

I spend a TON of time sifting through resumes, doing phone screens, checking
Github repositories, and on-site interviews. I really, really don't want to do
it.

Ideally, the first candidate that walks through the door is perfect, and I
don't have to even talk to anyone else. Done. Finished. Now I get to do real
stuff at work.

I'm rooting for you. Honestly.

Second, the answer to your question is "No". You don't have to know how to
invert a binary tree or re-implement quicksort. For good interviewers, the
point isn't for you to reinvent or regurgitate complex computer science
problems in 30 minutes, but rather to allow you to demonstrate your thinking.
Can you write code? Can you walk me through your thought process? If I throw a
curve ball, can you adapt your solution to that?

You don't need to _know_ all of those things you mentioned, but you should be
able to demonstrate that, given enough time, you _can_ do those things.

We only get 30-45 minutes with you. The goal is to figure out what you _do_
know quickly, and then gauge your capacity to grow beyond that.

Look, there are some things you must know to get a job with me, and there are
some things that aren't important. "Can you write code?" is the bare minimum.
I wouldn't hire a carpenter who doesn't know how to use a hammer, but just
knowing how to use a hammer doesn't make a carpenter good, either.

There are an infinite number of skills out there that you can learn. I don't
expect you to know them all. I expect you to know SOME of them. I expect you
to be able to write code, but I expect you to do a little bit more than that.

Most jobs I've ever had required on-the-job training. I have to learn how the
new job does code deployments, how they structure their code, maybe a new
programming language. I have to learn how they do standups (if any), code
coverage (if any), and one-on-ones (if any). I have to learn what's in this
database and how it connects to that API and what framework they're using.
Everyone uses frameworks differently, so I have to figure out the quirks and
esoteric choices that this particular company made.

The point is this: you don't have to know everything. You need to demonstrate
that you can code (the bare minimum of the job), you have to demonstrate that
you can learn and ideally learn quickly, and perhaps most importantly, you are
hopefully someone that I would like to sit next to for the next six months.

I'm not going to tell you not to stress out, because that's perfectly normal.
But what I will say to summarize are these two things:

1\. We are rooting for you.

2\. You don't have to know everything. Just be your normal smart, enthusiastic
self and do the best you can.

Keep those in mind and you'll be fine.

~~~
zerr
Your process seems fine for someone unknown, "blank". But when you have
information about the past experience - does it really make sense? e.g. if
someone graduated from the top CS program - can't you deduct that they are
able to "think", "solve problems" and "code"? I guess one can argue that the
interview process is some kind of verification of applicants resume - but
aren't there more efficient ways to do this? You can easily check whether the
person really graduated that program, about past experience - previous jobs,
etc...

I mean, you should leave the qualification verification to those entities who
are more qualified to do it, and who have much more time - I guess if the
university awards a degree after 4 years of involvement with the candidate
says much more than you can deduct in 30 minutes during the interview set up.

~~~
jasonpeacock
No, you can't make those assumptions.

People graduate from high school who are functionally illiterate. Similarly,
people graduate from CS programs who are functionally incompetent.

I've interviewed many people who can talk the talk, have an impressive resume,
can talk details about their projects... But fail a simple coding question. My
go-to phone screen question is to find the common elements from two lists of
integers, and half the candidates can't do it in better than O(n^2). I'm not
even looking for the perfect solution, just something that is better than
brute-force.

It's the "do original work" that is the hardest for many people. They can
modify existing systems, plumb together interfaces, etc. without a problem,
but given a fresh problem and a blank sheet of paper they are stuck.

I've found the same people are also weak in their fundamentals...

~~~
zerr
The "original work" vs "plumbing things" distinction is very vague - we all
stand on the shoulders of giants. E.g. PageRank also can be seen as Algebra
stuff plumbed together.

Even if we go with your definition - why do you assume that someone who
practiced leetcode/hackerrank stuff and thus are able to pass interviews is
good with the "original work"?

I tend to think that the current interview practices have two (eventual)
goals:

1\. Hard to change jobs because practice is needed.

2\. Tests how dedicated/desperate the candidate is - willing to allocate time
for preps.

------
tmaly
Go into an interview with an open mind and with curiosity. Your having a
conversation and part of how you interact will reveal if your a good cultural
fit and if your someone they can get along with.

