How to Succeed in any Programming Interview 2018

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.

27 thoughts on “How to Succeed in any Programming Interview 2018

  • This is a really solid video for any SWE or SDE, thanks for putting this together, I will direct people to this video!

  • Has anyone here heard of SoftwareTrain? They seem new

    I'm on their waitlist rn. I have software engineering interviews next month, and want guidance from a professional engineer. Has anyone here gotten off their waitlist and get trained? What are their coaches like?

    If you're interested in using them check this out – https://softwaretrain.gettechtrained.com/?kid=10HS9S – it also helps me move up the waitlist (and get trained faster). Thanks guys

  • Siraj I watched your video to the end it is very captivating, however, when I heard you saying CS basics, my heart sank. I'm an enthusiast programmer but I don't have CS degree πŸ˜”

  • Great video..I'm 37yeats old with basic programming knowledge.. does this have age restriction? Can i aim for big companies like Google, microsoft at this age?

  • If there is a pile of job applicants for each software developer job. Then that means that there is no demand for software developers (to many developers per job). Therefore is better to study for a career that is in actual demand.

  • Summary of the video
    Step 1:
    Have a study plan
    Interviewers ask for Data Structure and Algorithms
    a)Study Data Structures(Use My Code School)

    b)Study Algorithms(Use MIT Open Courseware)

    c)Practice in hackerrank.com and hackerearth.com

    d)Read Programming interviews exposed and Cracking the Coding Interview
    and practice.
    e)Conduct Mock interviews

    2)Find Companies that interest you – use excel to track companies ,Angellist and hackernews to find companies

    3)Build a portfolio.(Ideally one page,Include only relevant stuffs)

    a)Have multiple resumes

    b)Add Personal project, Hackathon projects,Open source contributions

    c)Consider github as your new resume

    d)Have a personal website

    4)Get the interview(Apply to company directly in their website) Find recruiter and send an email directly.

    5)Pass interview

    a)Be confident and communicate your thought process well as. It is not about the answer but the way in which you think.

    b)Optimize code and ask questions

    Not let your rejections ever ever ever ever get you down.With enough practice you can succeed at any technical interview

Leave a Reply

Leave a Reply

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