The white learn how C ++?

The white learn how C ++?
So as a C language from the hustle of white, into the pit to grow into many of today's high-level C ++ game development engineers, advanced C ++ server engineers, project managers, technical director, I want to share with Daniel learning experience and experience!

Linus once said: "C ++ is a horrible language, and more terrible than it is a lot of substandard programmers use for it," the world's most difficult non-C ++ programming language may be none other than, Oh Although a bit exaggerated ...... but, you remember, the higher the degree of difficulty means that the higher the gold content and competitiveness, the more you can separate area and others, so you need to have a very cautious start attitude, and the C ++ as a kind of hard training suit beast to look
Finally, if you if you encounter in self difficulties, looking for a C ++ learning environment, can join our C ++ learning circle, click I joined it , will save a lot of time, reduce the number of problems encountered in the study.
The white learn how C ++?

So if you're just on a whim and did not really sink in mind to want to learn a language, so I do not recommend you to learn, because learning C ++ is painful, no interest, then the learning process would be a torment and suffering!

Threshold and gold coexist, once you learn C ++, it can be said that many languages ​​for you so it is not difficult for the.

Normally, all learning C ++ novice students the following situations:

The white learn how C ++?
1. Pure white (non-computer professional, never learned any programming language)

2. contact with C language, but did not learn

For the first and second case, I suggest sure to lay a solid foundation in C, if C did not learn, learn C ++ will be very frustrated to combat self-confidence, you can step by step, do not know how to learn can follow us, we have a one-stop learning program!

3.C have learned the language very well, but did not come into contact with C ++

With a solid foundation in C, congratulations, you can start learning C ++ a

4.C ++ basic grammar are learned, and then wanted to learn advanced?

In my many years of game development experience in C ++ server, enterprise real inspection requirements for developers of nothing more than so few points:

C ++ data structures, focusing on the most basic of linked lists, queues, stacks, sorting algorithm, various algorithms, which was the core of the program.

C++泛型编程,模板,各种项目中存在大量模板设计,特别是框架,

C++多线程,线程同步,线程池。 99%的项目一定用到,列为重点。

Socket网络编程,各种并发网络模型(Select WSASelect IOCP)

C++静态库、动态链接库dll ,开发项目中90%、SDK中一定用到,无需精通,但必须掌握。

Win32 API 高级编程 , 重点,真实企业项目中大量用到win32 API ,一定有相关的经验。

5.C++进阶知识也会了,你需要学习基础框架。

MFC框架 。 可选,虽说MFC在windows桌面运用中因为其复杂性越来越显得过时了。但是其OO思想还是发挥的淋漓尽致,可以了解熟悉下,各种控件、对话框、单文档程序、多文档走一遍,不仅可以掌握桌面运用开发,还可以再次巩固面向对象的理念,总之MFC是个大杂烩,总会学点东西的。

QT框架. 跨平台的应用程序和用户界面框架,linux与windows桌面应用开发的优秀框架。

GTK+(GIMP Toolkit) GIMP 一个功能强大跨平台的图形库,是GNU/Linux下开发图形界面的应用程序的主流开发工具之一。

STL库,优秀的跨平台模板库STL 包含大量的STL容器,算法和函数等。

Boost库 一个可移植、提供源代码的C++库,作为STL标准库的后备,是C++标准化进程的开发引擎之一,优秀而高效的模板与算法

6.相关开发工具、无需深入、会使用即可。

磨刀不误砍柴工,打仗还得有枪,下面最常用的工具你必须掌握:

集成开发环境: VS2010 ~ VS2017 ,越来越强大的IDE。

代码配置管理工具: 最简单易用的SVN 或 最流行的Git

7.有了以上6个方面的基础,说明你已经具备企业开发的能力了。

但是每一行业都有其专注的技术,所以,你需要开始细分方向了,仔细思考你究竟想从事哪个行业,然后对号入座,

此刻就是术业有专攻了!一位崭新的C++大牛即将诞生......

小白该如何学好C++?
以下附上真实企业中相应岗位需要掌握的技能:

【流媒体开发工程师】

熟悉视音频编解码算法(如mpeg-4、H.264、H.265、G711、AAC等);

熟悉流媒体协议 RTP/RTCP , RTMP, RTSP, SIP ,HLS, HDS, TS;

熟悉开源多媒体项目 FFmpeg、GStreamer、 vlc、live555 ,nginx-rtmp , WebRTC、DSS、 ,darwin ;

熟悉流媒体服务器 Red5、FMS、Wowza等

熟悉多媒体容器封装标准mp4, FLV , TS ,MPEG2-TS,mxf,mov 等流媒体文件封装协议

【游戏开发工程师】

熟练应用Cocos2d-x引擎,熟悉c++/cocos2dx开发模式;

Lua/Python脚本开发经验者优先。

OpenGL/DirectX等工作经验者优先

商业引擎 Unity 3D ,CE3和 UE4 , (Unreal Engine 4, CryENGINE 3 );

【服务器开发工程师】

有高性能高并发系统的开发经验;

云风skynet (基于C跟lua的开源服务端并发框架)

IOCP , epoll

具有分布式负载均衡相关经验

lua ,python语言

【嵌入式开发工程师】

MTK平台 (台湾联发科技 MediaTek)采用的是Nucleus OS, 嵌入式实时操作系统,使用标准C开发,其中Nucleus Plus提供源代码下载。

vxworks、uc/OS等嵌入式操作系统开发

熟悉嵌入式CPU如STM8、STM32系列处理器的架构和应用;

精通ARM、AVR、STM32、8051、MSP430中一种MCU的结构和编程;

至少精通ARM、AVR、STM32、8051、MSP430中一种MCU的结构和编程;

熟练掌握ARM、MCU等控制器内部原理和配置

ZigBee是基于IEEE802.15.4标准的低功耗局域网协议。根据国际标准规定,ZigBee技术是一种短距离、低功耗的无线通信技术。

【人工智能工程师】

数学好

有基于Opencv开发项目经验者优先

Artificial intelligence, depth of learning, pattern recognition, machine learning / machine vision algorithm development / image recognition / voice recognition / natural language processing;

Object detection, recognition algorithm, Faster R-CNN, FaceNet algorithms

Familiar depth learning open-source platform, such as TensorFlow, Torth, Caffe, Keras, Theano, Spark, OpenAI, Mxnet etc.

Statistical machine learning (such as deep neural networks, Boosting, graph model, probability and statistics, optimization methods, etc.)

Computer vision (e.g., image recognition appreciated, face detection and recognition, object detection and tracking, OCR, augmented reality, image quality evaluation, image segmentation enhancement)

Familiar with the machine learning algorithms and large data mining algorithms, such as SVM, neural networks, the depth of machine learning, mathematical modeling, feature extraction and data mining, and CNN, RNN and other model-depth study.

[] Big Data Engineer

Familiar Big Data platforms such as Hadoop, HBase, Spark, Hive, Storm, Mahout better

Use tomcat / weblogic / WebSphere middleware, and know how to optimize cluster structures;

Familiar with mongodb / redis / Ehcache other popular technologies;

Familiar with MapReduce, Spark and other Hadoop-based data mining architecture and analysis tools;

Familiar with Matlab, SPSS and other software tools, familiar with several commonly used mining analysis algorithm;

Common master data mining algorithm (Bayesian, decision trees, - K-mean, SVM, logistic regression, time series and the like)

Master data mining tools commonly used software: SPSS / MatLab / Weka etc.

Having said that, the last white send you an own experience: insist on learning, continuous learning, one day you will be really big cow!

Guess you like

Origin blog.51cto.com/14209412/2404184