How to become a C + + advanced Programmer

Source: Internet
Author: User

Turn from: http://www.kuqin.com/language/20111122/315219.html

C + + This language from the birth to today has gone through nearly 30 years. Admittedly, it is more difficult to learn than other languages. and its difficulty in learning is mainly due to its complexity. C + + is now used a lot less than before, Java, C #, Python and other languages in many ways already can replace C + +. But there are many places where other languages are completely irreplaceable, focusing on industries that require high efficiency, such as games and efficient servers.

Now learning Java, C # and other languages, the number of people far higher than C + +, mainly C + + entry threshold is too high, may learn after a period of time can not do anything, leading to confidence hit, and then give up.

I want to share my own experience with you, hoping to help the new couple to take less detours.

Here we do not discuss specific technical details, just say we should learn something. first, technical capacity 1. Language

We want to become a programmer, learn a lot of things will be very miscellaneous, but the beginning must start from language learning, and learning the language is the key to choose a book, the school textbooks even, did not write well. In this grand Recommendation "C + + Primer", the book is very thick, content is also very rich, the explanation of knowledge not only stay on the surface. If this book can have patience to read, the language is basically no big problem, to later 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 have their own characteristics, in fact, as long as we understand a kind of it, as long as a deeper understanding of a GUI library, the need to learn the rest of the time is enough, essentially almost, will soon be ready to start. Although the design of MFC has a lot of problems, but as a primer is good, but also a lot of learning materials, encounter problems also good to solve. 3. Data structure and algorithm

Many people have neglected the knowledge of data structure and algorithm, especially the library of some programming languages do very well, almost do not need to implement some data structure and algorithm, cause now many programmers 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 have less memory footprint. Many programmers are not paying attention to these things at the beginning, but after a few years of work, they have to cram this knowledge.

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

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

Learn the basics of the database, and master a database use, recommend the use of MySQL, and it is best not to use some packaged interface, 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 more core. Both multithreading and multiple processes are designed to better leverage CPU performance and provide a better user experience. This requires that if we want to write an efficient application, it must involve parallel computing. Spend more energy on parallel computing, and there will be plenty of rewards. 6. Network Programming

The network programming referred to here refers to the socket programming. Now many C + + applications are in the server development, how to develop a high concurrency, large throughput, high stability of the server is we have to consider. 7. Design Pattern

Design patterns are not specific technologies, but more about how to make your code easier to read, expand, and easier to use. 8. Use of the library

The C + + standard library provides only a few basic functions, so we often introduce some third-party libraries. The most famous, I'm afraid, is the boost library called the Quasi-standard library, which provides all the techniques we use in programming, text processing, algorithms, networks, multithreading, image processing, and much more. Others also have books on one side of the library, such as ACE is network communication, TinyXML is parsing XML, ogre is 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 learn more about the operating system in all aspects, rather than stay on the use level. As for what knowledge should be learned, Windows to see "Windows core Programming", Linux to see "In-depth understanding of the Linux kernel", should be able to know what they should learn. second, project experience

If the above content is proficient, it is also a more powerful programmer. But for programmers, project experience is more important. A good project allows you to use a variety of technologies and learn new knowledge. For example, to do the game will 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 capabilities, which is wrong. In fact, this is the relationship between theory and practice, technology is theoretical knowledge, do project is practice, the theory of the practice has a role, practice can deepen our in-depth understanding of the theory. third, communication skills

Communication skills are the soft power of a senior programmer.

I would like to say that the communication skills are not generally speaking of the glib, rhetoric, talk about the hype. But based on the technical basis of communication skills.

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.