0基础可以学习C/C++吗?

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_45726626/article/details/102474341

学习C/C++难吗?我英语数学地理生物政治历史物理化学统统不好,能学会吗?网上看评论说C/C++不好学建议不要学,是不是这样?所以很多同学犯嘀咕了,C/C++到底好不好学?0基础可不可以学C/C++?

话不多说了,今天就把这篇C/C++学习方法推送给各位坚持下来的同学,相信付出必有回报!

那么0基础怎么学C/C++呢?在学习C/C++的过程中有很多困难和疑问这些又该怎么解决呢?

很多同学一开始都是问这个前辈、那个高手要了几本C语言的入门书籍,从网上找一大堆资料视频自己学但是网上的视频资料自己看的似懂非懂的感觉自己又买了一大堆C语言C++的书,然后开始从C语言开始看起一开始看的贼带劲,把如何编译代码,字符串什么的什么的看的很仔细,然后随着难度越来越大感觉有点吃力的时候然后就没有然后了~~~

那么我们该怎么去解决我们在学习C/C++的过程中遇到的困难呢?小编大致的来说下

第一点当然是兴趣使然

写代码是件很枯燥乏味而且烧脑的事情。需要很大动力驱使你去学习,还要有足够的精力去支撑你。兴趣是学习最好的老师这个道理大家都知道,所以小编也不多说。

第二点就是各位的学习方法

学习C/C++一般都是从C语言开始,等到有一定基础的说切换到C++,编程语言本来就有很大的灵活性,学好C语言基础在切换到C++时就不会感到有很大的吃力。但是千万不能C语言还没入门,急功近利的去学C++,那样反而得不尝失,死了脑细胞,浪费了时间,却没得到回报。

学习C++过程是很重要的,一个关于C++学习的分类,两个大方向:面向对象编程(OOP)和泛型编程(GP)。这是两个最基础的方向,不过如果单纯抱着一本国内常见的C++入门书籍看的话,很容易将后者忽略(国内入门书籍过重得介绍C和C++中共有的部分和OO部分,极端忽视GP部分,这可能和GP更多地用于函数库的编程而OO更贴近大部分人实际工作的原因有关吧。

那就先从OO方面开始吧。

入门书:
首先是两本如同《辞海》般详细的神书:The C++ Programming Language 、 C++ Primer,这是两本几乎完全涵盖了C++所有特性的书籍,就不做过多介绍了;另外一本同样超赞的Essensial C++,可以看做是一本C++的《新华字典》,也就是上述两本的的简化版;以上3本适合所有同学看,不管是有还是没有C基础的同学,尤其是Primer第五版,随着Moo大神的加入,将Accelerate C++的写作风格带入,呈现出了一种跟第四版完全不同的风格,另外就是C++11标准在第五版被涵盖并放在了醒目的位置,也是超赞的。

进阶书:
那就不得不提主席大人和他的好基友Meyers的两个著名系列:Excptional 和 Effective系列了,前者包含3本:Excptional C++, More Excptional C++和Excptional C++ Style(中文版叫C++编程剖析),难度逐渐加深。主要是谈工程方面的细节和经验;在这个开始读这个系列之前,有必要将Effective 系列中的两本Effective C++和More Effective C++读一下,尤其是前者,可谓"C++ 程序员必读的第二本书",这个系列是讲述编程风格的。这两个系列读完后可以看看《C++编程规范》,这可以说是上面两个系列书的总结。

其实到此,偏OO方向的书也差不多介绍到这里了,之所以到进阶就结束,因为这方面确实是一些很实在的技术,在结合模板比较少的情况下,很少有所谓的"奇淫技巧"。不过在此要专门推荐一本OO方面更高层次的书 Inside the C++ Object Model,详细地讨论了对象的构造、生存、释放等问题,不过对编译器不熟悉的同学看的话可能就比较吃力了。

接下来就介绍GP方向的书籍。

大部分GP的书籍都是以C++最核心的库STL作为载体来编写的。
入其实从学习GP开始,就不能算作是C++学习的入门了。不过因为分得比较细,还是按照三个层次来介绍吧。

入门书:
个人认为没有入门书

进阶书:
C++ Templates,模板学习的圣经,全面地介绍了模板的各个方面;Effective STL ,meyers的Effective系列的第三本,讲述了STL方面编程风格,也介绍了实际编程中STL库中一些容器和算法的用法和误区;Generic Programming and the STL,讲述了泛型编程的核心思想和各种泛型组件(以STL组件为例)。

深入书:
《STL源码剖析》,从源代码的角度分析STL中各种容器和算法的实现,【强烈推荐以这本书代替其余任何一本C++数据结构书的学习(前提是如果有信心有毅力学透的话),因为侯捷老师说任何一个C++学生写出来的程序在SIG STL面前只能算三流程序,不妨多看看STL源码】;最后一本则是Modern C++ Design,这是一本充满了"奇淫技巧"的书,用泛型的思想结合模板写出足以让任何人都吃惊的代码——原来还可以这样写。不过这本书中内容的价值则可能是仁者见仁了——一般工作中基本用不到。

除开GP和OO这两个方面,另外还有两本书推荐给大家。一本是API Design for C++,顾名思义讲述如何编写高质量的API接口;另一本是《提高C++性能的编程技术》,讲述一些提高程序效率的技巧,让你知道C++同C一样高效。Ps.这本书结合Effective系列和Excptional系列一起看有奇效哦。

另外,学习的过程中无论难度多大,都要建立自己的知识体系和学习思路。这个可能对大多数同学说是个极大的挑战,但是你一旦具备,那么你可以尝试勾勒自己的知识框架加速引导自己的思维认知。

第三点就是别钻牛角尖

初学的C语言的时候恨不得把所有的知识点一口吃了,作为入门级别的,还是先绕开像工作原理printf底层实现这些比较高深的知识点。先做到会用,等到自己对C/C++有一定修为以后再去深入挖掘。

很多同学学了一段时间觉得自己什么都不会,什么都不明白。这说明你不适合自学,如果想要继续学下去,就要找一个靠谱的老师或培训机构,千万不要拿马斯克等人比较激励自己,因为结果只会让你更沮丧,最后丧失信心放弃学习,世界上虽然有一学就会的天才,但是那种人毕竟是少数大多数人都是普通人。

这里推荐一下我建的C/C++语言学习交流秋秋裙,秋秋搜索群名称:小凯C/C++语言学习之家,裙里有不错的学习教程,从入门到项目实战。学习开发用到的开发工具,专业的老师解答学习问题。您在学习过程中有不懂的可以加入一起交流,对你学习C/C++语言会有很大帮助!

猜你喜欢

转载自blog.csdn.net/qq_45726626/article/details/102474341