Search code examples
c#c++programming-languages

Should a programmer have mastery over C++


I was wondering if it is necessary for programmers to have expertise on at least 1 programming language?

Programming languages like C#, java, VB.Net etc change every year or two. Should a programmer have mastery over C++, which is a stable language and rarely undergoes changes?

I am a C# developer and using it for about 7 years now, I still don't have mastery on it.

EDIT I think my question is being misunderstood. I am not against changes or evolution. I love the new features and abstraction provided by languages such as C#, VB, Java. And I keep waiting for new features if it makes a programmers life easy. But this fact also make this languages very difficult to master. They are continuously evolving. Languages like C++ have slow evolution cycle. So given this scenario, Is it helpful to be master of C++? This is what my original question meant. Note:- Based on the answers by friends below, I have understood that languages and framework are tools for expressing the concepts. Also it might be a good idea to express the concepts in different programming languages.


Solution

  • Programming languages like C#, java, VB.Net etc change every year or two.

    They don't "change" but evolve. Your knowledge and experience are not lost.

    Should a programmer have mastery over C++, which is a stable language and rarely undergoes changes?

    Programming is all about new and change. If you don't like it, consider another profession.

    I am a C# developer and using it for about 7 years now, I still don't have mastery on it.

    If you were to achieve mastery, the life would become boring and maybe even pointless. Maybe it's not the target but the road that matters?

    EDIT: After reading your comments I feel that you misattribute the volume of the .NET class library to the complexity of the C# language itself. Don't mix them. The C# language is relatively simple, it's easy to "master". What you're mentioning as useful methods of the char datatype are just helper methods from the .NET library. It's one of the assets of the platform. It's what makes .NET developers so productive, because they don't have to waste hours digging for third-party libraries to make basic operations for them: XML, imaging, networking, databases and more it's all available directly from the .NET library. Naturally, its sheer size might frighten you and provide an impression of it's being endless. It ain't! Just use what you need and leave the rest be.