DEV Community

Cover image for Technical Skills for Product Manager
Nadezhda Yuzhakova
Nadezhda Yuzhakova

Posted on

Technical Skills for Product Manager

How to be a Product Manager in tech without technical skills?

  • be lucky;
  • be excellent in echoing things you have heard;
  • have great communication skills to make friendship with engineers so they do everything you ask;
  • have wonderful self-presentation skills, so any manager would be craving to get you on board;
  • be good at networking.

This is everything I could do. More or less. What I can't do is to get rid of my impostor syndrome. So, as a product manager without any technical background, I acquired basic SQL, Linux, Python and Git skills.

In this article, I’ll tell you how I did it and stayed motivated (what is the hardest thing to do).

Before Start

My impostor syndrome didn’t appear one rainy morning from nothing. It was nourished by authoritative opinions.

If you need to feel uncomfortable with your current level of technical skills, read the “Inspired” or the “Cracking the PM Interview” books. They are very explicit about what a PM should be like.

Or you can look around and find a geek to make friends with. He should be a technical evangelist and be good at providing direct feedback. The best is to marry him. Oh, sorry, it’s my case.

And the final step is to be ambitious enough to rockstar your career. What is your ultimate goal to achieve? For most of such goals PMs need tech skills.

Now, if you feel this itchy noise in your head, you can start building your technical background.

What to Learn

It seems inspiring to have a manager like from the “Radical Candor” book. He challenges directly, speaks beyond the current role and company, he inspires by example. If this is not your case, you can still find an authority to get development advice. Look among engineering managers, among strong PMs from the community. But usually, you can define it by yourself by a vague understanding of some matters.

For example, at my work we often speak about servers, internet, connectivity, IPs, managing servers via CLI, upgrading users’ distros. It’s a good idea for me to dive into Linux.

Or I need to learn about customer behavior, purchases, and products. I have raw data in the databases. So, I need to learn how to query in SQL. Once I have fundamentals, it’s not a big deal to figure out how to query in PostgreSQL, MongoDB, and etc.

If I were a PM for a mobile app, it would make sense for me to work on my own app as a pet project, code it by myself on Flutter and build all the infrastructure to deliver it in public.

For every product manager, it’s a good idea to learn basic coding skills. It helps appreciate engineers' work, speak one language, show your love for technology, and give you an understanding of what is possible. Any language will give you fundamentals and major concepts. My choice is Python because it’s relatively simple, well structured, has a big friendly community, and extends the possibilities to work with data.

Non-working Learning Strategies

Silver Bullets

Actually, they don’t work for anybody.

You are trapped in the silver-bullet mindset if you are constantly asking such questions:

  • Is there a cool tech company, which won’t check my coding skills on the interview?
  • Which programming language should I learn to get an offer?
  • Which course should I take to acquire excellent coding skills from scratch?

The best way to get out is to stop looking. Because the truth is, you never know which opportunity you will get or miss at the moment of making a decision. Nobody tells you what works for you. So, don’t lose time. Take any Python course for beginners 😄

Courses

I believe that programming and technology books can provide a comprehensive and structured understanding of how things work. But if you are new to developing tech skills, many of them may be too hard. So, in the beginning, the PM's choice can be a course. The simplest and fastest. It gives you confidence, dopamine, and… disappointment. You soon realize you have spent hours and still can do nothing. The courses are not for learning on this stage. Now you know you CAN learn something hard and you have a base for future neural connections in your brain.

Understand What You Learned

If you study, let’s say, economics at the university, and you decide to read something about Linux, you will understand nothing. Literally nothing. I started with a book that was too hard for me, the “Unix and Linux System Administration Handbook”. I googled everything I didn’t understand. I opened Wikipedia, followed links one by one, lost time and became more frustrated. In the first chapters, the authors show examples of how the syntax looks like. They used a non-existing command for this purpose. I googled it because I thought this was something important, found nothing and gave up for months. So, if you don’t understand, it’s okay. Just move. If you don’t remember, it’s okay. Move. A bit later, you will realize you understand more and more. Only one thing is to keep going!

