How hard is leaning C++?

in programming •  6 years ago 

Since there are only few people who know C++ right now, many people are a little intimidated by C++, it is a misconception and it's need to be corrected.
(plus: C++ is irreplaceable in many important areas, so the question of "useful or not" doesn't need to be considered under some circumstances.)

It can be learned!
Although the upper limit of C++ is very high, there is no problem with curved learning. In popular parlance, C++ integrates a variety of programming paradigms, including procedural, object-oriented, generic, functional, and so on.(I've always felt there are more than four). What's more, according to the principle of software, only one programming paradigm (such as procedural) is needed to solve all the problems, so many paradigms are not mathematically necessary. In fact, once you've mastered basic procedural programming and added half of object-oriented techniques, you can solve quite a few problems. For example, when MFC was still popular long ago, most people used C++ just as OO and made colorful applications.

How to learn in curves
Long-term C++ learning is very similar to rock climbing. Although the learning curve seems steep, every step has its roots, so don't expect to fly at the very beginning.
Learning C++ does not require starting from C, but you must be familiar with basic use of Pointers, functions, and so on. This is also the most important point of learning C language. C++ is more restrictive on types, which is less "jumping off" than C, and may be easier to learn. Then there is the class - related part, which is broadly the OO set.
The basic ones are classes, objects, and eventually polymorphism. This part is not too difficult. Just think more and practice more.
Then we will encounter templates and generics. While the upper limit for generic programming is high, the lower limit is also low. If you can properly use generic extensions to extend class's functionality and improve its ease of use, you're halfway there.
There will be STL and common containers at the same time. In a nutshell, you only need to know when to use what container and how to use it well. Going forward, you need to learn as much as you can about the implementation of multiple containers, memory layouts, rules, and so on. Take it one step at a time.
At this point, you have already arrived at the level of a "beginner C++ programmer"!

Possible Obstacles
As long as you take the challenge step by step, you should be able to basically reach the level mentioned above in about a year, but you may encounter some big obstacles in the process, such as: you know how to use "macro", but the complicated ones cannot be understood. You know how to write object oriented, but you can't design properly, use OO Pointers, references, objects, const, operator overloads, but it's a mess. Write out the program memory management is messy, have a crash or leak do not know how to change. All of these problems will happen.
To solve them, just remember one thing -- don't worry about learning fast. It's worth spending 10 times as much time on details. Many of the C++ superstars you see on stack overflow spend vast amounts of time on this. So don't be discouraged.
Summary
To sum up, although the upper limit of C++ is very high, but not terribly hard to learn. As long as you do it step by step, you won't find it difficult to use while learning.
For college students, as long as a reasonable investment in time, will certainly be able to achieve a qualified level of programming in C++. The specific high level depends on your efforts, and the second most important thing is to see whether you have grasped the opportunity to practice more (for example, the graduation project, the large assignment, the teaching and research project and so on are all opportunities). The more you accumulate now, the less barriers there will be in the future.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!