Skip to content

Latest commit

 

History

History
77 lines (66 loc) · 3.42 KB

README.md

File metadata and controls

77 lines (66 loc) · 3.42 KB

PM Tech Int Breakdown for a non-CS major

(please note this is not an exhaustive list, but a good starting point I used to prep for my product manager interviews)

Topics

  • General CS 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)

General CS Competency

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.

  • History of Silicon Valley, the integrated circuit
  • CPU
  • Main Memory
  • Storage
  • Networking
  • Input/Output
  • Operating Systems
  • Bits and Bytes
  • Digital Images
  • Analog vs. Digital
  • Computer Security
  • Text, Image, Audio, and Video Compression

Fundamentals of Programming

  • Many online coding bootcamps offer great intro classes, Python and SQL are great languages to learn as a PM since much of your work will require data analysis
  • I took/am taking the following classes at Cal Poly to build up my CS foundation:
    • CPE 101 (Python)
    • BUS 392 (Java)
    • BUS 393 (SQL)
    • CodePath Software Engineering Technical Interview Bootcamp

How the Internet Works

  • Computer Networking
  • How the web works
  • Anatomy of a URL
  • DNS
  • HTTP
  • Routing and TCP/IP
  • Web servers
  • Web browser
  • HTML
  • CSS
  • JavaScript

Algorithms

For each algorithm, you should know how they work, what their space-time efficiency is, (i.e. Big O) and how to optimize them

Search algorithms [CTCI, Daily Coding Problem, Big O Cheat Sheet, Geeks for Geeks]

  • Linear Search, Binary Search

Sorting algorithms [YouTube, Geeks for Geeks]

  • Selection Sort, Bubble Sort, Insertion Sort, Merge Sort, Heap Sort, QuickSort

Recursion and Dynamic Programming [CTCI]

Interview Algorithm Question Practice [CTCI, Daily Coding Problem]

Data Structures and Databases

Data Structures [CTCI, Daily Coding Problem]

  • Array, Linked list, Stack, Queue, Binary Tree, Binary Search Tree, Heap, Hashing, Graph

Databases [CTCI]

  • SQL or NoSQL (non-relational)

Systems Design

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 [Gaurav Sen's YouTube Playlist]

  • Redundancy and Replication, Load Balancing, Caching, Consistent Hashing, Long-Polling vs, WebSockets

Design Popular Apps [Gaurav Sen, Swipe to Unlock]

  • Dropbox, Yelp, Uber, Facebook Newsfeed, Netflix, YouTube, Facebook Messenger/WhatsApp, Twitter Search

Prioritization

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.