Search for an objective Language
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.
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 ...
Top comments (27)
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.
Thanks. C is also a good way to start. Normally when you understand C you understand also C++.
I mean when you understand the basic principles of programming it is easier to learn a new programming language.
maybe, maybe not. If you get into modern C++ (from C++11 onwards) the two are almost like two different languages :)
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.
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++
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
Thanks. I will look after the video. 👌
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.
Thanks. We will see how this happens. But I guess this will need a lot of time. Buts that's what I expected.
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.
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
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++
Yeah, maybe I expressed myself a little vaguely.
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.
Yes even MSFT is on to Rust.
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.
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.
C# with .Net Core is platform independent.
Ah good to know. Thanks 😉
What type of projects will you use C++ for?
I work at a large German car manufacturer and I will use it at work.
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.
Anyone can try this :
I work with cars. I work at ford as an engineer. So a lot of VBA and C/C++.