DEV Community

Cover image for Why I choose C++
Stephan B. R. Langenau
Stephan B. R. Langenau

Posted on

Why I choose C++

Search for an objective Language

During my studies I got a broad insight into various programming languages. Including Java, Python, R, VBA, HTML & CSS and JavaScript. I also took various courses in Java and Python, but Java didn't feel right to me. I really enjoyed doing the courses and think Java is very good, but Java is not for me.

I only had a lot of fun with Python and R, not least because they can be easily combined. I taught myself Bash and PowerShell over the years. I prefer to use Bash because I mainly work with Linux. However, I always lacked an object-oriented programming language.

Why C++?

The answer is pretty simple. I wanted to learn a system-oriented programming language. Java and C# are not system-oriented and can therefore be hacked more easily through reverse engineering. Also, I didn't choose C# because I don't use Windows except at work.

I also find C++ very interesting due to its universal applicability, because due to its proximity to the system, every C++ program runs on every device with a few adjustments. I also wanted to take on this challenge, as C++ is very complex and has a steep learning curve. I see more benefit for me personally in learning a complex programming language like C++ than an easy-to-learn programming language.

When choosing the programming language, neither trends nor the TIOBE index played a role. Because if everyone were to choose the programming language that is currently very popular and sought after, then the diversity would be lost.

How do I learn C++?

I am currently familiarizing myself with C with the help of my Codecademy Pro membership. I also rely on specialist literature such as the book: Programming - Principles and Practice Using C++ by the creator of C++ Bjarne Stroustrup. Of course, you learn a programming language better through constant learning like coding, coding and coding ...

Discussion (27)

Collapse
selectiveduplicate profile image
Abu Sakib

Good luck in your journey; I normally use C and thought about learning C++ on the side for SFML and some OS stuff, becomes a lot easier when you know C.

Collapse
Sloan, the sloth mascot
Comment deleted
Collapse
kaeptnkrunch profile image
Stephan B. R. Langenau Author • Edited

Thanks. C is also a good way to start. Normally when you understand C you understand also C++.

Note:
I mean when you understand the basic principles of programming it is easier to learn a new programming language.

Thread Thread
mc8 profile image
MC-8

maybe, maybe not. If you get into modern C++ (from C++11 onwards) the two are almost like two different languages :)

Thread Thread
selectiveduplicate profile image
Abu Sakib

C++ does have some unique features, that are totally alien to a C programmer. Templates, classes, containers like vector and map to name a few; not to mention how C++ offers new way to assign variables. But still, they don't come as utter shocks if someone knows C and has done OOP before. The point is there are common grounds and smells familiar; and they are two different languages.

Thread Thread
kaeptnkrunch profile image
Stephan B. R. Langenau Author

Of course that's what I said. They are still different languages. But when you are familiar with C I guess with some practice you understand C++

Thread Thread
mc8 profile image
MC-8

Agreed, what I meant is that if your goal is to learn C++, just start directly with C++ and forget about C (for now). This way you can start with the right practices (for C++) from the beginning.
There's a nice talk (with a very misleading title) from Kate Gregory "Stop teaching C" CppCon 2015 which I found very illuminating when approaching C++ professionally for the Nth time

Thread Thread
kaeptnkrunch profile image
Stephan B. R. Langenau Author

Thanks. I will look after the video. 👌

Thread Thread
Sloan, the sloth mascot
Comment deleted
selectiveduplicate profile image
Abu Sakib

Would look into the video. And I agree if the goal is to learn C++, then dive right into it. But speaking from an academic perspective, I haven't seen C++ taught first-hand anywhere. Usually it's C (or something other) for introduction to the art, then Java or C++ or whatever. I had to learn C in my university's introductory course.

Collapse
kaeptnkrunch profile image
Stephan B. R. Langenau Author

Thanks. We will see how this happens. But I guess this will need a lot of time. Buts that's what I expected.

Collapse
mcartoixa profile image
Mac

I used to code in C++and I loved it once I got to understand it. It is incredibly powerful but also very demanding (part of the appeal I guess). As Bjarne wrote (paraphrasing here): it easy to shoot yourself in the foot with C. It is more difficult with C++ but when you do you will likely blow your whole leg off.
In the end I found too difficult to embrace this language in environments where fellow developers where not that into bettering their knowledge and their craft. If you are, my recommendations from a looong time ago are to read Bjarne Stroustrup's The C++ Programming Language (so much more than a book about C++) and Scott Meyer's Effective C++ series.

Side note: .NET now runs everywhere.

Collapse
kaeptnkrunch profile image
Stephan B. R. Langenau Author

Hey thanks,
I work as an car engineer. So a lot of C/C++, VBA and Python. I choose C++ after reading a book about it and like I mentioned because of the system relevance. But your books are on my reading list now. Thanks

Collapse
eelstork profile image
Tea

Now, reading the comment "if you understand C you understand C++" ...
Almost like saying that when you understand physics, you understand quantum mechanics.
C is a tiny signboard on the road to learning C++

Collapse
kaeptnkrunch profile image
Stephan B. R. Langenau Author

Yeah, maybe I expressed myself a little vaguely.

Collapse
pjotre86 profile image
pjotre86 • Edited

I agree that the tiobe index shouldn't be the only reference for choosing what programming language to learn even though it's not completely meaningless. In general I'd suggest to choose a language fitting to whatever area you want to work in. If you're into web development then C++ might not be an optimal choice for example.
One more thing: the system-proximity of C++ actually makes it less universal regarding its applicability.

Collapse
kaeptnkrunch profile image
Stephan B. R. Langenau Author

I work with cars. I work at ford as an engineer. So a lot of VBA and C/C++.

Collapse
sejutisharmin profile image
Sejuti Sharmin

C was my first ever programming language and C++ was my second. I self taught myself C but C++ I learned at my university. The lecturer taught me so well that I don't think I am ever forgetting my C++ knowledge. I had no idea that a lot can be done with C++. Thank you for writing this article. It's been very insightful.

Collapse
kasunkoswattha profile image
Kasun

C# with .Net Core is platform independent.

Collapse
kaeptnkrunch profile image
Stephan B. R. Langenau Author

Ah good to know. Thanks 😉

Collapse
eelstork profile image
Tea

C++ is a language worth knowing and pretty unique in being at once high level and close to the metal. Having said that, you'll also want to know another, less tedious object language. For systems Rust is also worth looking into as it doesn't carry C++'s burdensome legacies.
Note 1: C# is no longer a Windows-only language. I write C# code daily and rarely touch either VS, VS Code or Windows; runs well on nix and macOS.
Note 2: Python is very much object oriented nowadays.
...have fun!

Collapse
jwp profile image
John Peters

Yes even MSFT is on to Rust.

Collapse
sathishweb profile image
Sathish Ramani

Happy learning! Check out "Thinking in C++" by "Bruce Eckel" also. I found it useful when I learned C++ and OOP for the first time long back. I felt it introduces object-oriented thinking also with C++ in a step-by-step fashion.

Collapse
andrewbaisden profile image
Andrew Baisden

What type of projects will you use C++ for?

Collapse
kaeptnkrunch profile image
Stephan B. R. Langenau Author

I work at a large German car manufacturer and I will use it at work.

Collapse
ashuk profile image
Ash

c++ with bazel = ❤️, I wish more projects had this combo, sadly bazel is cumbersome to newcomers and senior devs with Cmake experience are usually reluctant of making the move over.

Collapse
ravi688 profile image
Ravi Prakash Singh