4b. How to prepare for a technical interview

How do I prepare for the technical interview?

Now that we’ve covered some of the basics about the technical interview, we’re going to turn to things you can do to prepare for the interview.

First off, you’ll have to make a decision on just how much time you want to invest in this prep. The answer to this will depend a lot on what companies you’re interviewing at and what your own background is. It would be very useful to gather some intel ahead of time on just how technical your target companies’ interviews are (note – this is not always tightly correlated with how technical their PMs are on the day-to-day job!). If all your target companies don’t expect technical PMs, then you might be able to get away with not studying the technical side of things at all!

Also, think about how you want to pitch your technical skills. If you don’t have a technical background, don’t overstate what you know or what you’ve done – for example, if you launched a website for a side business idea, but you used a site builder like Squarespace to do it, don’t pretend like you coded it from scratch! You don’t want to get trapped by a situation where the interviewer thinks you’re more technical than you are. This is one of those cases in life where it’s probably more strategic to set expectations low and then exceed them in the interview.

If you do have technical background, companies may think it’s fair to ask you a technical question. For example, if you were a CS minor in undergrad, an algorithms question is probably totally fair game in your interview. Be sure to brush up a bit on the theoretical side of things.

There are a few different things you can do to prepare for the technical side of the PM interview, if you decide to invest time in this…

Taking a MOOC on coding

There are so many resources online now that can teach you the basics of coding. Every major online learning platform has them: Coursera, EdX, and Udacity are some good examples. CS50, which is an incredibly popular intro CS course from Harvard that’s posted all its materials online, is also a notable example because the class focuses on getting students to create a real program of some sort for the final project.

These courses are definitely at the basic level, but they will introduce you to a given language, and will teach you fundamental building blocks like conditional statements, how to debug, some simple algorithms (e.g. “fizzbuzz”), etc.

MOOCs are generally self-paced, so take it at the speed that best suits your learning style. I’d highly recommend choosing a class that teaches Python (which is a super friendly language) or Javascript (which is a very widely used language), but really any language which is used widely today is a fine choice.

Getting your hands dirty

After you have a bit of introductory coding knowledge, you may want to go for a super-applied approach and get your hands dirty by trying to build your own website that has some fancier features. This is an especially useful step for those who may have coded in CS classes in the past, but who have never worked on a real web product before.

There are a variety of “web frameworks” out there. A web framework is a library of code that others have built which allow you to more easily build a website in a particular language. For example, Django is a popular web framework that uses the Python language, Ruby on Rails is built with Ruby, and AngularJS uses Javascript.

These web frameworks all have great documentation websites, and some of them will have documentation that provides an initial example of how to use the framework to build something simple like a blog website. (I personally recommend Django’s tutorials).

One word of caution if you go down this route – at some point, you’ll have to set up your computer to have the right tools to code. This is known as setting up your “development environment”. This can sometimes be complex and somewhat difficult, depending on the language you’re working in and the machine you have. Don’t give up hope! It’s a hassle, but at least it’s mostly a one-time cost. Look for good instructions online to follow.

Reading books

Since the knowledge you’re aiming to get is relatively limited in scope, you could try to just study up on the relevant topics by reading the right books.

The best overall book for preparing for the PM interview is Cracking the PM Interview. This book will go over a lot of topics that will be helpful for you to know, including an overview of a bunch of technical topics. This book is invaluable – if you only do one thing to prepare for your PM interviews, read this book!

Another useful book by the same author is Cracking the Coding Interview. This book is geared more towards an engineering interview, so it definitely goes into more depth on every topic than you’ll likely need to know for a PM interview. So, approach this book with a breadth-first mentality: read a bit on each topic to learn a bit about it, and then dive into things you’re curious about or as you have time. Understanding 100% of this book will overprepare you for any kind of technical PM interview.

And finally, a slightly crazier thing to do if you become interested in some of the more theoretical topics is to buy a used CS textbook and try to work your way through it. This is not recommended as the most efficient way to prepare for a technical interview, but could fill in those knowledge gaps if you’ve never taken CS before. For example, for algorithms, the textbook of reference is CSLR.

Learning online

There are now tons of resources online to teach almost anything relating to computer science. It’s all about knowing what to Google, and digging deeper into different topics as you uncover them.

The most practical thing you can do is to search for examples of technical PM interview questions. For example, perhaps look for example questions from Google’s technical interviews, since those will probably be a good benchmark for the upper end of what you need to know for interviews at other tech companies. Rely not only on Google, but also sites like Quora or Glassdoor.

Also try Googling some more general queries for your interview prep, questions like “how does the internet work”, “how does a website work”, things like that. You’ll be amazed at the kinds of detailed answers you’ll find.

As you learn a little bit about a new topic, try to be scrappy and dig deeper into the parts of the answer that you don’t fully understand yet. Let your curiosity guide you, and don’t get discouraged if you need to re-read materials, or read more than one description of a given topic. You’ll slowly piece things together, and at some point things will likely “click” in your head. Find a buddy (maybe even one who’s knowledgeable about these topics) and try explaining something you learned to him or her to see if you really understand it.

Be patient, and be curious! Hopefully you find the content interesting, and hopefully you can view it less as a chore and more as a fun activity.