|
If you want to be a product manager, you'll need to be technically fluent even if you don't have a CS degree. A great way to build technical fluency is to select a simple side project, build it and learn the technical skills necessary along the way.
Many aspiring PMs think about teaching themselves a specific programming language to learn more technical skills. While there's nothing wrong with that, we believe that pursuing a side project (which will include learning a few languages) is a more effective learning mechanism for two reasons:
In this post, we'll cover:
As a product manager, you won't spend all day coding. In fact, many product managers never write a single line of production code for their jobs! Thus, the goal in becoming technically fluent isn't to become the best Javascript programmer, a Python mastermind or leading MongoDB expert.
That might be a nice outcome (and a great bonus if it happens!), but the intent is to build working knowledge of how all the technical layers fit together (e.g., a front end, database, servers, etc.). Ultimately, product managers are responsible for how an overall product comes together, so putting one together yourself, even if it's on simple side, is an incredibly valuable exercise.
Before we get into the types of things you'll need to learn to bring a side project to life, let's level set on how to pick a good side project.
Why? If you pick the wrong side project - say one that's too complicated - you will likely lose momentum and the project will stagnate. A simple, completed side project is worth a thousand complicated, partially completed projects.
Here are four tips to generate a good side project ideas:
OK, we admit the fourth step isn't necessary... but it's fun. And who said side projects shouldn't also be a little bit fun?
Before you start building, you'll need to decide which programming languages and technologies you're going to use. In real production products, this stage would include a lot of real debate and weighing of pros and cons between product managers and engineering managers.
Here, we're going to skip that and propose a specific tech stack. Remember that the goal isn't to learn the sexiest new programming languages out there. Instead, we want a project we can complete, and in the process of completing it, will make us more technically fluent. Thus, our tech stack recommendation optimizes for two things:
Given our criteria, the sample tech stack we propose below is called a LAMP stack, which stands for Linux, Apache, MySQL, and PHP.
Thanks to services like Amazon Web Services (AWS) and Google Cloud, setting up your stack on a server is easier than it's ever been before. Both of those providers will provide a lot of flexibility and if you wanted to utilize something different than a LAMP setup, you certainly could.
However, for our purposes, we're going to stick with LAMP for the aforementioned criteria we set out. In addition, you'll also need to pick up a little front-end web programming languages to build your side project. At a minimum, you'll need to know HTML. If you want to add bells and whistles down the line, you might use some CSS and Javascript, but as we note at the end of this post, we recommend saving that for last.
Based on our recommendation, your side project tech stack would look like this:
đź’ˇ Got a PM interview? Our PM interview drills help get you in top form
As we've mentioned, learning a programming language in a vacuum usually isn't that useful. Before you jump in, we've got a key piece of advice: try to anticipate what you'll need to do in code before you start learning. This has two benefits: 1) it will increase your recall when and 2)
The time you spend in online tutorials and courses will be 10x more valuable if you map out what key tasks your side project will need to accommodate.
For example, if you did end up building the aforementioned grocery to-do app, you might note that you'll need to do a few things:
If you're brand new to programming, you might have absolutely no idea how to accomplish any of the tasks above in code. That's totally fine! But now that you've got a sense of what types of tasks you'll need your code to accomplish, you can keep an eye out for how to accomplish those as you start learning.
This is extremely helpful way to learn programming because your brain won't be trying to store a disparate series of facts. Instead, it will be looking for tools and systems to help solve a problem you have (e.g., how to build your side project tasks).
There are a million different tutorials, courses, books and learning tools available. And many of them are fantastic!
Our list below is optimized to 1) fit together well (e.g., the MySQL tutorial assumes you'll use PHP, the server setup is designed for PHP and MySQL, etc) and 2) be relatively low cost (all of it together would be $35 / month or less).
Finally, we've listed the content in our recommended order of consumption. In fact, you really don't even need to broach steps three and four until you're ready to start writing your own code.
When you first transition from learning a few of the languages to writing code for your side project, it's going to feel like there are lots of gaps. That's OK. It's normal. Figuring out how to navigate between the basics of a language and building a real product is a core part of the learning experience as you become more technically fluent.
There are plenty of great resources online (e.g, tutorials, courses, Q&A sites, etc.) and we've highlighted a few below. But also, don't forget that simply Googling "How do I do [FILL IN THE BLANK]" is incredibly effective as well. Thousands of newbie programmers have traversed these grounds ahead of you, and Google can find you great answers from someone who navigated it before you.
If you're angling to become a product manager, you're probably itching to build a million different things so generating ideas shouldn't be tough.
However, remember that you don't want to pick something too complicated that will require advanced programming knowledge, an inordinate amount of time, etc. You should pick something that you have a high likelihood of being able to finish.
With that in mind, here are a few good sample side projects to consider:
When you start building your side project, there will be a strong temptation to make it look and feel "legitimate." For example, if you end up building a simple grocery list app, you'll likely have mental images of various to-do apps you've used in the past.
It will also be tempting to make it pretty. Don't get bogged down with this - remember, your goal is figure out how technical layers fit together to build a product. If you end up loving your side project and find it super useful, you can always improve the design, usability, and look and feel of it later.
Focus on the technical building blocks, not the bells and whistles. Bells and whistles like fancy design and great layout (which CSS will help with) or dynamic elements like menus that slide open on click (which Javascript will help with) can come later.
Embarking on a side project is a good amount of work. If you've made it to here, give yourself a little pat of the back for not throwing up your arms and saying, "This is too much!" Especially for someone new to programming, the topics outlined above might seem a bit overwhelming.
But there is good news! Building a side project is an incredibly powerful way to learn core technical concepts that PMs need to know. Your confidence in discussing databases, front ends, backends, etc with technical colleagues will increase dramatically. If you stick it out, we guarantee you won't regret it. On top of that, you'll come out the other side with a new product that helps solve a pain point you have.
Real interview questions. Sample answers from PM leaders at Google, Amazon and Facebook. Plus study sheets on key concepts.