Assuming you are an experienced developer either with a CS degree or equivalent experience, please threat this article as a quick reminder of the things that you’ve learned either during your university studies or professionally but haven’t done any for some time because you were, just like myself, mostly developing for the web platform.
C++ on the other hand is completely opposite. Programming in C++ makes you work directly with memory and due to its static nature, a lot of times you will need to think about which type to use to represent your data, from size to performance perspective. This more or less applies to any programming language that doesn’t have a garbage collector.
This of course can be extremely painful at times but also very satisfying as you have full control over what you’re doing. That basically means that you can build either super efficient software or extremely horrible one.
|Programming Language||Scripting Language|
|Dynamically typed||Statically typed|
|Low Level||High level|
|System Level Programming (performance intensive apps)||Web Development|
|Manual memory management||Automatic memory management (Garbage collector)|
In this article, we mentioned some terms that would be incredibly useful for you to understand if you don’t already.
- Statically typed vs Dinamically typed languages
- Garbage collection
- Compiled & Interpreted
- Difference between programming and scripting languages
- Memory management
While we will cover all this stuff in the upcoming articles, make sure you do some extra research on top of this article and make sure everything clicks. If there’s something you need clarification for, feel free to ask in the comment section, I’ll be happy to help.
In the next article, we will talk about importance of learning C++, give you some motivation and some insights on why would you want to invest your time learning it and after that, start with articles where we are actually coding stuff.