C++学习 之感

来源:互联网 发布:澳大利亚生活成本 知乎 编辑:程序博客网 时间:2024/05/23 15:34

学习C++的背后

本科四年混过来,几乎没有什么编程能力,进入研究生阶段之后,意识到需要好好学习一门语言,加之以本科期间学习过C++,就决定好好学习C++这门语言了。

在上学期的时候,并没有没有静下心来,只是很随意地写几行代码,顺便上上coursera上的北大的C++语程序设计课程,虽然通过了这门课程,但并没有得到多大的锻炼,也许纯粹是为了通过课程在完成任务而已。

这学期开始呢,就下定决心好好学习了。到目前为止,坚持着看完了两本C++的书籍,一本是C++之父编写的《C++程序设计语言》和侯捷编写的《STL源码剖析》,在看这两部书的时候,觉得非常困难,但还是咬着牙齿尽量把这两本书啃下来了。

读完这两本书最大的感受就是:以前知道关于C++的很少,在C++的学习路上我还有漫长的路要走

虽然在看完这两本书的时候,可以很明确地感受到自己新增了很多知识,但也还是一脸懵逼的样子,因为还有太多太多的知识没有消化,还有太多太多的知识还需要学习,接下来以STL源码剖析威力,简单梳理一下这段时间的学习。

STL源码剖析 粗略整理

读完侯捷的《STL源码剖析》的一些收获:

  • 熟悉和掌握了了STL绝大多数容器以及相应算法和函数的使用,如vector,list,deque,set,map等
  • 开始了解STL容器实现的具体细节(源码),明白设计一种容器的基本思路;
  • 了解C++类和函数的泛化过程,正在试图理解C++泛型编程的精妙之处;
  • 试着了解和熟悉C++STL里面一些基本算法的STL实现,在实际的编程当中尽可能地向STL的实现方式靠近。

当然还有很多知识是属于简单知识,但暂时还没有理解的范畴,需要在接下来的学习当中,要试着深入学习和理解:

  • 关于C++的内存管理,也就是第二章空间配置器所讲的内容,这一章的内容,属于有些印象,但不知道why 也不知道how to use;
  • STL traits编程的技法,单看目的和实现的过程,觉得有些意思,但对这些非常模糊
  • 关于配接器的,一般情况下知道怎么使用,少数情况下会有些模糊。出现这种情况是因为对配接器的由来和作用始终不太理解。
  • 有一些地方会有疑问,如:在算法那一章,很多函数(如adjacent_difference)的实现时,都利用了中间函数,为什么不直接实现呢?
  • 有些底层的数据结构实现(如红黑树),可能是因为觉得不需要直接使用,并没有弄懂红黑树的很多细节,以后需要的时候,以后需要的时候还是需要重新学习。
  • 排序算法,很多细节部分都有点不知道为什么,需要反复回来看。

C++学习的规划

现阶段的学习过程,主要是阅读以下书籍,然后写一写某些oj上的小程序,这些还远远不够。一方面觉得对自己的编码能力锻炼有限,另一方面,oj上的题目实现主要是一个函数,不像工程。但暂时实验室并没有项目支持,接下来也只能以oj上的题目作为练手了。
接下来的学习规划如下:

  • 继续刷OJ上面的题目,提高完成效率;之前刷的时候有点效率略低;
  • 阅读书籍《C++ primer》,感觉自己基础知识并不牢靠,之前强行上STL源码分析是有点本末倒置的感觉,如今也要好好学习基础知识;
  • 需要阅读 计算机系统 与操作系统相关的方面的书籍,这个待定。
  • 及时总结,及时梳理会对自己的理解会有一定的帮助;

之前,遇到一点困难就选择放弃,造就了现在畏难的自己,实属鄙人不愿见到。希望借语言的学习,能有一点点的改变。当然也真的希望能在这门语言上有所建树,最后以后依靠这门语言吃饭^~^。

0 0
原创粉丝点击