Key Concepts for Technical Product Questions
Many product managers don’t have a technical background, but it’s important to know your technical basics for the PM interview. Here’s a list of free resources you can use to learn about technical concepts that may come up in your interview. Keep in mind that not all PM interviews involve technical questions, so be sure to ask your recruiter to what extent your interview will be technical.
If you’re not technical
We recommend taking basic courses on technical concepts relevant to your career goals, and, if you’re serious about deepening your technical skills, learning to code. There are many resources to choose from, so try out different options until you find something that fits your schedule, your goals, and your learning style.
We’ve compiled a few of our favorite resources below.
Learning to code
- Codeacademy: Learn HTML, CSS, JavaScript, JQuery, Python, Ruby, and PHP in a project-based environment.
- Khan Academy: Khan Academy’s programming offering includes JavaScript, HTML, CSS, and SQL. If you’re interested in the underpinnings of CS or more advanced topics like machine learning, you can learn relevant math and statistics topics at Khan Academy as well.
- Coursera/edX: This option is recommended for those who want the structure of a university course or are interested in CS theory without the high tuition.
Computer basics
For a primer on how computers work, check out Khan Academy’s Computer Basics unit. You’ll learn about logic gates and circuits, the most important computer components, and all about various file types and sizes.
Here are a few key terms to know:
- Digital Logic: A computer’s central processing unit (CPU) includes electronic circuits that use binary code to represent data. These circuits use logical operators like “and”, “or” and “not” to manipulate the binary code in complex ways, enabling the computer to perform complicated tasks.
- CPU: The Central Processing Unit (CPU) is the brain of the computer. It interprets and performs commands given to it by various programs.
- Motherboard: The primary circuit board responsible for connecting and allocating power between the CPU, Random Access Memory (RAM), and other components.
- GPU: The Graphics Processing Unit (GPU) specifically handles computationally-intensive tasks related to rendering graphics.
- Storage: Computers are physically limited in size, so it’s important to keep important or often-used data easily accessible to the CPU to keep performance high. Less-important or less-used data can be stored further from the CPU. Traditionally, data stored farther from the CPU is called storage while data stored close to the CPU is called memory.
- RAM: Random-access Memory (RAM) can be thought of as short-term memory. It stores information being actively accessed, such as edits you’re making to a text file. When you hit “save”, the file is not saved in RAM, however - it’s saved to long-term storage elsewhere.
- I/O: I/O stands for “Input / Output.” A computer operation, device, or program that receives input and returns output could be referred to as I/O.
- Filesystems: A filesystem can be thought of as a set of rules and definitions for how files are named, stored, and accessed in storage. This is a complex and technical topic—we encourage you to read the linked article if you’re interested in learning more.
The Internet
Check out this codeacademy blog post for a good overview covering the history of the internet and how it works.
Key terms include:
- Client-Server Model: A model underpinning much of the internet. It is comprised of clients (typically browsers) that request certain information from servers who host and deliver those resources on demand.
- Websites: A collection of web pages identified by a common domain name.
- TCP/IP: Transmission Control Protocol (TCP) and Internet Protocol (IP) are a set of protocols that work together to enable computers to exchange information over a network.
- HTTP: Hypertext Transfer Protocol (HTTP) is the underlying protocol that makes it possible to load webpages using hypertext links.
- Browsers: An application that facilitates finding and accessing websites. Popular browsers include Firefox, Google Chrome, and Safari.
- DNS: The Domain Name System (DNS) protocol converts domain names to IP addresses, which allows for reliable information exchange under TCP/IP.
- Web Crawling & Indexing: The process search engines like Google Search follow to make sure web content is captured regularly and made available for users via search. Search engines do this by sending out automated “crawlers” that are programmed to find newly updated web content, which is then saved, organized, and indexed, making it discoverable as a result to user queries.
- Cloud Computing: Computing resources delivered via the internet rather than through hardware owned and stored directly on-site.
Machine learning and artificial intelligence
In order to build effective artificial intelligence (AI) tools, computer scientists need algorithms and techniques that allow computers to learn from data. This field of study is called machine learning (ML.)
If you’re interested in AI and ML we recommend starting with Andrew Ng’s Machine Learning for Beginners, or, if you’d rather learn on your own, by selecting resources relevant to you from Springboard’s study plan.
Here are some additional resources for learning the most important topics:
- Models & training: ML models are created by training algorithm(s) on sample data. This data can come with a label already in place (to help the algorithm learn faster), or it can come unlabelled, in which case the algorithm finds its own patterns and categorizes data accordingly. There are many methods for training effective models — Machine Learning for Beginners is a great resource for getting an initial sense of which types of models you may be interested in.
- Basic ML Infrastructure: There’s much more to ML than building a good model. ML infrastructure includes all the resources and tooling needed to create, train, and deploy ML models. Read the linked guide by run.ai to learn more about all the components required for building ML systems.
- Computer Vision: A large field of computer science that attempts to build computers that can “see” in the way humans can; that is, to recognize and understand objects and even people in visual data, usually in the form of video or images.
- NLP: Similar to computer vision, Natural Language Processing (NLP) is the subset of computer science focused on enabling computers to process language as humans do.
- LLMs: Large Language Models (LLMs) are massive language models, often having billions of parameters. GPT-3, with 175 billion parameters, is an example.
Software systems & development
Software development is more than just writing good code. To learn the processes enterprises use to produce reliable, maintainable, quality code at scale, we recommend learning as much as possible about the software development process, especially at your target company.
Start with an overview like this blog post from freeCodeCamp, then dive deeper into what most interests you, and most importantly, check out the engineering blog at your target company.
You’ll learn how software is produced while getting an interesting inside look into the company culture.
Here are some important terms to know:
- Tech Stack: The sum total of an organization’s tools, apps, and platforms used to build its products.
- Databases: An organized collection of data, typically designed for easy access and maintainability.
- APIs: Application Programming Interfaces (APIs) enable different software components to communicate under certain protocols, or “rules of engagement” to ensure complete, efficient, and secure data transmission.
- Routing: The process of selecting the best path within a computer network. When a router receives a request, it first determines this best path per the request, forwards the data along to the next device or node, and, if needed, works to manage traffic volume.
- Microservices: A distributed approach to software architecture in which an application is comprised of independent components connected via APIs. The benefit of microservice architecture is mainly in scaling; each component can be scaled according to its unique needs.
- Front-end vs. Back-end: Front-end, or “client-side” may be thought of as everything user-facing, including buttons, forms, images, and video. Front-end technologies include HTML, CSS, and JavaScript. The back-end, or “server-side” includes databases, many APIs, and tools and processes involved in data security. The back end is often hidden from users and includes PHP, Python, Ruby, etc.
Data structures, algorithms and system design
While you’re not expected to answer technical questions at the software engineer’s (SWE) level, getting an in-depth understanding of data structures, algorithms, and system design principles will make it easier for you to understand technical topics on the job and in any technical-leaning interviews.
Watching SWEs answer coding and other technical questions can help you get a better sense of which topics and systems are most relevant on-the-job.
Data structures & algorithms
Check out Exponent’s data structures & algorithms course for an overview of these topics as they come up in SWE interviews. Then, if relevant, watch SWEs answer common coding questions using this foundation. Here are some sample questions:
System design
Browse Exponent’s Fundamentals of System Design course for an overview of system architecture, APIs, and how to scale a system. Then, if relevant to you, watch SWEs and engineering managers use these concepts in mock interviews. Here are some sample questions: