Now that we have your attention, let’s clear the air. Yes, most programmers today work on Python, Rust, or other new programming languages. You don’t need to master C++, or for that matter any programming language to be a programmer anymore. On the other hand, a person who claims to have the “knowledge of C++” is probably making tall claims.
Register for Future Ready Conference >>
The discussion began with a 2010 blog by Louis Brandy titled, Never trust a programmer who says they know C++. Brandy explains that programmers who shifted from C to C++ would believe they know the language because they can quickly get proficient with it. “They are lying. As a programmer continues in C++, they go through this valley of frustration where they come to terms with the full complexity of the language,” he claimed.
“Just mention that C++ is an extremely large and complex language, and the post-valley people will give you 127 different tiny frustrations they have with the language. The pre-valley people will say ‘Yes, I guess. I mean, it’s just C with classes’.”
Hold on, let’s discuss
First, it’s an internal joke. Second, still, there are a lot of arguments about it.
In a Reddit thread, programmers discussed the validity of this claim. “Just ask for their skills in C++ on a scale of 1-10,” and if the answer is higher than 6, we need to talk about the details. The user advises not to use numbers when defining your skill level, but just communicate with the other person what specifically you are proficient with. These days not many people ask for such skills anyway.
In the current machine learning world, it seems like the only people learning C++ today are for the lore and for selling books. “The rest of us just tread water and get work done,” said a Reddit user.
It holds true. Several people narrated their stories about putting up C++ on their resume, and then when asked a specific question about it, failed to answer it. This is probably because C++ is a vast language. Knowing every detail of it is not required to get the job done. Most developers choose it over Python or any other language today just for its speed.
People who have been using the language for decades still don’t claim to know the language 100%. “There are so many hidden intricate pitfalls.”
Even Bjarne Stroustrup, the author of the book C++ Programming Language, does not claim to know C++ completely and there are probably only four people in the world who know it. He has said previously that a majority of the people who use C++ can’t write a simple class without leaks or errors.
To C or not to C
The truth about the current programming world is that you can choose any language that works for you. Anything other than that is just “language bullying”. Programming languages are, after all, just tools that a programmer should learn if he needs to. If Python works for you, why go the C++ route?
A lot of developers already believe that C++ is a dying language. But that is definitely not the case. If a developer needs to build something from scratch like operating systems, game development, and several other foundational cases, C++ is still believed to be the go-to language for that. It can just be a pain to use it in several modern developments.
“In the current world, all you need is the knowledge of object-oriented programming or functional programming. Anyone saying anything else is just nonsense,” explained a user on HackerNews.
Obviously very few people, or possibly none, know 100% of any programming language. With the complexities and constantly changing paradigms of the language, C++ just takes it a step further. “Nobody claiming to know C++ is claiming to know 100% of it,” said a user on HackerNews.
More importantly, the discussion clearly points out the high standard that C++ programmers have seen at. No one would question a programmer’s capabilities in any other language.
Most C++ programmers have this mindset — “If I follow these rules, avoid XYZ, and don’t get too fancy, I can avoid aiming the gun at my feet”. It is clear, the best answer to give when asked if you know C++ is to say, “I know enough to know I don’t know”.