To learn C / C ++ programming, traveled the world are not afraid

C ++ the language from birth to today has gone through nearly 30 years. Admittedly, it's a higher learning curve than other languages. And it's difficult to learn, 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 ++. But there are many places that other languages ​​can not be replaced completely, mainly in the need to run more efficient industries, such as games, efficient server.

 

Shu learning program to learn C / C ++, traveled the world are not afraid!  Daniel teach you how to learn C ++

Now the number of learning java, C # and other languages ​​is much higher than C ++, C ++ is the main entry threshold is too high, it may be some time after learning also can not do anything, leading to confidence dealt a heavy blow, and then give up.

I want to share my own experience to you, hope to help newcomers less take some detours.

Here we do not discuss specific technical details, saying only that we should learn something.

First, the technical capacity

1. Language

We want to be a programmer, things will be a lot to learn very complex, but must start from the beginning to start learning the language, and the most crucial way to learn a language you've chosen a book, even if school textbooks, there is no well written of. In this highly recommended "C ++ Primer", this book is very thick, the content is also very rich, for knowledge to explain not only stay on the surface. If this book will have the patience to read, language basically no big problem, but also for future learning and lay a good foundation.

2. GUI

There are aspects of C ++ GUI library are many, such as MFC, WTL, wxWidgets, QT. The GUI libraries have their own characteristics, in fact, as long as we first understand one kind can, as long as the in-depth understanding of a GUI library, when you need to learn other enough, are similar in nature, will soon be to get started. MFC While there are many questions on the design, but as a beginner or good, and a lot of learning materials, Ye Hao solve problems encountered.

3. Data structures and algorithms

Many people ignore the knowledge of data structures and algorithms aspects, especially in some programming language library doing very well, almost do not need to go to achieve some data structures and algorithms, resulting in a lot of programmers do not pay attention even now ignore this knowledge . But when we want our program to run faster, uses less memory, these knowledge is very, very important. Many programmers are beginning not pay attention to them, but a few years later to work tutoring knowledge.

Shu learning program to learn C / C ++, traveled the world are not afraid!  Daniel teach you how to learn C ++

 Xiao Bian recommend a language school C / C ++ learning skirt [767,865,598], whether you are big or small white cow, or would want to switch into the line can come together to learn to understand progress together! The inner skirt has development tools, a lot of dry goods and technical information to share!

The most likely do not need to start learning too deep, but the basic data structures and algorithms must know.

Recommend "data structure (C language version)" in the learning data structures and algorithms, it is best not to care about object-oriented aspects of skills to use C language to achieve, so more attention to the content of the algorithm itself.

4. Database

Learning the basics of the database, database use and master a recommended mysql, but it is best not to use some packaged interface, mysql database api should provide direct, may be aware of the database will be more in-depth.

5. Parallel

cpu frequency can not follow Moore's Law, and now the trend is a multi-cpu core. 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 application, must involve parallel computing. Spend more energy on parallel computing it, there will be rich rewards.

6. Network Programming

Network programming is referred to herein means a socket programming. Now C ++ applications many of which 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

Design patterns are not specific technology, more is how to make the code easier to read and better extension, easier to use.

 

Shu learning program to learn C / C ++, traveled the world are not afraid!  Daniel teach you how to learn C ++

8. use the library

C ++ standard library provides only some very basic functionality, so we often introduce some third-party libraries. The most famous is probably called a quasi standard library boost library that provides all aspects of the technology used in our programming, text processing, algorithms, networking, multithreading, image processing and so on, almost all-encompassing. There are also some other books on one aspect of the library, such as ACE is the communication network, TinyXML parse the xml, OGRE graphics rendering is respect.

9. operating system knowledge

Programmers need to understand the operating system and knowledge of ordinary users is not the same, is a master requires a deep understanding of all aspects of the operating system, rather than remaining at the level of use. As should be aware to see "windows core programming" on what knowledge, windows, linux see the "in-depth understanding of linux kernel", you should be able to know what they should learn.

Second, the project experience

If you are proficient in the contents above, it can be considered a more powerful programmer. But for programmers, project experience is more important. A good project lets you put the integrated use of various technologies, and learning new knowledge. For example, do you need to learn the game graphics, the player do you want to learn codecs area.

Many programmers will ignore the experience of the project, and simple to talk about technical ability, this is wrong. In fact, this is the relationship between theory and practice, technology is the theory of knowledge, to do the project is to practice, practice, theory of the role there is to know, practice can deepen our in-depth understanding of the theory.

Shu learning program to learn C / C ++, traveled the world are not afraid!  Daniel teach you how to learn C ++

 Xiao Bian recommend a language school C / C ++ learning skirt [767,865,598], whether you are big or small white cow, or would want to switch into the line can come together to learn to understand progress together! The inner skirt has development tools, a lot of dry goods and technical information to share!

Third, communication skills

Ability to communicate is a senior programmer to have soft power.

I want to say here is not the ability to communicate the general said articulate, rhetoric, talking hype. But to build communication skills in technology foundation.

These are the C / C ++ can do 

Server development engineers, artificial intelligence, cloud computing engineer, information security (anti-hacker hacking), big data, data platform, embedded engineers, streaming media servers, data de-control, image processing, audio and video development engineers, game servers, distributed systems, games and other auxiliary

Guess you like

Origin www.cnblogs.com/xiaochen520/p/11311200.html