How to Succeed in any Programming Interview 2018


Hello world. It’s Saroj. And today, I’m going to show
you the five steps to succeed in any programming interview. I’ve gone through
the interview process dozens of times for a bunch
of different tech companies, and I’ve definitely
gotten my fair share of rejections and offers. These are the key lessons
I’ve learned from the game. Interviewing takes work. Don’t let anyone tell
you it’s easy, it’s not. No one talks about their
rejections, only their offers. It’s essentially
a full time job. But if you follow these steps,
I promise you you will succeed. So let’s start with
step one, study. Before you even think
about applying anywhere, you need to get your
technical skills on point. The process of getting a
job as a software engineer is the same at almost
every big tech company. You do an initial phone
screen with a recruiter, where they gauge your
interest in the company. And if you pass
that, you’re asked a series of technical questions
that you write answers to on a white board. If you can show the
interviewer that you can think through a problem and
come up with a solid solution, you’ll get an offer. But the only way to do
that is to practice. All my friends who ended up
working for awesome companies practiced a lot. They stuck to a
consistent study schedule. It’s not about having
some divine intellect, it’s about how much time and
effort you put into studying. So the question is, what
do you need to practice? They’re not testing
you on syntax. You could learn basic
Ruby syntax overnight, if you wanted to. But what can’t be
taught overnight are computer science
fundamentals, and that’s what
companies test you on. Namely, data structures
and algorithms. There is no getting around this. Just ask the guy who
invented Homebrew. He was rejected by
Google because he didn’t know how to
invert a binary tree, even though tons of engineers
at Google use his tool daily. Start off by taking two courses. I recommend the free Intro
to Data Structures course by My Code School, and the
Intro to Algorithms course by MIT OpenCourseWare. Both are available on
YouTube, and will give you broad knowledge
about these topics. Then, you can practice
what you’ve learned on HackerRank and HackerEarth. Both are online platforms
that let you earn points for solving problems. It’s a lot of fun, actually. And once you’ve solved dozens
of problems on both sites, read Programming
Interviews Exposed, then Cracking the
Coding Interview. Both are great
books that will help you practice specific
problems that tend to show up a lot during interviews.>From system design, to
questions about time complexity. And when you’re done, start
conducting some mock interviews with a friend. Have them pick questions
and code your answer on a white board, explaining
your thought process to them. You can do all this
in about two months to three months of studying
a couple hours every day. Step two is to find
the companies you like. When you start the job hunt, you
have a limited amount of time you can dedicate
to each company. So you don’t want to waste
it interviewing for companies that aren’t exciting. Keeping track of the
interview process across multiple companies
can be really stressful, unless you stay organized. Use an Excel
spreadsheet to map out the companies on your radar, and
where you are in the interview process with each of them. You can find these
companies on AngelList, which is my favorite resource. Also, Hacker News has a monthly
who’s hiring, which is great. This is a somewhat
spiritual process. You’ll probably go through
some existential thoughts, and that’s OK. Ultimately, it’s about
deciding how you can best use your skills to make a
positive impact in an area you care about, and then
finding companies that align with those values. Once you’ve got a
list of companies, it’s time to build
your portfolio. Recruiters at
popular companies get hundreds of resumes
every day, so they don’t have time to sift
through irrelevant stuff. Make sure every single word
on your resume counts and it all fits on one page. Make it dense and descriptive. Remember, the less work they
have to do, the more likely they’ll be to help you out. Make it easy for them and
highlight the most important work you’ve done. You don’t have to fit every
single CS related thing you’ve done on it. Whatever you put
down, you should be able to speak intelligently
about because all of it is fair game during
the interview. Have between two to five
versions of your resume, each tailored to what a certain
category of companies from your list wants. Personal projects,
hackathon projects, contributions to open
source libraries. GitHub is where you can put
your code where your mouth is. It’s the new resume
in many respects. Have a personal website
and give your best project a web presence. It’s professional and
visualizations always impress. Step four is to
get the interview. The easiest way to do this
is to just apply to a company directly through their website. But big company get
so many interviewees that it’s really easy
to get lost in the pile. You want to find the gatekeeper,
the technical recruiter. You can use a little
bit of keyword magic in Google just like this,
and it will give you a list of recruiters and
people in positions you’re interested in at any company. Send them an email, and
make sure your email is short and to the point. That means a quick
intro introducing who you are, a link to an easily
sharable and relevant project, and an expression of
interest to learn more. Which brings us to step
five, pass the interview. You want to exude confidence,
and if you’ve studied well and your portfolio is
on point, you will. Sometimes the interviewer will
be more nervous than you are, and that’s OK. Smile, shake hands, let them
know that you’re another human, and you’re here to work
through a problem together. They’ll ask you to code a
problem on a whiteboard, and you want to be able to
communicate your thought process well. It’s not about the answer as
much as it is about the way that you think. That’s what they’re
judging you on. Once you’ve coded
your first solution, pretty much every time
they’ll ask if there’s a more efficient solution. There usually is, and this is
where your computer science fundamentals will come in handy. And don’t forget
to ask questions. They’re there to help you. It’s a collaborative approach. They’re judging your
technical skills, but they’re also judging
if they could see themselves working with you. And if you come prepared,
you’ll do just fine. There are tons of
resources on the web to help you practice
your technical skills, and I’ve linked to
everything I talked about here in the description. The interview game
takes a lot of effort. The key is to not let your
rejections ever, ever, ever, ever get you down. Because with enough
practice, you can succeed at any
technical interview. Believe in yourself. Stay motivated and
you’re going to make it. For now, I’ve got to interview
someone for the channel. So, thanks for watching.

39 Comments

Add a Comment

Your email address will not be published. Required fields are marked *