System from scratch learning C / C ++, C ++ learning route system

C ++ is often used in back-end servers, back-end mobile Internet, the classic Windows interface development, mobile Internet terminal interface development, cross-platform interface development, graphical analysis, system architecture, application design, and now the most popular distributed architecture and other new technologies field, C / C ++ engineer must have knowledge of the mind map.

System from scratch learning C / C ++, C ++ learning systems route
a primary entry stage

At the beginning of the entry, first thing to do is to develop programming and thinking ability by C / C ++ language learning, deep understanding of process-oriented and object-oriented way of thinking. At this stage you need to learn:

① C language

Data type, variable, memory layout, base pointer;

String, one-dimensional array, two-dimensional array;

A pointer, two pointers, three pointers, N-level concept of pointers, pointers and arrays array pointer;

Structure, use of a file;

Packaging and design of dynamic libraries;

Function pointer to the callback function.

System from scratch learning C / C ++, C ++ learning systems route
② C ++ language

Object-oriented programming ideas;

Packaging, construction and destruction, static members, the class management objects;

Class configuration (with reference constructor, constructor with no arguments, copy constructor, a default constructor) and destructor;

Dynamic management objects, functions friend, a friend class, operator overloading;

C ++ compiler object management model analysis;

Dynamic management object class (new / delete);

Friend functions and friend class;

Operator overloading (unary, binary operators, operator overloading difficulty, project development of operator overloading);

Class inheritance, multiple inheritance and ambiguity, virtual inheritance;

(Concept, meaning, principle analysis, multi-state case) polymorphism;

Virtual function, pure virtual function, an abstract class (abstract class oriented programming ideas cases);

Function templates, inheritance class template, templates;

C ++ type conversion;

C ++ input and output flow (standard I / O file I / O character stream I / O);

C ++ exception handling (exception mechanism, the exception type, exception variable, exception hierarchy, the standard library exception);

System from scratch learning C / C ++, C ++ learning route system
③ common favorite IDE development tools

Windows platforms such as VC Series: VC ++ 6.0 (relatively old); Visual Studio2013, Visual Studio2015; Mac platform XCode series, as well CodeBlock, Attached used to set some advanced editor Notepad ++, EditPlus, UE and some other development tools and Some use common shortcuts.

Learning difficulty factor at this stage is unlikely, then grasp the content, you can do some simple little project. Of course if you want to find a job with these skills, then indeed more difficult. Then you should also work harder in the second stage for further study.

System from scratch learning C / C ++, C ++ learning systems route
two, C / C ++ Development Advanced

The goal of this phase is to meet the basic requirements of C / C ++ software engineers to develop industry, this stage is that we move towards C / C ++ development of advanced road, it is a let yourself get a decent salary job chips.

If you have knowledge and terminology do not understand or have not seen in this part of the collection can be first article for later reading carefully.

So at this stage, what we should grasp it, read on:

① C ++ STL's Advanced

STL = Standard Template Library, namely the Standard Template Library. This is the best tool to improve development efficiency. By learning this stage, you should have a generic programming skills, understanding the container class application mode in the C ++ language, and all use STL class master.

System from scratch learning C / C ++, C ++ learning route system
② C ++ design patterns of Advanced

The most important factor in determining the success of a project is the overall project design, through this phase of the study, object-oriented programming can master the important part, it is a technique where the pre-coding modeling. Singleton; factory mode; proxy mode; iterative mode, you have to master all these oh.

Learning System scratch C / C ++, C ++ route learning system
③ basic data structure of the advanced C ++

This is the best part of all programming languages ​​to be learned, one of the basic procedures of.

Sequential storage, chain stores, circular list;

Doubly linked list, the stack (and chain sequence), queues (order and chain);

Application stack, basic concepts and tree traversal, binary tree;

Sorting algorithm, and the algorithm return, select, insert, rapid, Hill.

These contents Did you know?

System from scratch learning C / C ++, C ++ learning route system
UI interface development of advanced ④ C ++

Grasp the QT library architecture, graphical interface development model;

QT development skills to master, messaging, graphics processing;

QT master network programming, UDP, TCP use;

QT master file handling, serialization;

QT master in windows, linux, ios, android transplantation under different platforms.

System from scratch learning C / C ++, C ++ learning systems route
⑤ C ++'s Advanced Unix / Linux web server

Master the Unix / Linux platform development approach;

Skilled use of system calls;

Skilled Unix / Linux memory management, process, thread scheduling;

Familiar with the network server development approach, to prepare skilled TCP, UCP web service program;

Master synchronous / asynchronous IO model for use in network programming.

System from scratch learning C / C ++, C ++ learning route system
database development of advanced ⑥ C ++

Master the practical skills of the SQL language. Oracle, use the MySQL database.

If you can master the skills listed above, have the ability to solve complex problems and technical difficulties, and you can independently develop some of the more complex functions module, so have the honor to tell you that you have reached the intermediate level, salary over ten thousand pairs you is simply a piece of cake.

System from scratch learning C / C ++, C ++ learning systems route
three, C ++ development of advanced

You read here, I believe you have higher goals. That is the current hot whole stack development engineer, knows both front and backstage pass. Quickly locate and solve problems for them has been a piece of cake, is commonly known as the mysterious Daniel, it will only see their shadows when the technology research company.

① knowledge and skills needed to work in this stage of software development is relatively difficult, a senior software engineer coding and regulatory proficiency needed to achieve certain requirements;

② have a certain project capacity (including the ability to debug, document writing ability, ability tests) and overall technical quality (including the understanding of the software life cycle, understanding of design patterns, the necessary industry knowledge and experience, etc.) ;.

③ understand the mainstream back-end technology and front and rear end collaborative approach, from a global perspective to understand the entire life cycle of the project.

Guess you like

Origin blog.51cto.com/14754632/2479875