当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > 用一年的时间如何掌握C++

用一年的时间如何掌握C++ 时间:2020-10-21      来源:华清远见

摘要:

用一年的时间掌握c++ 首先要看想要掌握到什么程度,有的优秀的c++程序员用了20年也不敢说自己精通c++,首先引一下2010年8月号《程序员》刊登的拙文《C++强大背后》最后一段:

C++学习建议 

C++缺点之一,是相对许多语言复杂,而且难学难精。许多人说学习C语言只需一本K&R《C程序设计语言》即可,但C++书籍却是多不胜数。我是从C进入C++,皆是靠阅读自学。在此分享一点学习心得。个人认为,学习C++可分为4个层次:

第一层次,C++基础:挑选一本入门书籍,如《C++ Primer》、《C++大学教程》、或Stroustrup撰写的经典《C++程序设计语言》或他一年半前的新作《C++程序设计原理与实践》,而一般C++课程也止于此,另外《C++ 标准程序库》《The C++ Standard Library Extensions》可供参考;

第二层次,正确高效地使用C++:此层次开始必须自修,阅读过《(More)Effective C++》、《(More)Exceptional C++》、《Effective STL》《C++编程规范》等,才适宜踏入专业C++开发之路;

第三层次,深入了解C++:关于全局问题可读《深入探索C++对象模型》、《Imperfect C++》、《C++沉思录》、《STL源码剖析》,要挑战智商,可看关于模版及模版元编程的书籍如《C++ Templates》、《C++设计新思维》、《C++模版元编程》

第四层次,研究C++:阅读《C++语言的设计和演化》、《编程的本质》(含STL设计背后的数学根基)、C++标准文件《ISO/IEC 14882:2003》、C++标准委员会的提案书和报告书、关于C++的学术文献。

当然也有纯小白说《C++ Primer》

学C++ 能干什么

C语言和C++属于“造轮子”语言,几乎什么都能做。不过一般来说,C语言和C++主要还是做后台(服务端)开发比较多,包括:

通信公司后台开发

互联网公司后台开发

游戏公司后台开发

……

当然这个后台开发具体职责又有很多细分,比如:

有做数据处理和分析的

有做基础协议和通信的

有做服务端底层应用优化的

甚至还有做后台系统驱动和内核的

……

不管怎样,下面即将要介绍的这些学习路线和内容适用于以上所有情况。所以呢,下面就来讲讲具体的学习路线。

c++的学习历程

C语言:

除了最最基础的语法:变量、条件、循环、字符串、数组、函数、结构体等之外

C语言最最最最最重要的那就是:指针、内存管理,以后企业里开发就靠它俩吃饭,这也是检验C语言掌握情况的两大标准

C++:

C++和C语言确实是不同的语言,但是C++确实是对C语言的延伸,可以理解为在C语言里加入了面向对象的特性。因为只有面向对象特性的加持,代码才能更好的复用、扩展和工程化,这是大型项目的必备要素

除了C语言所有的底子之外,还需要学习C++的面向对象(封装、继承与多态)特性、泛型、模板、STL等等

编程基础四大件

基础四大件包括:数据结构和算法、计算机网络、操作系统、设计模式

这跟学什么编程语言、后续从事什么编程方向均无关,只要做编程开发,这四个计算机基础就无法避开。

1、数据结构和算法

可以说这个直接决定了面试的成败!几种基础数据结构类型得烂熟于心,比如:字符串、链表、二叉树、堆、栈、队列、哈希等;基本的几大算法也要了如指掌,比如查找、排序、动态规划、分治等等。

2、计算机网络

此处的计算机网络指的就是TCP/IP协议栈,可以说它是当下互联网通信的基石,无论如何一定要对TCP/IP的协议栈了如指掌,主要就是学习和掌握原理,包括:ARP协议、IP协议、ICMP协议、TCP和UDP协议、DNS协议、HTTP协议、HTTPS协议。

3、操作系统

该部分重点包括:进程和线程的相关原理(原子性、并发、锁)、内存相关原理(内存分布、内存调度)

4、设计模式

不需要23种设计模式全部记住,常见的几个如:单例模式、工厂模式、代理模式、策略模式、模板方法模式建议熟练于心。

应用实践编程

这部分会涉及到一些工具、编程环境、和具体编程实践,应该说这一部分学完,自己应该能做点东西出来、或者说能看懂一些实际项目的代码。

1、Linux操作系统的使用

很多人初学C语言、C++(包括我)都是在Windows环境上进行的,而实际企业级开发几乎不可能,所以Linux系统必须要会,我们别无选择。先谈使用。

包括:常见的Linux操作命令、基本的Shell编程。

2、编译/调试工具

首先是跟编译相关的:编译工具!

Visual Studio集成IDE熟悉与掌握,这个其实也用了编译器,只不过是微软自家的MS编译器,而且所有操作均可视化。而企业里开发很少会基于Windows系统,所以Linux平台上的编译器更为重要,最典型的当属GCC,所以要掌握GCC编译。

其次,自学C语言、C++,都借助类似VS这种IDE,点按钮即可对源文件编译。而企业里实际项目的编译动作叫make,编译的实际动作和过程都是写在makefile文件里,所以makefile的学习与掌握也是必须的。

3、Linux环境编程

还是那句话,企业里C语言和C++几乎都是基于Linux平台的,这一部分我们没办法避开

(1)Linux系统编程

掌握linux shell编程,可以编写常见的linux需求。

(2)多线程编程

掌握包括:线程、资源、信号、同步、互斥、锁等等一些具体的编程方法。

(3)网络编程

掌握Linux系统上的网络编程API和IO函数的编程实践。

总结

写到最后,感觉C++要学习的东西很多,一年时间也是相当紧,总结一下,大概C++的一个完整的学习路线,已经大体成型,接下来就是按照规划努力学习,提升个人技能,胜任更具挑战力的工作。

上一篇:嵌入式开发的核心竞争力

下一篇:学嵌入式后职业发展的方向有哪些

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部