I recently got the following question from a college student on Facebook's HH Product Management group: "What kind of path would I have to take (for university and beyond) to be prepared for a Product Manager role?"
Here are the concrete steps I would highly recommend anyone who is still in college:
- Learn as much computer science as possible. Take classes in advanced programming, data structures, algorithms, operating systems, artificial intelligence, machine learning, networking, computer architecture, mobile development, databases, etc. These will give you a solid technical foundation.
- Join one or two hackathons or programming competitions per year. This will give you exposure to new ideas, a supportive environment for writing code and building products, and you may even get to win a cool prize.
- Contribute to an open source project. You will familiarize yourself with how production-level code gets written, good engineering practices for working with repositories/code reviews, and you may end up improving software used by thousands or millions of people.
- Build a mobile app as a side project. You can do this by yourself or with a small group of friends. Pick something small and shippable - it could be a todo list app, a basic music recommendation service, or a simple game. Make sure you launch it to the public, though - that will teach you how the App Store and Google Play work, how to collect and analyze user feedback, and how to iterate on a product.
- Do one or two internships before you graduate. Dozens of Silicon Valley companies have great internship programs. It can be an Engineering or Product Management role - it doesn't matter too much, in the sense that they're both very valuable to have on your resume.
- Apply for an APM (Associate Product Manager) job during your senior year. Google, Facebook, Yahoo, Microsoft, Twitter, Uber, Yelp , Asana, LinkedIn, Zynga, and others all have either formal APM roles or a junior PM rotational program.
That list may sound like a lot at first sight. And it actually is - conservatively, I would estimate fewer than 5% of candidates have done all of the above by the time they graduate. So you don't have to do all of them to have a solid shot at becoming a PM. I personally didn't have a whole lot of experience when I started my career - just one internship and a programming competition.
Another important point: I would hire a person with a 3.5 GPA and 3+ experiences from that list, before hiring a person with a 4.0 GPA and no experiences from the list. You shouldn't ignore your academic performance in order to gain PM-relevant experience, but if your GPA is high enough, it's best to invest your "free" time in activities like the ones above.
Once you're ready to start job hunting, check out my recommendations for how to train for PM interviews.
Good luck!