Find the Best

I spent some time choosing the most complete and effective course. At that moment, I didn’t know yet that I needed ~10 courses or books to be able to do even the basics. Just take any and proceed to the next level of depth. Some information I was able to understand after I’ve heard or read about it 2-3 times with different words. My brain was finally ready to accept the information. It works like this: “Oh, I’ve heard something about this. It’s not scary anymore. Ok, let’s listen to what they say”.

What Works

Mentor

With a mentor, you move faster and frustrate less. Periodically you need to hear something like that from an experienced guy:

  • “I also don’t know it.”
  • “I’ve never used it. Skip it.”
  • “This is a misprint.”
  • “I configured a server for you for this exercise.”

Surprisingly, finding a mentor isn't that hard and it's worth it! Ask at work, on Twitter, on Reddit... I found a mentor for Linux among my colleagues who passed the RHCSA exam.

Set a Goal

In my experience, two types of goals help to gain real knowledge and skills:

  • take an international exam;
  • get an offer where you need to use this skill and successfully pass onboarding.

Community and Public Commitments

When I started to learn Python, I joined #100DaysOfCode challenge on Twitter. Strangers supported me under my daily tweets and this helped me build a daily habit of coding. If I do something hard, I will need someone who cares and will cheer me up. It’s more important than it seems.

Daily Habit

Building a daily habit to learn or code is essential. In a while, you don’t ask yourself what to do in the next 30 minutes you have. You open the terminal / IDE and practice. I used WakaTime to track my coding time and set a goal of one hour daily.

Pet Projects

Sometimes it’s hard to obtain a specific experience on your regular job because of technologies mismatch or any other reason. If it is the case, the creation of your own playground will be a solution. Build it in public, share results, and this project can be even counted as a valid case for some job interviews.

Choose and Stick

If I am like most PMs, we have a lot of things to be chasing. Books, courses, conferences, building your own public profile, job interviews, projects at work. If you want to get something you can speak for, you will need time and focus. In my experience, I was hoping to learn Linux in three months. It took me almost a year. It’s hard and boring. I was starving to do something different. What helped me stick was a focus. Every time I wanted to do something else, I put it in the backlog. I could pull something new only when I took the RHCSA exam. If it looks like having one work in progress (WIP) limit in the Kanban system, you detected it right! It helped me to calm down my thoughts and overcome my fear of missing out.

How I Learned

SQL

Goal: Get promoted to a System Analyst.

The resources that worked for me:

  • Work integrated learning. Every time I asked engineers to help me find data, I asked them to send me a query they used. I tried to re-use and play with queries; created templates.

As a result, I:

  • was promoted to a System Analyst;
  • could fetch the data by myself;
  • got an offer of my dream job as a Product Manager for an international company.

Linux

Goal: Take the RHCSA exam.

The resources that worked for me:

As a result, I:

  • took the exam and failed (don’t take the exam for the RHEL 9 if you prepared for the RHEL 8).
  • can solve tasks by myself. Here are some examples: connect to a server, download archived reports, remove unnecessary files and send them to the stakeholders; lookup for data in the big datasets without fetching them.

Python and Git

Goal: Acquire programming skills and do my first pet project.

The resources that worked for me:

As a result, I:

  • created a simple shooting game as a pet project;
  • can better understand technical tasks of my team and help with prioritization.

Summary

This is hard to acquire technical skills. Not only for PMs without a technical background. Even for engineers. I prepared for the RHCSA exam simultaneously with one colleague from the engineering team from my company. I took the exam and failed. He didn’t use his shot at all. A lot of things compete for our time: families, friends, traveling, hobbies, other technologies and skills you want to learn. The key is to focus, take small daily steps and stick to your goals. Choose not from the list what is clear or simple but constantly raises the bar. Use as much help as you can find. And increase your chances of taking an opportunity when it is available.

Top comments (0)