Learning route for C + +

Source: Internet
Author: User

With the development of Internet and Internet + in-depth, after more than 40 years of baptism, C + + has become a noble language, excellent performance makes it a high-level language performance King. And what important role does it play today? Please look down:

Back-end servers, mobile Internet backend, classic Windows interface development, mobile Internet interface development, cross-platform interface development, graphics analysis, system architecture, application design, and now the most popular distribution architecture and other new technology areas.

In such a cow language, do you want to know how to learn and master it? Next, take a look at a mind map that has been compiled by a small compilation of the required knowledge of a C + + engineer.

Beginners to see such a dense knowledge point, is not a bit dizzying it? It is true that C + + is a subject with a wide range of knowledge. You do not need to be nervous about learning C + +, although the content is many, but still the laws. As long as there is enough patience and perseverance, coupled with the right learning methods, you will not be afraid to learn C + +.

That being the case, what needs to be learned from C + + development, and how should it be learned? The next step is to teach you how to develop from a zero-based C + +, quickly into the list of cattle and master the aristocratic language.

First, the initial stage of entry

At the beginning of the introduction, the first thing to do is to develop the programming thinking and the practical ability through the C + + language learning, and to understand the process-oriented and object-oriented thinking deeply. At this stage you need to learn:

①c language

Data type, variable, memory layout, pointer base;

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

First-level pointers, two-level pointers, three-level pointers, n-level pointer concepts, pointer arrays and array pointers;

The use of structures and documents;

The encapsulation and design of dynamic library;

function pointer callback function.

②c++ language

Object oriented programming idea;

Class encapsulation, construction and destruction, static members, object management;

The construction of the class (with parameter constructors, parameterless constructs, copy constructs, default constructors) and destructors;

Object dynamic management, friend function, friend class, operator overloading;

C + + Compiler object management model analysis;

dynamic management of Class objects (New/delete);

Friend function and friend class;

Operator overloading (unary operators, two-tuple operators, operator overloading difficulties, operator overloading in project development);

Class inheritance, multi-inheritance and its ambiguity, virtual inheritance;

Polymorphism (concept, meaning, principle analysis, polymorphic case);

virtual function, pure virtual function, abstract class (for abstract class programming thought case);

function template, class template, template inheritance;

C + + type conversion;

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

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

③ often See common IDE Development tools

such as Windows Platform VC Series: vc++6.0 (more ancient), Visual Studio2013, visual Studio2015;mac platform of the Xcode series, and Codeblock, with some advanced editor notepad++, Some common settings for development tools such as Editplus,ue and the use of some popular shortcut keys.

This stage of learning difficulty coefficient is small, after mastering these content, can do some simple small projects. Of course, if you want to use these skills to find a job, it is quite difficult. You should also study the second stage in addition.

Second, C + + development Advanced

This phase of the goal is to meet the basic requirements of the C + + software engineer Development industry, this stage is our development of the C + + process to the advanced road, but also to find a decent salary for the work of the chips.

If this part encounters the knowledge point and the noun which does not understand or has not seen, may first the article collection, for later study carefully.

So at this stage, what should we grasp and continue to look down:

C + + Advanced STL

STL = Standard Template Library. This is the best tool for improving development efficiency. By learning this phase, you should master the generic programming techniques, understand the application patterns of container classes in the C + + language, and master the use of all STL classes.

C + + Advanced design Mode

The most important factor to determine a project's success or failure is the overall design of the project, through this stage of learning, can grasp the important aspect of object-oriented programming, is the technique of pre-coding modeling. Single-case mode, Factory mode, proxy mode, iterative mode and so on, these are all you have to master.

C + + The Advanced Data Structure Foundation

This is one of the most learned parts of all programming languages, the basis of which is the composition of the program.

Sequential storage, chain storage, circular chain list;

Two-way list, stack (sequential and chained), queue (sequential and chained);

Application of stack, basic concept of tree and traversal, binary tree;

Sorting algorithms, and algorithms, selection, insertion, fast, hill.

Do you know the above?

C + + Advanced UI Interface Development

Master the QT Class Library architecture, graphical interface development model;

Master QT Development skills, message mechanism, graphics processing;

Master QT Network programming, udp,tcp use way;

Master qt file processing mode, serialization;

Master the porting techniques of QT under different windows,linux,ios,android platforms.

C + + Advanced unix/linux network server

Master the Unix/linux platform development mode;

familiar with system call;

Skilled unix/linux memory management, process, thread scheduling;

Familiar with Web server development method, proficient in writing TCP,UCP Network Service program;

Master how synchronous/Asynchronous IO models are used in network programming.

Development of ⑥c++ Advanced database

Practical tips for Mastering SQL language. How the Oracle,mysql database is used.

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 functional modules, it is an honor to tell you that you have reached the intermediate level, pay million is a piece of cake for you.

Third, C + + development Advanced

Read about you here and believe that you have a higher goal. That is now the hottest all-stack development engineer, both the front and back. Quickly locate the problem, solve the problem for them is a piece of cake, it is often said that the mysterious Daniel, only in the company's technical research will only see their figure.

① the knowledge and skills required for this phase of software development work are relatively difficult, and senior Software engineer Coding proficiency and normative needs to meet certain requirements;

② has certain project capability (including debugging ability, document writing ability, testing ability, etc.) and comprehensive technical quality (including understanding of software life cycle, understanding of design pattern, necessary industry knowledge and experience, etc.).

③ understands the mainstream back-end technology and front-to-back collaboration to understand the entire lifecycle of a project from a global perspective.

If you can master the above three stages of knowledge and skills, then you can meet the advanced requirements of the C + + development industry.

Dark Horse Programmer's C + + Academy: building an ever-outdated, all-in-a-stack application development engineer

In the recent 40 years of development, the C + + has been pursued by headhunters as a race-goers. Black Horse Programmer the C + + college curriculum from the market demand, technology trends, the enterprise needs to master the technology to do a systematic integration. At the same time, in the course of the design of the full consideration of the majority of students 0 basis of the situation, the modules are linked to each other, and gradually upgrade, so that students in the learning process can better transition and understanding of absorption.

If you also want to learn C + +, if you also want to transform from the zero-based small white into a good development talent, welcome to the Dark Horse Programmer's C + + Institute! Let you learn from this no longer lonely, more able to know some like-minded small partners.

For more than 10 years, the Dark Horse programmer insists on "teaching to change the fate of the students" and never forgets to beginner's mind. Thank you for reading!

Learning route for C + +

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.