How to Become A Good High-Level C++ Programmer


InShortViral: C++ this language from birth to today has gone through nearly 30 years. Admittedly, it is difficult to learn than other languages is high.
The C++ this language from birth to today has gone through nearly 30 years. Admittedly, it is difficult to learn than other languages is high. And it’s learning difficulty, mainly from its complexity. Now the use of C++ has a lot less than before, java, C #, python and other languages in many respects can replace C++. However, there are many places that other languages can not be replaced completely, mainly in the need to run more efficient in the industry, such as games, and efficient server.
Now the number of learning java, C # and other languages is much higher than C ++, C ++ main entry threshold is too high, you may learn sometimes after not also do something, causing a heavy blow to confidence, and then give up.

How to Become a Good High-Level C++ Programmer

We want to share some of the experience from the people who had already tried to learn the same but the circumstances caused failed everyone, we want to help newcomers less take some roads.
Here we do not discuss specific technical details, saying only that we should learn something.

First: The Technical Capability

#1 Language

We want to be a programmer, can learn a lot of very complicated things, but must start from the beginning to start learning the language, and learn the language of the most critical than the selected book, school textbooks even, did not write well of. In this highly recommended “C ++ Primer”, this book is very thick, the content is also very rich, to explain the knowledge of not only stay on the surface. If you have the patience to read this book, the basic language is no big problem for future learning also laid a good foundation.
#2 GUI
C ++ GUI library terms there are many, such as MFC, WTL, wxWidgets, QT. These GUI libraries have their own characteristics, in fact, as long as we first understand, as long as the in-depth understanding of a GUI library we can, when you need to learn other things which presently not enough, in essence, are similar, will soon be to get started. MFC although there are many design problems, but as an entry is good, also you can gain a lot of information, solve problems encountered any how.
#3 Data Structures and Algorithms
Many people ignore the structural aspects of the data and knowledge of algorithms, especially in some programming language library that has done a very good, almost do not need to go to achieve some of the data structures and algorithms, leading many programmes do not pay attention to even ignoring this knowledge. But when we want our program to run faster and effective without using less memory, this knowledge is very much important. Many programmes are just the beginning and eventually they do not pay much attention to these languages, but after working for several years they cram knowledge.
The most likely do not need to start learning too deep, but the basic data structures and algorithms must know.
Recommended data structure C language version in the data structures and algorithms learning, it is best not to care about the object-oriented aspects of the technique, use C language to achieve, so can be more concerned about the content on the algorithm by itself.
#4 Database
Learning the basics of the database, becoming the master of database; it is recommended to use MySQL, but it is best not to use some packaged interface and database API which should be provided directly by MySQL, the database may be more in-depth understanding.
#5 Parallel
CPU frequency has been unable to follow Moore’s Law, and the trend now is to develop multi-core CPU. Whether it is multi-threaded or multi-process, it is to make better use of CPU performance, providing a better user experience. This requires us if you want to write efficient applications, is bound to involve parallel computing. Spend some energy on parallel computing it, there will be rich rewards.
#6 Network Programming
Network programming referred to here refers to socket programming. C ++ applications now many of them are doing server development, how to develop a high-concurrency, high throughput, high stability of the server that we want to take into account.
#7 Design Patterns
A design pattern is not a specific technology, more is how to make the code easier to read and better extension, easier to use.
#7 Using The Library
C ++ standard library provides only some very basic features, so we often introduce some third-party libraries. Is probably the most famous is called quasi-standard libraries boost library that provides various aspects of the technology used in our programming, text processing, algorithms, network, multithreading, image processing, and so on. There is also some other monograph on one aspect of the library, such as ACE is the communication network, TinyXML is to parse the XML, OGRE graphics rendering area.
#9 Knowledge of The Operating System
Programmers need to understand the operating system knowledge and ordinary users are not the same, a master needs to understand all aspects of the operating system, rather than stay in the use levels. As should be understood to see “windows core programming,” what knowledge, windows on, Linux’s look at “in-depth understanding of Linux kernel”, should be able to know what you should learn.

Second: The Project Experience

If you are proficient in the contents of the above, it can be considered a more powerful programmer. But for programmers, project experience is more important. A good project allows you to carry out the integrated use of various technologies, and can learn some new knowledge. For example, do you need to learn the game graphics, and make players want to learn codec regard.
Many programmers will ignore the experience of the project, but simply the ability to talk about technology, this is wrong. In fact, this is the relationship between theory and practice, the technology is the theory of knowledge, to do the project is to practice, practice there is to know the role of theory, the practice can deepen our in-depth understanding of the theory.

Third: Communication Skills

Ability to communicate is a senior programmer to have soft power. I want to say here is not the general said communication understandable, speech, speak hype. But on the basis of technical communication skills.

Post a Comment

0 Comments