Resources for Interviewing for a Tech Internship at Google and Facebook

IMG_2131A friend offered to “mock interview” me, and I took his offer. I hadn’t prepared at all, and he said that he would grant me borderline reject based off of how I was able to perform on the spot. On the spot meant over the phone on a shared Word doc. That inspired me to study up and actually go for an internship, which I did eventually get. Along the way, I collected a bunch of materials.


Seasoned advice:

  • Get that job at Google – Written in 2008, a candid and comical look through the interview process for Software Engineers. “These tips are actually generic; there’s nothing specific to Google vs. any other software company. I could have been writing these tips about my first software job 20 years ago. That implies that these tips are also timeless, at least for the span of our careers.”
  • 5 Essential Phone Screen Questions – Same guy, but a post for interviewers on 5 essential screen questions. “It’s usually pretty obvious when the candidate should have been eliminated during the phone screens. Well, it’s obvious in retrospect, anyway: during the interviews, we find some horrible flaw in the candidate which, had anyone thought to ask about it during the phone screen, would surely have disqualified the person.”
  • How To Get Hired — What CS Students Need to Know – “I’ve hired dozens of C/C++ programmers (mostly at the entry level). To do that, I had to interview hundreds of candidates. Many of them were woefully poorly prepared for the interview. This page is my attempt to help budding software engineers get and pass programming interviews.”
  • How to Become a Better Developer – “How do you get to be a great musician? It helps to know the theory, and to understand the mechanics of your instrument. It helps to have talent. But ultimately, greatness comes from practicing; applying the theory over and over again, using feedback to get better every time.”

Coding Exercises:

  • topcoder – “Topcoder gathers the world’s experts in design, development and data science to work on interesting and challenging problems. Members are provided with opportunities to demonstrate their expertise, improve their skills, and win cash, while helping real world organizations solve real world problems.”
  • Google Code Jam – “Distributed Code Jam is an algorithmic coding competition track similar to Google Code Jam, but in order to solve the problems you will be required to write code for a distributed environment. The competition will challenge your distributed coding, latency reduction abilities, and of course, your algorithmic coding skills. This is the first global competition of its kind in the competitive programming world and it’s your chance to be named the first ever winner of Distributed Code Jam!”
  • Project Euler – “Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.”
  • Open Compute – “The Open Compute Project Foundation is a rapidly growing community of engineers around the world whose mission is to design and enable the delivery of the most efficient server, storage and data center hardware designs for scalable computing. We believe that openly sharing ideas, specifications and other intellectual property is the key to maximizing innovation and reducing operational complexity in the scalable computing space. The Open Compute Project Foundation provides a structure in which individuals and organizations can share their intellectual property with Open Compute Projects.”
  • Hacker Rank – “With more than five domains to choose from, you can decide if you want to improve your coding skills on Artificial Intelligence or Machine Learning. Whether you are a beginner or an industry veteran, you will find several contests that challenge you and help you boost your coding chops. Think you’ve mastered a domain? Great. Go ahead and practice to excel in another domain.”
  • Quora Challenges – Quora specific problems: Upvotes, Ontology, Wombats.
  • Egg Problem – An old favorite:  “Find the minimum number of trials required to determine the lowest floor in a building from which when we drop a egg it should NOT break. We need an algorithm that lowers the number of drops.”

Coding References:

From Google:

From Facebook:

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s