The title of this article naturally mentions C++ because entire series are around that same language, hence its name but I could have named this article “Why you should learn a low level programming language as a web developer” just as well.
Before I hop onto answering those questions, let’s ask a simpler one, why should one become a polyglot software developer ? Why should one learn another programming language, regardless of the domain and level ? What type of expectations should you have when learning new languages, APIs and technologies ?
The biggest problem of majority of developers is the idea about learning new languages. That same problem is the reason why very little percentage of developers even try to learn a new language, run-time, environment.
That problem is called expectations.
Many developers have a tendency to believe that learning a new language immediately implies becoming professionally proficient and knowing everything. That is very much false assumption and that same expectation is what drives you away from even attempting to learn something new.
Learning new stuff in general, new paradigms, patterns, means learning new ideas. This will not only armor your existing skills but will also teach you many different ways of approaching and solving problems.
So what does all of this mean when it comes to C++ ? What are those ideas, paradigms or whatever I’m talking about ?
C++ is a very computer science heavy language. This means that we care about every little detail and performance modification we can make.
This will force you to learn data types better, use appropriate algorithms for the given problem and force you to be fully efficiency oriented.
Besides data types and performances, you will learn about different layers of memory and how is your program laid out in it, how is memory allocated and freed through the program life-cycle and lastly, how all of it works with rest of the hardware (CPU etc).
One of my favorite parts of this journey is studying compilers. While a massive subject that you can devote many years of your life to, learning compilers at least on a basic level is really fun and you can deep dive all the way into binary if you want and see how entire program is presented in ones and zeros.
To slowly summarize, learning new languages, stepping out of your comfort zone is something that will make you a better engineer on every level.
I don’t expect you to take on this journey and become C++ professional in a month. That will not happen regardless how intelligent and awesome you are. What you will gain whatsoever is a massive amount of joy and excitement just by doing something completely different. I have no doubt if contrary, some of the low level dudes would try out some web stuff, they would be also intrigued and eager to learn it.
I personally learn new technologies almost on daily basis aside my work and if I don’t have that little doze of unknown, I don’t think I’d be able to be part of this community as I would get incredibly bored doing the same stuff all over again.
I hope this article will give you enough of confidence and reasons to take on this journey. All you need for the upcoming lessons is curiosity and will to progress.