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.