As of September 2020, C++ ranks fourth in the list of programming languages. Since C++ is not as developed as Java and Python, why should we learn C++? In the case of excellent programming languages such as Java and Python, what is the charm and advantage of C++? Today we will know about it:

! [](https://upload-images.jianshu.io/upload_images/24563956-8f17ead7295eaa4d.jpg?imageMogr2/auto-orient/strip%7CimageView 2/2/w/1240)

So should we learn C++ or not? Of course we do, and we have to. Why is that?

C++ has a lot of baggage, but it has good things to learn, such as the points mentioned in Rust language reference (it’s better if you learn Rust directly).

The ABI behind C++ (including object model, exception implementation, etc.) is also useful for learning other language implementations;

Neither of these are sufficient reasons, of course. I think the best reason is — you can’t get away with C++ a lot of the time:

I write JS – Chrome V8, chakra, WebKit all C++ and all modern C++;

I write a Swift/Rust… — left Clang/LLVM, all C++ 11;

I write Unity — guess what, Unity is written in?

I write C#/Java – guess again, CoreCLR/ mainstream JVM etc in what?

I wrote C — CLang C++, Windows UCRT C++, and GCC gradually added C++;

I do machine learning/deep learning /… What does TensorFlow & Caffe say?

I do OJ — liu Rujia’s book, as well as “Challenge programming competition”, in what language to complete the example?

… 100,000 + words are omitted here

! [](https://upload-images.jianshu.io/upload_images/24563956-3f1abf698da4fd8d.png? imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

There is another one, although it is difficult to learn C++, but because of this, the salary of C++ is also high, netizens have said to learn C++ with a high salary, because:

If the technical force has 3-5 years of work experience, the first-tier city annual salary of 200,000 to 300,000 is no problem. Just graduated, there is no foundation, the first-tier city 2000-4000 can not be more. Just graduated, solid knowledge of C++, ordinary second-rate, third-rate and fourth-rate undergraduate, first-tier city 3000-6000. Just graduated, C++ solid knowledge, 985 key, 6000-10000 first-tier cities are possible.

Being a programmer is purely mental, and the fact that you only know C++ doesn’t necessarily mean you’re competent. Want to be a programmer, to learn a lot of things, from the bottom of the hardware to understand some, to the upper level of abstraction. Communication, the Internet, so thinking is important, and learning new things all the time. The language is just the tool, it’s the programming thought that counts. Your programming ideas are good, which language is actually very good. If you’re a programmer with a bias toward software development, you’re sure to work overtime. What matters is whether you like programming or not. If you like it, you are happy even if you are tired. What programmers care about is experience, you write more code, development experience, a long time, salary is a qualitative leap. Just entered a line commonly not tall, 3000 left and right sides, have of course take than this much, see individual circumstance, 3 years left and right sides will probably be met in ten thousand yuan left and right sides, grow some more again, annual salary is calculated by hundreds of thousands.

! [](https://upload-images.jianshu.io/upload_images/24563956-0397333868325ebf.png? imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

Who on earth is C++ that experienced people can earn hundreds of thousands of dollars a year?

So just to give you a little bit of C++, usually you have to learn C before you learn C++, so they’re usually called C/C++. C/C++ has been called the “timeless development language” for 40 years. Because C/C++ is widely used in China, it has gained sufficient market share in PC, mobile devices, network, communication, graphics, games, hardware drivers, embedded and other industries. This is mainly due to the stability and cross-platform nature of C/C++. According to the list of programming languages in March 2015, C++ was ranked fourth, while C language continued to occupy the first place. According to the list of programming languages in 2016 and 2017, C/C++ remained in the top 10, which continues to prove the dominance of C/C++ in programming languages.

As one of the most widely used programming languages, C/C++ is in great demand. Among them, there is a large gap of middle and senior engineers who have more than 2 years of working experience and can skillfully write programs and do software analysis and design. Their market demand is greater than that of C/C++ junior programmers, especially in Beijing, Shanghai, Guangzhou, Shenzhen and other cities. According to statistics, the shortage of software development talents in China has reached 350,000 in 2013, and now it is still growing at a rate of 20% every year.

At present, the number of people who plan to be engaged in THE FIELD of C/C++ has increased a lot, and the gap of C/C++ junior talents is suspended. However, the training of middle and senior talents is not accomplished overnight. At present, major IT enterprises are urgently recruiting and scrambling for C/C++ engineers with many years of experience, and C/C++ engineers are still becoming hot property.

! [](https://upload-images.jianshu.io/upload_images/24563956-1282df6f3562f550.png? imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

So what does it take to be a C/C++ software engineer?

C/C + + engineer is to use C/C + + the development tools for software requirements analysis, program design, algorithms, development, test, maintenance, upgrade, etc., senior engineer need to do system architecture, including the analysis of the needs of the business and communication, the function module design, detailed business function implementation and unit test, system maintenance; Participate in product conception and construction design, write requirement documents, technical documents, solve technical problems, etc.

There are a lot of people who can write some C/C++ programs, but there are very few C/C++ engineers who can really meet the requirements of the enterprise. Nowadays, enterprises have high requirements for software. They not only need to use popular technologies, but also use a variety of new technologies. The products they develop are also multifarious and may have to solve various problems. Many novice write more popular procedures (such as examination system, shopping mall, CMS, etc.) more handy, but encounter some new things, new requirements, helpless. Therefore, only with software engineering knowledge, algorithm thinking and development thinking, understanding of common technologies, have the ability to solve various technical problems, but also need to have certain communication and expression ability, can become a truly qualified C/C++ engineer.

Thank you for reading, these are some ideas about why we need to learn C++, in fact, any programming language has its own charm, you need to choose a programming language you like and cater to it, that is, find a way to maximize its charm, then you need to worry about salary?

Well, more C++ related content in C language /C++ learning Jun Yang 6896521686, please pay attention to!