The Choice is Yours - Choosing the Primary Programming Language
Hello and welcome. Version 1.0 of my Roadmap is up and I want to start with the first item. Today, I’m going to choose my primary programming language.
The question “What should you learn first?” is answered succinctly in the English-speaking world:
“The skills that pay the bills.”
This refers to the essential skills that will enable you to process and accomplish useful initial tasks.
And what skill is the best one to start with? Exactly, we learn our first programming language.
One, that’s all it takes
You probably think there is THE right programming languages to start with, but the choice is not that crucial. It’s much more important, however, that you focus on one and don’t try to learn all of them at once.
Of course, you will learn other languages over time. Some situations may require this. Maybe you want to specialize in a certain technology later on and there you mainly work with another language. But it can also be that a framework of another language is much better suited or even the only possibility to solve a problem.
Nevertheless, I advise you to focus on one programming language first. This prevents confusion. Besides, you still need enough time and energy to gain the other essential skills. So get deep into your primary programming language and master the specifics.
Which is not important
Why does it not matter which language you start with? The main reason is that many programming languages are very similar at their core. Yes, the syntax is different. Yes, programming languages may look different. They may even have completely different performance characteristics. However, at their core, all programming languages share more than one might initially suspect.
Almost all programming languages have basic constructs for branching, loops, and calls. Also, all provide a way to organize code at a high level. In fact, there are many programming languages that are so similar that if you know one, you almost know the other.
The first programming language is the hardest to learn. You will find that when you have a good command of one language, learning another will be much easier. If after a short time you decide to change even your main language, even then you will notice advantages. So you are only gaining.
C++ == C + 1;
I have chosen C++ as my primary programming language. And before you throw your hands up in horror and ask - Yes, I know what I’m getting into.
C++ was developed as an extension of the C programming language and is considered very difficult. The learning curve is flat and it is quite easy for inexperienced programmers to write inefficient applications. The developer is forced to be very disciplined in designing his code.
The number of supporting tools is also sparse. Proprietary compilers rarely generate optimized code and are of little use. This gap is bridged by the free GNU gcc/g++ compiler.
Although there is a recognized ISO C++ standard, the standardization is not quite comprehensive. Thus, each compiler has its own interpretations in obscure edge cases. Unfortunately, these discrepancies include commonly used functions such as templates and the standard template library.
The C++ runtime environment is not only computationally intensive, but can also be misleading to non-experts. Seemingly innocuous instructions can cause the compiler to generate large amounts of code.
The ability to link code written in C, or casts and pointer arithmetic are like Trojan horses in C++. This weakens the otherwise safe data type model.
Inexperienced C++ developers thus have many opportunities to harm the software structure of a project.
And is there light in the shadows?
These are some circumstances and pitfalls I have to learn to deal with. Why do I want to go through the trouble and choose C++ as my primary programming language? Why don’t I make the already challenging task easier and pick a more popular language?
Most Popular Programming Languages
First of all, C++ is very broadly applicable and useful for a wide variety of different tasks. In your video game console, your video games, your camera, your car, everywhere C++ is used.
In the embedded field, it has not yet been able to prevail over C, although the close relationship means that code can be written using procedural paradigms as well as object-oriented ones. Object-oriented programming is today very widespread, but straight fundamental problem definitions can be solved more simply procedurally.
From the high-level point of view, the two main advantages of C++ are that it enforces a much more rigorous discipline during code development. Because of the way classes are accessed, C++ compilers require interface-oriented abstraction. The language incorporates a variety of object-oriented concepts, such as inheritance, abstraction, polymorphism, or encapsulation, which allow for software reuse when used properly.
In addition, C++ has dynamic memory allocation, which is compiler-supported and more robust than the C model. This makes C++ a low-level language with high-level libraries. This allows for discussion at both levels of programming. The best programmers can “hand-wire” at the lowest level when needed, and use high-level libraries and application programming interfaces to reduce development time.
From my perspective, C++ is a good choice. Once you learn to solve problems in C++, you’ll be able to do it in any programming language. The cross-paradigm approach and level of difficulty make the skills you learn especially transferable to any other language.
C++ is the “real deal”. It is programming without training wheels. It may be scary at first, but once you successfully program in C++, you’ll feel good about having mastered the craft properly.
Can you relate to my choice or did I even make you like C++? Which primary programming language do you choose and why?
I wish you maximum success!