How to Prepare for Google’s Product Management Technical round When You Are Not Technical.
I recently went through Google’s Product Management interview and was offered the role. One round is dedicated to assessing technical competency. As someone without an engineering degree, this was one of the most challenging rounds to prepare for. To succeed, I broke down what I needed to learn into chunks and built my knowledge upon them. I did this fulltime over a 6–8 week period.
I firmly believe anyone can and should become technically competent. As “software eats the world,” it is in everyone’s best interest to learn how it works.
Google’s PM Technical Round no longer includes coding challenges. However, you may be required to explain how to solve a problem with an algorithm. I broke down the types of questions asked into the following five areas. The fifth area is personal to each interviewee, as it is expected you’ll have in-depth technical knowledge over your products.
- General Computer Science Competency — know-how of how it works
- Algorithms and data structures — how would you solve a problem in the most optimal way
- Systems Design — how would you architect an app or feature
- Prioritization — how would you choose what to build
- Your Current Product — be able to describe your tech stack and its design
Below you’ll find what to learn and a list of resources I used to understand this body of knowledge. Please note this is not an exhaustive list but should be a good starting point for most interview questions. I hope you’ll find learning these concepts just as fun and engaging as I did.
GENERAL COMPUTER SCIENCE COMPETENCY
History of Chips and the birth of Silicon Valley
- History of Silicon Valley, the integrated circuit [video]
Fundamentals of Computer Science — Hardware & Software
Hardware has three major components, CPU, Memory, and Storage. Operating systems bridge between the hardware and application layer on top. Each computer or server can communicate with other servers, i.e. networking. As this occurs, the need for data to transfer efficiently and securely becomes even more critical. Below you’ll find a list of topics that will explain all these concepts in more detail.
- CPU [blog post]
- Main Memory [blog post]
- Storage [blog post]
- Networking [blog post]
- Input / Output [blog post]
- Operating Systems [blog post]
- Bits and Bytes [blog post]
- Digital Images [Stanford CS 101 Free Online Course]
- Analog vs. Digital [Stanford CS 101 Free Online Course]
- Computer Security [Stanford CS 101 Free Online Course]
- Text, Image, Audio, and Video Compression [Stanford CS 101 Free Online Course]
Fundamentals of Programming
You won’t be asked to code, however, it’s important to know the fundamentals of programming so you can read and discuss code if needed. Python and SQL are great languages to learn as a Product Manager since much of your work will require data analysis. I found Dataquest was a great platform to learn from as the course is well structured and easy to follow.
- Python (first 16 sessions are free and useful) [Dataquest]
How does the internet work?
It is crucial to understand how the internet works, and the frameworks and protocols it is built on.
- Computer networking [Stanford CS 101 class notes]
- How the web works [Stanford CS 101 class notes]
- How the web works (overview) [blog post]
- Anatomy of a URL [blog post]
- DNS [blog post]
- HTTP [blog post, Swipe to Unlock]
- Routing and TCP / IP [blog post, Swipe to Unlock]
- Web servers [blog post]
- Web browser (part 1) [blog post]
- Web browser (part 2) [blog post]
- HTML [blog post]
- CSS [blog post]
Below are the two most important types of algorithms to understand. You should know how they work, what their space-time efficiency is (i.e., BigO) and how to optimize them.
- Search algorithms: Linear Search, Binary Search [Gayle McDowell’s Cracking the Coding Interview, Daily Coding Problem if you like to read code in python, Big O Cheat Sheet, Geeks for Geeks]
- Sorting algorithms: Selection Sort, Bubble Sort, Insertion Sort, Merge Sort, Heap Sort, QuickSort [YouTube these as it is best to understand them visually first, Geeks for Geeks]
- Recursion and Dynamic Programming [Gayle McDowell’s Cracking the Coding Interview]
- Interview Algorithm Question Practice [Gayle McDowell’s Cracking the Coding Interview, Daily Coding Problem]
Datastructures and Databases
Here are the most critical data structures and database types to understand.
- Data Structures: Array, Linked List, Stack, Queue, Binary Tree, Binary Search Tree, Heap, Hashing, Graph [Gayle McDowell’s Cracking the Coding Interview Book, Daily Coding Problem]
- Databases: SQL or NoSQL (non-relational) [Gayle McDowell’s Cracking the Coding Interview Book]
System design questions are very relevant for Product Managers who often need to consider tradeoffs with the engineering team when designing the system, especially as it scales. Here are some topics you should become familiar with as well as know-how to design popular apps.
- Main concepts: Redundancy and Replication, Load Balancing, Caching, Consistent Hashing, Long-Polling vs WebSockets [Gaurev Sen’s YouTube Tutorials, Educative System’s Design Course]
- Design Popular Apps: Bitly, Pastebin, Dropbox, Yelp, Uber, Facebook Newsfeed, Typeahead Suggestion, Netflix or Youtube, Facebook Messenger or Whatsapp, and Twitter Search. [Gaurev Sen’s YouTube Tutorials, Educative System’s Design Course, Swipe to Unlock for a very easy read]
As a Product Manager, you will continuously have and want to do more than you and your team can. Hence, one of the most crucial parts of the job is to know how to prioritize. There are many frameworks on how to do this. One I’ve liked is RICE, explained by the following equation: (Reach x Impact x Confidence)/Effort. [RICE Framework]
Ok, now that you’ve learned the fundamentals. How do you apply it to real software product challenges and problems? Below is a list of questions you should have a handle on answering. This list is not exhaustive; however, it will help you check in on your understanding to date.
- What is MapReduce?
- How does compression work for text, image, and video, and what are the differences?
- What is the difference between latency and bandwidth?
- How could you reduce load times?
- How can you speed up an API call?
- What are cookies and how are they used?
- What is encryption? How does SSL communication work?
- How do single sign-on work?
- What is object-oriented programming?
- How does search work? What is web crawling?
- How do emails work?
- Why does Gmail search take longer than Google search?
- How does GPS work?
- How does Chromecast work?
- What is machine learning?
TIPS ON PRACTICING
Make sure you can explain all the fundamental concepts verbally. Practice this with a mock partner. For system design and many technical concepts, it is also essential to draw out the response in a structured manner on a whiteboard. This will ensure your interviewer can follow you and understand your logic.
To get access to a past bank of technical interview questions, check out Glassdoor, as well as the popular PM interview prep books such as Decode and Conquer, Product Manager Interview or Cracking the PM Interview.
I’m sure there are some concepts that I’ve missed here. If so, please feel to reach out. I hope we can make this a living document with an up-to-date list of resources to learn from such that anyone can become technically competent.