Photo by Greg Rakozy

Becoming a Product Manager without a Computer Science degree

“Can I become a product manager without a computer science degree?” I asked that question to many product managers, friends, and anyone who’d listen when I was considering a transition into product management. I eventually transitioned into a product manager role at a startup, and now work as a product manager at Google, without ever going to school for computer science nor a business degree. I hope my experience helps you.

For context, a few things I’ve learned about the limits of technical knowledge in your product management journey.

  • Your understanding of computer science concepts will be a small part of your role as a PM, as you’ll spend considerable time understanding your users and customers, crafting a product strategy, writing PRDs, discussing go to market approach, and more.
  • Your engineering counterparts will own technology and implementation decisions, or any choices that need a good understanding of CS concepts.
  • Technical skills won’t be enough to get a job as a product manager, but you can get rejected during the interview process for not understanding enough fundamentals.

The reason to learn some technical fundamentals is that understanding computer science concepts will make you a more effective Product Manager and work better with engineering. This is why there is a technical interview as part of the Google Product Manager interview.

When technical skills help a product manager

You may be wondering, do I need to be able to code? And the answer to that is, not really. Ultimately, you are learning technical concepts to be effective in certain situations, none of which will involve coding or code reviews. You can leave the code in the hands of your capable engineering counterparts.

Instead of worrying about code, focus your technical learning to be effective in:

  • Feature design tradeoffs
  • Debugging product issues
  • External discussions

Feature design tradeoffs

A fundamental part of the product manager’s job is to specify the requirements for the product. As part of defining the product, it is helpful to understand what requirements are challenging to achieve and will require more engineering effort. Understanding this will help you, and your design counterpart, make the right tradeoffs between specific user experiences vs. the time and cost to build.

You don’t need to foresee every challenge, nor should you try, as you will always have an engineering counterpart to help review your proposal. But, to the extent that you can proactively address challenges – such as knowing what operations require a “roundtrip server call” and can slow down the UX – the more effective you can be.

Debugging product issues

Your product will have issues, which your users will quickly find and report. Instead of distracting your engineering counterparts for every issue, you should be able to understand or use available tools to figure out what may be wrong. You may now know exactly what is wrong in the code or the infrastructure, but you should at least be able to narrow it down to a general component of the product. Better yet, try to see if it’s an issue that is impacting many users or just a few based on your diagnosis.

By doing this, you can help the engineering team prioritize the right issues, work with customer-facing teams to handle communications appropriately for feature requests or user errors, and ultimately help the team overall work better.

External discussions 

As a product manager, you are often the voice of the product. You will need to represent your team in customer conversations, potential partnership calls, or even when discussing your plans with other groups. These conversations will often include questions for which you’ll need a good understanding of your product’s technical capabilities to answer.

How to prioritize what to learn

If you haven’t studied computer science, it may be daunting to prioritize what to learn. What you quickly realize with each of those scenarios is that the technical knowledge that you’ll need in each situation (feature design, debugging issues, external discussions) varies.

I’d recommend that you start by getting curious about the technical stack for the product that you’re interested in managing. What is technically challenging about building such a product? What is expensive from an infrastructure perspective? What are the components needed?

If you don’t have a particular desire, pick a mix of fundamental technologies and currently popular ones to start learning. Here are a few examples of things that helped me.

Learn web fundamentals: HTML, CSS, and JavaScript

Understanding the power and limitations of HTML, CSS, and JavaScript will be helpful for any web product. Learn what they look like, and how they work together to create the rich set of web experiences you find today as you navigate the internet.

I learned some of the fundamentals by taking free courses on Codecademy, which taught me the fundamentals by getting me to build a simple site. Understanding these core technologies helped me understand the limitations of the “client-side” technologies and what sort of things need to happen “server-side,” essential concepts as you discuss product development with your team.

Understand product infrastructure 

Your job as a PM is to drive prioritization discussions, and many significant investment discussions relate to product infrastructure. Start by understanding the technologies powering your product. The easiest way to do this is to write down technology names you don’t know and then googling them or asking an engineer what they are.

For each key technology, try to understand:

  • Why is it used?
  • What are its limitations?
  • How does using it helps product development?
  • Does it have product performance implications?
  • How does it impact the user’s interaction with our product?

I worked on a project in my first few years as a product manager to expand the language capabilities of a product search engine. To be useful as a PM, I had to work with engineering to evaluate whether to use pre-packaged components or build brand new ones. Understanding what pre-built packages enabled us to do, and how difficult it’d be to produce those ourselves, was crucial to making the right decision. Besides, we had to consider the impact on potential roadmap features – both the flexibility and limitations we’d have – based on the chosen approach. It was crucial for me as a PM to be actively involved in this process.

Do simple programming exercises

If you’ve never programmed, take a simple course in Python and Java or C programming. Writing a few lines of code and having it execute well will start giving you a sense of how a computer works.

Learn the vocabulary of your area of interest

Each product area has a lingo. Learn what things mean. Machine learning may sound intimidating until you’ve read a bit about it. What is a “cloud” product? Is it better than an on-premise product? Why or why not?

Build an app with a friend

I find that in Silicon Valley, building an app on the side gets you good street cred for a PM role. I have my hesitations about how effective that is in helping you develop the skills necessary to be a PM in a larger organization. But, it’s a great way to gain experience prioritizing what to build when. You’ll learn to evaluate benefits relative to development cost. You’ll also learn to define the spec for a developer to build.

Remain curious

I have now been a product manager for over six years and have worked with many different teams. I never stop learning and continuously encounter new technologies and technical concepts. However, by remaining curious about the technology and diving deep into technical concepts when relevant, I have been able to help the team without a computer science degree.

Your PM job will be about a lot more than technical expertise, but being technically curious will make the journey more fun for you and your teammates. It will also help you build credibility, both with your engineering counterparts and your customers. So whatever you do, don’t shy away from the challenge, ask questions, and keep learning!

Last Updated on August 22, 2020 by Omar Eduardo

3 comments / Add your comment below

  1. Thank you so much for all the articles you wrote! they are so helpful, especially to someone like me who has consulting/banking experience but no tech background. In your google tech interview, do you need to write a code? May I ask for your advice on how much time should be spent on that part?

    1. Hi Vivienne,

      In general, I haven’t written any code for the purposes of my PM job, nor for the interviews I’ve had. I did have to learn about computer science fundamentals and be able to talk about data structures and algorithms, but no actual coding needed during the interview.

      That said, there were times where I hugely benefitted from learning the computer science and web development fundamentals throughout my career. This blog post with resources when transitioning to PM has a section for technical resources that I use to learn more about the technical aspect of building software: https://omareduardo.com/2017/07/08/resources-when-transitioning-into-product-management/

      Hope this helps!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.