How to become a C + + senior Programmer

Source: Internet
Author: User

The C + + language has been around for almost 30 years since its inception. Admittedly, it is more difficult to learn than other languages. and its difficulty in learning, mainly from its complexity. The use of C + + is now much less than it used to be, with languages such as Java, C #, and Python already replacing C + + in many ways. But there are many places where other languages are completely irreplaceable, focusing on industries that need to run more efficiently, such as games and efficient servers.

Now the number of people learning Java, C # and other languages is much higher than C + +, is mainly C + + entry threshold is too high, may learn for a period of time can not do anything, resulting in confidence is greatly affected, and then give up.

I want to share my own experience to everyone, hoping to help the new couple to take a few detours.

We do not discuss specific technical details here, only that we should learn something.

  First, technical capacity

  1. Language

We want to become a programmer, learn things will be a lot of miscellaneous, but at the beginning must start from the language learning, and learning language is the most crucial to choose a book, school textbooks even if, there is no good written. In this grand Recommendation "C + + Primer", the book is very thick, content is very rich, the knowledge of the explanation not only stay on the surface. If the book can be read patiently, the language is basically no big problem, the future study also laid a good foundation.

  2. GUI

There are many kinds of GUI libraries in C + +, such as MFC, WTL, WxWidgets, QT. These GUI libraries all have their own characteristics, in fact, we just need to understand a kind of, as long as a deep understanding of a GUI library, when needed to learn the other is enough, essentially almost, soon you can get started. Although the design of MFC has a lot of problems, but as a primer is good, but also a lot of learning materials, encountered problems are also good solution.

  3. Data structures and algorithms

Many people neglect the data structure and algorithm knowledge, especially some programming language libraries do very well, almost do not need to implement some of their own data structures and algorithms, resulting in many programmers now do not pay attention to or even ignore this knowledge. However, this knowledge is very important when we want our programs to run faster and use less memory. Many programmers do not pay attention to this at the beginning, but after a few years of work, they come to cram the knowledge.

You may not need to learn too much at the beginning, but basic data structures and algorithms must be known.

Recommended "Data structure (c language version)", in the data structure and algorithm learning, it is best not to care about the object-oriented skills, the C language to achieve, so that more attention to the content of the algorithm itself.

  4. Database

Learn the basics of the database, and master a database use, it is recommended to use MySQL, and it is best not to use some packaged interfaces, but should be directly with the database API provided by MySQL, may be more in-depth understanding of the database.

  5. Parallel

CPU frequency has been unable to follow Moore's Law, now the trend of CPU development is multi-core. Both multi-threaded and multi-process are designed to better leverage CPU performance and provide a better user experience. This requires that if we want to write an efficient application, we must involve parallel computing. Spend more energy on parallel computing, there will be rich returns.

  6. Network programming

The network programming referred to here refers to the socket programming. Now the application of C + + is doing a lot of server development, how to develop a high concurrency, high throughput, highly stable server is what we have to consider.

  7. Design mode

Design patterns are not specific techniques, but more about how to make code easier to read, to expand, and to use more easily.

  8. Use of libraries

The C + + standard library only provides some very basic functions, so we often introduce some third-party libraries. Perhaps the most famous is the boost library known as the Quasi-standard library, which provides everything we do in programming, text processing, algorithms, networking, multithreading, image processing, and more. Others also have a library of some kind, such as the ACE is the network communication aspect, TinyXML is parsing the XML, the OGRE is the graphics rendering aspect.

  9. Knowledge of the operating system

Programmers need to understand the operating system knowledge and ordinary users are not the same, a master is needed to understand the operating system in all aspects, rather than stay on the use level. As to what knowledge should be learned, Windows core programming, Linux to see the deep understanding of the Linux kernel, you should be able to know what you should learn.

  Second, the project experience

If the above content is proficient, it is a more powerful programmer. But for programmers, project experience is more important. A good project allows you to combine various technologies and learn new knowledge. For example, do the game need to learn graphics knowledge, do the player to learn the codec knowledge.

Many programmers ignore the experience of the project and simply talk about technical ability, which is wrong. In fact, this is the relationship between theory and practice, technology is theoretical knowledge, do the project is practice, the theory of practice has known role, practice can deepen our deep understanding of the theory.

  Third, communication skills

The ability to communicate is the soft power that a senior programmer needs to have.

What I'm trying to say here is that the ability to communicate is not generally a glib, eloquent, and eloquent speech. But the ability to communicate based on technology.

How to become a C + + senior Programmer

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.