See my recent Quora post on some of the best books to prepare for metrics or analytics questions during PM interviews.
See my Quora answer which provides a lot of context on how to prepare for a PM job when you're in College.
You're in college, you know you're interested in product management, and you want to know whether you need a technical background such as a CS major or a software engineering internship in order to be a PM. I get a lot of questions from people in exactly this situation.
From a recruiting perspective, the simple answer is no. While a few companies like Google generally require a CS or engineering background in order to interview for their PM roles, I see more and more companies hiring PMs without any technical background. For instance, neither Facebook or Uber require a technical background for their new grad PM programs.
That being said, there are a few things to keep in mind as you choose your major and internships.
- A non-technical background may limit the types of products you can work on as a PM. I would guess that companies like Facebook and Uber tend to assign non-technical new grad PMs to roles that are very user-focused and UX heavy. In contrast, you would likely have a much harder time getting staffed on any sort of developer tool, API or infrastructure team, or similar such roles.
- A non-technical background will be a showstopper for some companies. Google is the strictest among companies that hire new grad PMs from my experience, and you will have a really hard time getting the job if you don't have an engineering or CS major.
- In general, as someone who will be spending a ton of time with engineers in your day-to-day work, you are likely better off having some technical background. It will give you much more credibility much more quickly, and allow you to communicate with engineers more easily. That being said, if you are a very good communicator, a very good listener, and a quick learner, you can certainly overcome this.
So, while I would likely recommend at least taking a few CS classes and doing a few CS projects in your spare time, you don't have to. Just know that you might face a higher learning curve at first, and may having a harder time getting hired by some companies.
By far, one of the most common questions I get is whether you should work as a PM or SWE coming out of college. This is a complex questions that has many facets, and so I've tried to outline some of my answers to some of the most common reasons this question is asked below.
Should I work as a SWE if I want to be a PM in the long run?
If you know you want to be a PM in the long run, become a PM now. It is undoubtedly true that having a technical background can help you be a good PM. However, nothing will make you a better PM than actually working as a PM and developing those skills. From what I have seen, if you have a CS or computer engineering major, you have substantial technical background, and are much better of starting to work as a PM right away.
If you compare the skills, ability, and seniority as someone who works as a SWE for 4 years, then becomes a PM for 2, vs. someone who works as a PM for 6 years, the person who started as a PM out of college will be ahead, bar none.
I meet a lot of people who ask about if it is strategic to do software engineering just to become a PM. Certainly, being a SWE does not hurt your ability to eventually be a PM (and many, many PMs are transfers from SWE). But, transferring is not trivial - at a lot of companies it involves getting a sponsor, convincing someone to let you do product work, and doing that for a few months until you get the opportunity to interview. Then, you have to go through a set of interviews, and may or may not get approved to transfer. And, if you get approved, you'll typically be down leveled. So, if you were a level 5 SWE, you'll become a level 4 PM.
Do not put yourself through this trouble if you know you want to be a PM. Work your ass off to start as a PM, and you'll be able to do what you want earlier and get better at it sooner.
How do Product Management and Software Engineering differ? How do I know what is right for me?
This is a subtle question that could depend a lot on the companies you're looking at. My most generic recommendation would be to interview for both roles at a lot of companies, ask a ton of questions and learn about the differences between the jobs, and from there make a decision.
That being said, there are some generalizations I can make about the differences between the jobs, and what personality characteristics would lead to someone enjoying one role vs. another.
You may like Product Management if:
- You enjoy multi-tasking and thinking about problems from many different facets (marketing, sales, policy, privacy, legal, design, engineering, partnerships, etc.)
- You enjoy working with people a lot. As a PM, you'll have to do a lot of meeting with people, presenting, trying to persuade people and motivate people to get them on board with your vision, and general leadership activities.
- You're excited to work on higher level strategic questions related to a product.
- You are okay with the fact that, at the end of the day, you are never the one who is ultimately doing things or building things. You define the product direction, but at the end of the day its the engineers who write the code, the designers who make the mocks, and the BD team that closes the deals. I can not stress how important this is - as a PM you will often feel stuck or even useless because you can't really get your hands dirty and build something yourself. You have to get others to do so (and you're not their manager, so you better be good at persuasion and selling yourself).
You should be wary of Product Management if:
- You like to dig in deep to really complex technical problems and solve them.
- You want to feel like you are directly building things.
- You don't want to deal with things like constant context switching, tons of meetings, or convincing other teams or people to work with you or support you.
- You hate dealing with people or public speaking
- You like to be able to directly quantify what you have done or directly measure your output. As a PM, I guarantee you that you will have days where you feel like you haven't achieved anything. And I know many PMs who struggle with the fact that it is much harder to quantify or articulate precisely what they have learned or how they have improved.
Is Product Management "better" than software engineering?
Product management is sometimes glamorized as a post-college role. I think this is largely due to the fact that the ratio of PMs to engineers is very low, and thus by definition PM roles seem more exclusive.
Don't fall for this - the roles are very different, but one is not better than another. I would strongly, strongly suggest that you think about what would you enjoy doing as a job, and pick based on that. For a lot of people, engineering will be a better choice.