Learning programming is not a matter of overnight, every ox people need to continue to learn and start writing programs, in practice, constantly thinking about the knowledge learned, and combined with the practical application category optimization method. For more than ten years, although I am not a first-line programming expert, I have my own understanding and thinking. Program design emphasizes the unity of knowledge and action, knowledge is the foundation of behavior, behavior norms.

The first is realm, deep understanding of syntax, functions, interfaces. This stage, is a serious study of C++ after a year to achieve. We can get a preliminary understanding of the dual realm of data structure and algorithm. If you’re already at this level, congratulations on getting through the programming door, and there are many better challenges waiting for you.

The second level, in-depth understanding of objects, data structure algorithms can design objects, implement a range of functions, and can decouple different objects. At this point, data structures and algorithms are very important, and they are the building blocks for your massive systems. Good data structures can make your code and interface more elegant, and good algorithms can make your programs run efficiently.

This data structure can be applied to at least stack, queue, linked list, hash table, binary tree, red-black tree and how to plan memory allocation dynamically.

Computation part: dynamic programming, greedy method, amortized analysis, graph method.

A large piece of software should be made up of many small modules with no loops between them, making it easy to cut up functions. So modular design is very important, just like the architectural engineer, they are familiar with the modular design of the columns and beams in the building, so that when you build a building, you can build a solid building from the base up.

And an understanding of design patterns can help you expand and maintain local designs more easily. You can make the modular design pattern more reliable, which is the foundation of good software.

Fourth realm, in-depth understanding of how framework design framework, how to decompose modules, how to define module interface. All of this should be understandable at this level. In addition, it is necessary to have a certain understanding of patterns, including MVC,MTV,MVP,CBD,ORM and other patterns. Road to simple, various modes have their own advantages, the way to use, stored in the bottom of my heart, there is no need to model and model, epee blade no edge, big qiao not work, to simplify the framework of the various interfaces, so that the framework is easy for others to use, to improve productivity.

Free C++ learning materials