Product Managers Guide to C++
Yes, C++ is an old programming language. But don’t conflate age with the ability to get stuff done. A powerful language, C++ has many benefits in the right situations.
In this quick C++ 101 guide, created by Devetry senior software engineers, we’re going to share what product managers should know and understand about C++. Knowing “just enough to be dangerous” can help you communicate with your development team and optimize your roadmaps.
- C++ is an extension of C. It’s C but with some extras (hence the ++)
- C++ is better for systems that run apps — not necessarily apps themselves
- Software that uses C++ include Adobe Photoshop, Microsoft Office, and YouTube
What makes C++ valuable is that it’s a low overhead language, meaning you don’t pay for what you don’t use. This allows developers to create fast, efficient programs but can lead to lines and lines of code for simple tasks. These lines and lines of code make it incredibly tedious to work on, which makes it difficult to understand or find errors unless you’ve got a strong, experienced background.
But what makes it obnoxious for humans is what makes it so great for machines. A machine can read C++ and process requests in a fraction of the time compared to other languages. This speed and execution ability are some of the biggest reasons why it’s incredibly valuable for certain products.
When Your Products Need C++
Three examples where C++ is an ideal choice include
- Apps and systems that require heavy processing
- Software that needs to work across many different devices and platforms
- Embedded software (sensors and connected devices) that rely on batteries
Systems That Require Heavy Processing
C++ is great for cross-platform applications that require a lot of processing.
To understand what we mean, let’s consider a music streaming product (like Spotify or similar).
Any streaming product like this must store terabytes of music files in their library. When you search for a throwback and click “play,” it gets the request, sends the file to your device, and turns it into the sound you hear.
Sending a multi-megabyte file within a second requires a good amount of processing. Now multiple this act by Spotify’s 345 million monthly active users. That’s a lot of on-demand processing power.
To ensure that these files get sent quickly and without consuming an insane amount of energy, a language with low overhead (that a machine can quickly understand) is ideal.
C++ is that language. C++ gives your developers the power to create a system that efficiently uses energy, all while providing the processing power so you can listen to songs on the fly.
Without C++, your next jam sesh would be slower and more expensive.
What’s also great about C++ is that it’s portable. That means it can run on pretty much any operating system and any device. Our music streaming example works here too.
People pull up music apps on their phones (iOS, Android), computers (Windows apps, Chrome browsers) fitness trackers (iWatch), and TVs (Roku, Fire TV Stick). With C++, they have a set of libraries all of these different clients can utilize.
Embedded Software/ IoT
For this example, we’re revisiting energy consumption. If you’re running a device that requires a battery to operate, you are constrained by processing power and energy usage.
You need something fast and powerful, yet lightweight enough not to drain a battery.
An example might be a health monitor. The sensor needs to collect and process your data and then send it to your application rapid-fire to alert you in case of an emergency. You can’t risk slow speeds in a life-saving device.
Languages like Python, C#, and Java would be contenders, but they all have too much overhead (requirements to keep them running).
What C++ Looks Like
Here are two examples of C++ code.
To reiterate, many software developers have difficulty reading C++, so as a product manager, you’re not going to have much luck. And that’s okay. Staying in your lane while understanding why your development team uses C++ is the important thing.
Want more technical knowledge? I’ve written 101s for a number of languages including:
- SQL 101
- Python 101
- What Product Managers Should Know About Architecture
- What Product Managers Should Know About Development
- What Product Managers Should Know About QA & Testing
You can also download our eBook: Guide to Product Roadmaps
Originally published at https://devetry.com on April 7, 2021.