By: Sarah Fischer
How difficult is it to get a job at Google? Thomas L. Friedman, columnist at The New York Times, recently published an article that helped answer this question. The op-ed was based on a 2013 interview with Laszlo Bock, Senior Vice President of People Operations at Google. The article summarized Bock’s tips on what Google looks for in new hires. Friedman writes, “To sum up Bock’s approach to hiring: Talent can come in so many different forms and be built in so many nontraditional ways today, hiring officers have to be alive to every one — besides brand-name colleges.”
In his interview, Bock specifically states that the absence of a college degree does not disqualify applications from openings at Google. There are some teams where up to 14% of members are without college degrees.
Regardless of how they received their training, job seekers who apply for highly-competitive positions at Google will have ample opportunity to show their merit through the intensive interview process.
Google isn’t alone in holding rigorous interviews to determine the best candidate for a role. Many established and up-and-coming tech companies send potential hires through a series of trial projects, cognitive tests, and in-person interviews. There are three categories of questions that all technical job applications should be prepared to answer. Context has been given where necessary, and for the technical questions, links leads to helpful resources or answers.
1. Computer Science and Algorithms
The first category demonstrates your knowledge and understanding of fundamentals that the role requires. Interviewers are very divided in what they are looking for in their applicants. Some want answers to question after question, while others want to challenge applicants with questions they've never heard but have similar solutions to standard tech questions.
a. Compare and contrast different sorting algorithms. What are each's pros and cons? Which one is best for a given situation?
2. Project and Puzzle
Hiring managers want to see the cognitive process that applicants go through when working on a problem or a puzzle. Always talk out loud when answering, address the pros and cons of your algorithm you've written, and talk about space/time complexity in terms of Big-O.
A. Time/Space Complexity:
a. Analyze time/space complexity in terms of Big-O. Answering this question shows the interviewer that you can intelligently talk about your solution, and consider other possible solutions as well.
b. Reverse a string.
C. Linked Lists:
a. Design a stack that keeps track of min/max element. O(1) time operations for maintaining the min/max.
F. Additional Example Questions (analyze the runtime complexity of your solution for each)
b. Write a function that takes an integer N as an argument and prints all of the prime numbers between 1 and N (inclusive) to stdout.
c. Design a dialer for a feature phone.
3. Behavioral and Informational
The last category of questions that applicants should be comfortable answering pays more attention to personality and team contributions. Along with deciphering if applicants have the right experience, hiring managers also have to determine if they fit well with team cultural. When answering these questions, state the answer first and then explain your answer. Be on-point and specific.
A. Tell me about yourself.
This question merits a 5-sentence-or-less answer that shares both personal and professional experience to give a full overview of who you are.
B. Describe your perfect job.
The answer to this question demonstrates both clarity and focus.
C. Tell me something that’s a challenge for you.
This is a spin on the traditional “what’s your biggest weakness” question, and should be answered carefully. A successful answer demonstrates both self-awareness (where you are challenged) and action (how you are taking steps to improve). A word of caution: don’t respond with a “knock-out” answer that would automatically disqualify you for the job. For example, don’t say you don’t like working in teams in an interview for a leadership position or where performing as part of a team is critical.
D. What are you proud of?
Like the question above, this is a new spin on an old question; “What are your strengths?” Your answer to this question helps hiring managers understand where you excel and what you consider success. And accomplishments – especially when you’re young – is what a startup is looking for. A high GPA doesn’t reflect real-world experience and accomplishments. There’s a gap between getting good test scores and actually doing something worthwhile.
E. How do you resolve issues in a team?
The result of this question is threefold: the interviewer 1) knows you’ve worked in a team, 2) are able to deal with conflict appropriately, and 3) sees that you’re able to maintain the dignity and respect of each team member with how you resolved the issue.
F. Give your steps to problem-solving.
This question is a great opportunity to show you know how to approach and resolve a problem, which is what hiring managers are looking for.
Make Your Mark Early
Setting yourself apart from other applicants starts when you first write your resumé, and ends when you leave the final interview. When you speak on the phone or in person with your interviewer, how you present yourself can be just as important as your skillset. Speak clearly and avoid filler words (umm, like, you know, etc.) that convey you are unsure of your answer. Show confidence by standing tall and smiling when you meet your interviewer, and practice delivering a firm handshake and making eye contact.
At Code Fellows, students go through practice interviews to help them prepare for job placement. Having someone ask you these and other practice questions will help you think on your feet and get used to answering questions with little to no prep.
Two resources for practice questions we use at Code Fellows is, Cracking the Coding Interview: 150 Programming Questions and Solutions by Gayle Laakmann McDowell and Programming Interviews Exposed: Secrets to Landing Your Next Job by John Mongan. Both of these books have a wide assortment of technical questions, and offer clear solutions.
Above all, get plugged in to the community on Twitter and GitHub so that potential employers can see that you’re actively learning and improving your craft. Since you will have to be learning new technology all the time, demonstrating that you are actively growing and learning on your own will show companies how you will fit best with their team, and will help you stand out among other applicants as well. With these tips and some practice, you can walk into a technical interview with confidence.
Sarah Fischer is a Developer Engagement Coordinator at Code Fellows. She engages with Code Fellows students and the Seattle tech community to create resources and materials to help people reach their goal of becoming a professional software engineer.