🛳️ How to learn backend programming as a PM

It can be hard! But it's not as important as frontend programming.

In last week’s newsletter issue, I explained how to learn frontend programming as a PM. In this issue, I focus on backend programming.

Backend programming

Last week, I talked about how web apps have become a dominant way for delivering value to end users, in the growing digital economy. Backend developers work on the logic that lives on the server side of a web app. So sometimes it’s also called server programming. The server logic is usually tied to a database where data is stored. So backend programming deals a lot with persistence as well.

In the rest of this newsletter issue, I talk about how to learn backend programming as a PM. All the general principles and practical tips from the previous week’s issue apply here as well. (It’s still programming, at the end of the day.) But I provide additional detail for backend programming.

Learn frontend programming first

As a rule of thumb, you should learn frontend programming first. Most user-facing changes in a product typically have at least a frontend component. So as a PM, you’re going to get more value from any frontend programming knowledge you acquire. It would be unfair and inaccurate to say that one type of software engineering is easier than the other. But what is more directly relevant to you as a PM, is often frontend programming. So it may seem like frontend programming is simpler, but do know that both disciplines have their own technical difficulties. So even if you never learn backend programming, or have very little understanding of the backend technologies used by your team, you won’t be at a huge loss. You’ll definitely need to very much lean on your backend engineers’ expertise, and constantly ask them what is possible and what isn’t, as well as what is advisable, with every product iteration you work on.

Learn one backend programming language

Just like frontend programming, focus on first learning one backend programming language, and learn the principles well. It’s better to be good at one language than having shallow knowledge across many languages. In particular, principles do carry over. Unlike frontend programming however, there are a lot more different backend programming languages. So if you’re just starting out, consider what your team is using, and probably focus on that one, especially if it’s a popular language that teams you may join in the future, will use.

  • Java is a tried and true language with a long history. Big enterprises, and old guard companies often use Java. It’s an older language, and the syntax (the “grammar rules”) may be a bit harder to learn at first. Nonetheless it’s a great first language to learn since the rules are crisp and clear. It may take a bit longer to learn, but you’ll be rewarded with knowing more programming principles.

  • Ruby is a newer language and used often by startups. Startups are focused on proving out ideas, not necessarily building a stable platform for long-term growth. So as a result, Ruby diehards claim that it allows them to create products faster. For a PM, it’s much easier to learn. And if you have already learned JavaScript previously, it should not be much harder to learn the basic syntax.

  • Node.js is a special technology that allows backend web servers to take JavaScript (the default frontend programming language), and treat it as backend code. So if you already know JavaScript, you will know how to read a Node.js program. If you’re working in a startup trying to quickly test out a few product ideas, your team may be using Node.js, especially if their current engineering staff doesn’t have deep backend expertise.

Learn one backend framework

Similar to frontend programming, backend languages have frameworks as well. A backend language usually can do very little on its own. In the modern digital economy, there’s lots of standard features of systems that are components of modern products. These could be a web server, an email system, a system to send mobile notifications, or an API for third-party app integrations. Instead of creating these systems from scratch, there’s many open source frameworks and even paid products that do these for you. Backend programmers will integrate these frameworks into their product, so that they can focus on creating the custom logic that is relevant to your business. For example, if you’re a small startup, and your app needs to send email notifications, you shouldn’t be creating that system. You should just use an off-the-shelf backend framework to do so.

It turns out that most backend programming languages have at least one or two popular frameworks that perform many of these basic functions. Pick one and learn it. Again, your focus should be gaining some competency in order to be conversant with an engineer, not to implement features. In Ruby, the framework would be Rails. In Node.js, it would be Express. For Java, it would be Spring or Struts.

Backend can be hard

A final word of caution that bears repeating: Backend programming can be hard. Focus on frontend programming first. Get familiar with those technologies first. And maybe even take a break from learning technical topics. Explore other PM learning for a while, while those concepts simmer in your subconscious mind. When you’re ready, dive into the backend side of programming. If it’s really too difficult, don’t get discouraged. Know that it’s not as important. Move onto something else, and revisit it at a later time.

🤔 What should I write about in the next issue of Product Management 101?

Reply to this email and let me know!