Hacker News new | ask | show | jobs
by User23 1922 days ago
> To be honest if you know C#, Java or ObjectiveC you already know the core 90% of C++.

If we change 90% to about 20% then this becomes a true statement. Yes, you can get toy code to compile and apparently work by pretending C++ is Java with some low level stuff that can be ignored, but that's nowhere near proficiency. The language is full of seemingly obvious concepts like static initializers that function unlike what you'd expect from working with C#, Java, or even C.

> IMO C++ got some very bad rep for no reason at all: it got mythologized into a "very difficult arcane language that people makes meme about".

It got that reputation on account of having an 1853 page standard that even members of the committee admit no one of them fully understands.

> C++ just makes this even more explicity(sic) since YOU can decide if a class is a copy-by-value or a reference on the fly

And this is why it's such a kitchen sink standard. The C++ community is so large and has so many stake-holders relying on diverse problem domains and programming paradigms that the standard has to permit the developer much greater control than higher level languages like Java.

In closing, to speak to the original poster's question, becoming proficient in C++ is in no way a career limiting move, and will definitely open up some opportunities. However, becoming an expert is a very deep rabbit hole to go down. Even a level of proficiency that will allow you to work on a large project will take some serious intellectual commitment. One way this is apparent is how the C++ community has its own large and distinct conceptual lexicon that for the most part has not worked its way into the general programming community. I personally found working on large C++ projects intellectually gratifying, so I would recommend helping out on the project for a year or so to start. That's enough time to get a very basic understanding of the language and see if it's something you really want to become an expert at. And even if you don't, you'll learn a lot.