Why Learn C++?

All data used in this article is as of January 6, 2016

C++ is known to be a very powerful language. C++ allows you to have a lot of control as to how you use computer resources, so in the right hands its speed and ability to cheaply use resources should be able to surpass other languages. Thanks to C++'s performance, it is often used to develop game engines, games, and desktop apps. Many AAA title video games are built with C++.

Beginner Friendliness

Very Complex

Since C++ is rather lower level, the language is huge and you will need to handle a lot of complex things such as memory management and more. You also need to write a lot of code before you can get a working prototype if you're planning on building an app from scratch. Since it will be difficult to grasp how all features in C++ works, you can easily shoot yourself in the foot.

As such, since it's easy for a coding beginner to go astray when learning C++, we strongly recommend learning C++ with a mentor. In addition, C++ has a longer history with game development in general, so there are a lot of proven good practices a C++ mentor from the gaming community can teach you.

Scalability

C++'s greatest strength is how scalable it could be, so apps that are very resource intensive are usually built with it. Graphics require a lot of resource, which is why the most beautiful 3D games you happily feast your eyes on are often built with C++.

Fast

As a statically typed language, C++ is generally more performant than dynamically typed languages because the code is type-checked before it is executed. Java is gaining ground in terms of speed, but in the end, depending on how talented the C++ developer is, C++ can still be faster than Java.

Control

As mentioned before, since you have a lot of control over how your app uses resources, your app can take up very little resource. All in all, since C++ can be very performant in the right hands, enterprises often use C++ to code functions that have a critical reliance on speed and resource usage.

Not Easy to Maintain

C++ needs a lot of code, which means you need a large team to scale a C++ app, and from a time and financial investment point of view, C++ not easy to scale. Also, since you have to do a lot of things manually with C++, it's easy for less experienced or less skilled developers to introduce errors into the code base. Java was developed because so many professional developers were making mistakes, so in terms of talent-recruiting, a very skilled and experienced C++ developer may be hard to find and also expensive to afford, which is why C++ is not so scalable.

Of course, if your goal is to build a game using a game engine, this may still be a problem but less critical.

Community

First of all, community size is important, because the larger a programming language community is, the more support you'd be likely to get. As you step into the programming world, you'll soon understand how vital support is, as the developer community is all about giving and receiving help. Moreover, the larger a community, the more people will be building useful tools to make development in that particular language easier. As of now, there are over 600 notable programming languages world-wide.

So, with that context in mind, let's get into the details of the C++ community.

Highest Overall StackOverflow Answer rate

StackOverflow is a programming Q&A site you will no doubt become intimate with as a coding beginner. While some may argue C++ questions are more likely to be answered because C++ users are more advanced and know how to phrase their questions better, an 83.6% overall answer rate is still quite the feat. C++ is also the 6th most used and followd tag on StackOverflow, with over 69k followers.

Small Meetup Community

At meetups, you can generally network and learn from fellow developers. Meetups often offer mentorship to those who want it as well. The C++ meetup community is somewhat smaller, so if you're looking to connect with C++ game developers you can check out Game Development Meetups too.

6th Most Popular Language on GitHub

Although much of C++ projects on GitHub might not have been used for C++ development itself, C++ has a long history of being used to develop games and graphics-related programs. The Unreal Game Engine, which was used to develop many AAA title games, is known to have very powerful tools that will make your life easier. It is also particularly good for developing FPS games.

Career Opportunities

Salary information from gooroo.io

If you want to develop mainstream games, chances are you'd need to use C++. Many mobile best-seller games were built with Cocos2d-x, which is a free, open-sourced and cross-platform game engine. Cocos2d-x games are developed with C++, though Cocos2d also supports other languages now. However, as the support for other languages is a relatively recent addition, you'd likely find better documentation for Cocos2d-x.

Furthermore, large companies such as Facebook also may need C++ developers to help optimize their apps or work on their products.

Future

TIOBE Popularity Index: #3

The rise of independent game development may have dented the demand for C++ developers a little, but in general, C++ will still remain a major player in the gaming industry. Now that Unreal Engine, the most popular game engine for AAA title games, is free, you can definitely get started with developing 3D games with C++ yourself.

Interest in learning C++ grew by 22.7% in 2015

With the rise of Virtual Reality, C++ developers will be needed to develop the most visually amazing VR apps, so in that aspect, C++ has a pretty bright future.

Although C++ gets a lot of flak for being so complex and hard to use right, it's still being actively worked to be kept relevant, so all in all C++ won't be going away even though a lot of languages have been trying to replace it.

Ready to Learn C++? Click Here For Free Lessons!

What is the best programming language for me?