A Technical Guide for Product Managers
Based on my experiences at Facebook, you need a handful of design, engineering and data skills to succeed as a PM
Do I need to be technical to be a product manager?
This is a great question and one of the most common questions I get from aspiring PMs.
I did some research to see what the broader consensus on this topic is. There appear to be two camps of responses:
No, you don't need to be technical: PMs focus more on building the strategy and coordinating the many roles involved in building a product.
No, but it helps. It’s unnecessary to have a technical background, but it sure helps build credibility with the team.
Over the last few years, my answer question has evolved. I’m now firmly in camp number three: yes, you need to be technical to be a product manager.
In this piece, I’ll explain why this is and cover the following:
What it means to be technical (spoiler: it’s not just coding)
How a PM is like a coach
Finding your spikes and fluencies
A full list of resources to help you learn the right skills
The technical trio
First, I want to clear up a misconception on what it means to be "technical”. Generally, people think that technical skills = the ability to code. This originates from the idea that engineers are the ones who build the product (i.e. write the code).
But in reality, a product team has three main builders: engineers, designers and data scientists. Each of these roles requires a unique set of skills to do the job. A product manager is responsible for helping these builders create something worthwhile.
For this reason, I think there are three technical skillsets: design, engineering and data. Each of these involves knowledge of processes (ex. hypothesis testing, unit testing), tools (ex. SQL, Figma) and academic knowledge (ex. degrees in specific fields). All of these are unique technical skillsets, and, as you’ll see, they’re important for a PM to understand!
A PM is a coach
Brandon Chu of Shopify has a great article on the First Principles of Product Management. In it, he likens PMs to another job:
There is no better analogy for how a PM should think of their role than the coach of a team sport like basketball, volleyball, football, etc.
This is spot-on: while the PM does not jump on the court and play, they are responsible for helping the team perform to the best of their ability and win.
Importantly, a coach doesn't need to be able to play each position on the team. But they need to have a nuanced understanding of the position and how it interacts with others. This includes knowing their role in the team, their limitations, their relative strengths, the dynamics between each position and how they fit into different strategies.
This understanding is hard to learn from a book or in school. This is why many professional sports coaches, including 100% of NBA coaches, are ex-players. It doesn't necessarily matter which position they played, but the fact that they've played the game does three things for the team:
There’s no substitute for being in the arena. Coaches who have played the game know the nuances (like psychology, motor skills and rhythm) that are impossible to learn from the sidelines.
In addition to knowledge, putting yourself into the players’ shoes can help you better support and coordinate the team. It builds a shared trust between coach and players.
🙌🏽 Love of the sport:
If you want to be a great coach, you need to love the process, have unique insights into the game and be excited about the possibilities of what the team can do. People who aren’t fascinated by the game should not become coaches.
This brings us to two points about product management:
The best PMs have experience as builders.
If you have no interest in learning about the jobs of builders’, you should not be a PM. Aspiring PMs should be fascinated with how engineers write code, how designers decide user flows and how data scientists build models. If you’re trying to avoid learning how code works, there’s a very high likelihood that this isn’t the job for you.
Spikes and fluencies
Now, if you don't come from a technical background, don't fret 😊. I was in your shoes a few years ago.
I was fascinated with UX Design, but I studied economics and had no previous jobs in the field. But somehow, I was able to land a UX design internship at Microsoft. How? Because I took some online courses and built a portfolio through side projects.
Here’s the 🔑: if you don’t have technical skills, develop them through self-directed learning and side projects.
Going into recruitment for product management roles a few years later, design was my spike — my main technical skillset showed I knew how to build products and work with other builders. I also took courses and built small side projects related to engineering and data to help develop fluency in the other technical areas.
Here's what my technical skills would look like in a radar chart:
My suggestion to non-technical people who want to enter product management is to develop a spike in one area and become fluent in others. This isn’t the only path, but it will help you learn more about the role and make you competitive during recruitment.
Here are visualizations of other backgrounds that I’ve seen be successful in PM recruitment:
Developing your technical skills
Below is a series of books (📗), links (🔗), articles (📝) and courses (🎓) to help you learn the technical skills you need. I’ll update this page as I vet more resources (if you have any suggestions drop them in the comments). 😊
The importance of design knowledge: Design is how a user interacts with technology. It’s everything the user experiences, feels and touches. Because the product manager is ultimately responsible for a product's success, understanding how a product is designed and its uses are paramount. There are really high returns to understanding basic design patterns, ideas and terminology.
You need to know: The basics of usability, journey mapping, wireframing, user interface and information architecture. Learning design vocabulary (ex. terms likes affordances, dark patterns) is really helpful when communicating with designers.
Some great resources to learn design:
🔗 Built for Mars (a series of excellent case studies on design & usability)
📗 Don't Make Me Think by Steve Krug
📗 Design of Everyday Things by Don Norman
📝 Design thinking introduction and process from IDEO
📝How to Work with Designers by Julie Zhou
🎓 Intro to Wireframing by Treehouse
🎓 UX Design Masterclass: Learn by Building 3 Real Projects by me 🙃 (you can use my referral link for 14 days free)
Projects that can build fluency
App Critique: Open your favourite app and try to accomplish a task (ex. Instagram -> go to my bestfriend’s profile). Record your journey and narrate your thoughts on getting there. Afterwards, go back and critique the positive and negative parts of the journey.
Design a three-screen app: Before building complicated applications, design a simple app (ex. a timer, a note list). This is a great way to learn the basics of a design tool like Figma or Sketch.
Design a full app: With more confidence and best practices under your belt, try building the full experience for a more complicated app (ex. social network or stock trading platform).
The importance of engineering knowledge: Engineering determines how a product works. Everything from its functionality, limitations, speed, data storage and security from hackers is tied into the engineering process. Understanding how code becomes a product like Facebook or Airbnb is crucial for your success as a product manager.
You need to know: The basics of systems design, data types, algorithms architecture, version control and the differences in popular programming languages. The actual coding is unnecessary, but learning to code will help understand some of the other ideas!
Recommendations on things to learn:
🎓 CS50 by Harvard (the best introduction out there, for free)
🎓 Technology for Product Managers by LinkedIn Learning
🎓 Programming Foundations: Real-World Examples by LinkedIn Learning
🔗 CS Dojo (a great YouTube channel to learn and work on CS problems)
📗 Computer Systems: A Programmer's Perspective by Randal E. Bryant
📗 Designing Data-Intensive Applications by Martin Kleppmann
📝 How to work with engineers by Julie Zhou
📗 Mythical Man Month by Fredrick Brooks Jr. (gifted to me by a former engineering coworker, this book is a must-read).
🔗 Khan Academy: Programming (an excellent starting point for writing code)
Projects that can build fluency:
Create a personal website and edit the code: This is where I started. Try using a tool like WordPress or Webflow to build a personal website. Take time to edit parts to your liking (for example, edit the header fonts or add in a button). There are many templates to start from and limitless potential to play around with code.
Solve Problems: Practice your coding skills on Leetcode, a site full of problems that are actually used in software engineering interviews.
Build a simple application: Try building an application using your language of choice. For me, I learned Python and followed this tutorial to build a Pomodoro Clock for my desktop!
The importance of data knowledge: Data informs what the product should improve. This is crucial for a PM to understand to make strategies, identify opportunities and empathize with users at scale.
What you need to know: Basic statistics, A/B testing, SQL and a little Python/R. Spend the most time reviewing how to make decisions using data, as this is where you’ll likely interact with it the most.
Recommendations on things to learn:
📗 Intro to Statistics by OpenIntro
📗 Mastering Metrics by Joshua D. Angrist and Jörn-Steffan Pischke (a book I loved from an econometrics class I took in university)
🎓 Khan Academy: SQL (this is where I got started, and it’s more than enough for what I need today)
🎓 Intro to Python by W3 Schools
📝 Empirically Sound AB Testing: A Guide for Non-Statisticians by me
🔗 Distill (intuitive explanations of Machine Learning concepts)
🔗 Kaggle (an environment with great data sets to play with)
Projects that can build fluency
Answer a fun question with data: For me, that was “Is faster music happier?” I created a research question, got data on Kaggle and used Python to build some charts. It’s a great way to practice!
Analyze your favourite website: SimilarWeb can give you free traffic data on any site. Pull up your favourite and find an unusual trend about the site (ex. 40% of Pinterest’s traffic comes from search)!
A/B test a website: If you have a personal website, use a tool like Optimizely to run your own A/B test. Try changing a button, header or colour to see if that changes the engagement on your site.
Technical skills are more than just coding. It’s about fluency in design, data and engineering.
You may not need to code, design wireframes or analyze data yourself, but it’s helpful to know the process, empathize with the builders and build curiosity for each domain.
Aim for a spike in one skillset and fluency in the others. This will help you be more effective in the role and make you more competitive when applying for a PM job.
If you have no interest in learning about one of these skills, reconsider if PM is the role you really want.
Use resources to build your knowledge and then work on real projects to build your experiences.
If you’re new to Product Life, subscribe below for concise, actionable and often surprising lessons for product managers.
Until next time,
This information is priceless, l have been researching on the Product Manager role recently and l have encountered some of the resources here that have been suggested elsewhere. This article is of course much more in depth and l really appreciate that, it strongly guides one on the right path, l will forever be grateful for that. As a practicing project manager who aspires to be a product manager, the path has been set out for me.
Really informative article. I really enjoy the deep dive and strong takeaways as to which 3 competencies people should have/develop a focus on if they're interested in PMing. Thanks so much for compiling such a detailed list of resources, and also the super neat graphics on competencies for the radar charts :)