Subtitles section Play video
hi welcome to life Google's video about
how to prepare for technical interview
i'm sean technology and engineering
recruiter I'm Allison I'm a software
engineer
i'm jess i'm also a software engineer
although this video is going to focus on
the technical interview definitely check
out our partner video on how to prepare
for the business internview as well. it
absolutely applies here without further
ado let's get into some tips
first things first make sure you're
ready to prove what's on your resume
we're going to want some critical pieces
from you including the bread and butter
of software engineering data structures
well you could argue with me on that
data structures and algorithms so we
want things like hash tables stacks
arrays as well as algorithm space and
time complexity we also want things like
be prepared to code on a whiteboard this
is very different from coding on a
computer so it's highly recommended to
go out find a whiteboard or a chalkboard
and try coding something up
it's a little different and finally we
want to make sure that your brush up on
system design as well as object oriented
programming in general you want to show
your problem-solving skills to the
question you are asked if it's a coding
question providing efficient code a
short time frame is key if its design
question work with your interviewer to
create a high level system and if
applicable delving into deeper issues if
it's a general analysis question
sure you understand all aspects of the
problem and if necessary offer multiple
solutions discussing the relative merits
in the end the interview want to know if
they'd be comfortable working with you
on
specifically you should focus your
preparation in the following areas
coding so you're gonna spend the
majority of your time actually writing
code in the interviews we do ask that
you are pretty familiar with at least
one coding language and typically will
interview you in C++ or Java you may use
Python RC in different projects here you
will be expected to know api's
object-oriented design and programming
how to test your code and you want to
come up with corner cases and edge cases
for yours and other people's another big
thing is algorithms i mentioned this in
the beginning and it's coming up again
because surprised it's important
alright so you also want to know how
complex your algorithm is remember time
and space complexity as well as how to
improve or change it if you give me an O
of n algorithm and then you give me an O
ven factorial or over n squared and you
tell me it's better this is going to be
a little awkward so another thing if you
get a chance to study up on other
algorithms like Dykstra's or a star
it'll probably help you to something
incredibly important candidates with
three or more years of industry and
experience should have hands-on testing
experience if you have less than three
years at within the industry
we're just going to test you for your
testing aptitude you can expect
questions such as how would you unit
tops the code you write what interesting
inputs are test cases can you think of
and we may also ask you to design and to
end integration loaded performance or
even security tests for real-world
systems such as Gmail for example data
structures so you should study up on as
many data structures and algorithms is
humanly possible you should know some of
the most famous classes of NP complete
problems like the travelling salesman in
the nap sock you should definitely be
able to recognize some of these very
famous questions when asked in a
slightly different way
also try and find out what np-complete
actually means you should absolutely no
trees some basic reconstruction
traversal and manipulation algorithms
hash tables stocks arrays linked lists
so
also math some of our interviewers will
ask basic discrete math problems
don't worry they will be very relevant
counting problems probability things
that happen in everyday life
so before you come and spend some time
refreshing your memory on these things
or learning the essentials of
probability theory and combinatorial 6u
should be pretty familiar with n choose
K problems and like recursion many
coding problems involved thinking
recursively and maybe coding a recursive
solution prepared for recursion which
can sometimes be tricky if not approach
properly practice some problems which
can be solved iteratively the more
elegant solution is recursion operating
systems you should understand processes
threads as well as concurrency issues
and everything related to that such as
semaphores new Texas locks things like
that you should also understand resource
allocation so what resources a process
or thread might need another thing
context switching just brush up a little
bit on that understand that it's
initiated in the and the operating
system and underlying hardware and then
one last thing
maybe you might want to know a little
bit about how scheduling works system
design Kevin's have been in the industry
for more than five years should have
experience with system design these
questions are used to see your ability
to combine knowledge theory and judgment
towards solving a real world problem
sample topics include feature sets
interfaces class hierarchies distributed
systems and designing system under
certain constraints you should also have
an understanding of how the internet
actually works and be familiar with the
various pieces routers domain name
servers load balancers & firewalls also
understand the basics of houses
now that we've talked a little bit about
some of the knowledge areas that we
expect you to know we want to offer you
three final tips to really be successful
in your first explain and clarify it's
extremely important to talk for your
thought process during the interview as
much better to say what you're thinking
to stay silent even if you're discarding
ideas along the way your interviewer
wants to know your thought process which
ideas you're not going to use and which
I do you finally settle on clarifying
the question is also important that most
of the questions that you are
intentionally big because the
interviewer wants to know what questions
you would ask if you're in a real-world
solutions that have a question
an example of a question you can ask for
clarifying is are there any time or
space complexity requirements
secondly we want you to keep thinking we
know this is really strenuous and
arguing is really long but the first
solution that you come up with might not
be the most elegant so we encourage you
to keep thinking through the problems
think about your current solution and
how you could potentially improve it
finally practice make sure that you
practice physically writing your code
you won't have an editor
no color code for comments no auto crack
be sure to test your code be sure that's
easily readable without bugs fine
problems right code solvent there's no
better way of practicing than actually
riding out code that's it for today and
so much for joining us