2017年读书计划
又到了新的一年,新的读书计划也要规划起来了。
C++
我已经看完了《C++ Primer》,看得很艰辛。面向对象编程的概念虽然很简单,但是里面的细节太多了,而Primer这本书过于讲究所有的细节,所以书看得特别慢。我觉得新手应该先看《A tour of C++》这样的讲究全局的书,然后在看《C++ Primer》这种事无巨细的百科全书。也看完了《深入探索C++对象模型》,这本书虽然是1996年的,但是将C++中的对象在内存中的分布,构造函数和析构函数,各种继承方式的实现,还有最重要的多态实现方法都给读者剖析出来了。其实这些东西本质上来说,就是学习具体C++编译器的过程,所以我想在新的一年里,将《程序员的自我修养》和《深入理解计算机系统》两本书好好读一下。这两本书,将的都是编译原理和操作系统的书,而且将两者结合起来看,让你明白从你手敲的代码到最后的二进制,到程序如何加载到内存,都给你剖析出来。我觉得要做到这个份上,才能够熟练地使用C++。
图像处理和深度学习
其实我学习这两者的知识,是因为我想通过具体的知识来使用C++。图像处理对应了OpenCV库,深度学习对应了TensorFlow和Caffe库,使用这些库的基础是要对图像处理和深度学习的基本原理有了解,所以我打算在2017年将《计算机视觉中的多视图几何》、《数字图像处理》和《机器学习》三本书先看一下,然后在具体的深度学习库基础上来再学习深度学习,这一机器学习其中之一领域的知识。
Python和Shell脚本
脚本语言可以很方便地进行快速原型开发,或者可以让计算机做一些运维的工作,虽然速度慢但是非常的有效。我打算看《Python3面向对象程序设计》这本书,主要关注一下面向对象编程,毕竟有了MATLAB和C++基础之后,Python这种语言还是不难的,主要还是将OOP的知识巩固一下。而关于Shell脚本语言,在Windows上的就是PowerShell了,在UNIX上就是bash,脚本语言还是在于平时地不断使用进行积累,有需求才有学习的机会。单独去学习Shell脚本是很枯燥的。
操作系统
一直都很想找个时间将UNIX操作系统好好学习一下,我买的《UNIX环境高级编程》已经吃灰很久了。通过学习这本书,才能够对于操作系统有个更深层次的理解,从源代码级别进行了解。另外,MIT的xv6操作系统和6.828课程也是非常好的,一万行的源码配上一百页左右的导读,能够让你对操作系统有更深的认识,这也是要读完的。
其他
其他方面的知识,比如LaTeX、Visual Basic语言都平时多少积累一下吧。学习VB是因为工作上需要用,我估计SQL语言也要好好学习一下,毕竟做管理工作我觉得如果能将平时的数据形成一个数据库,分析起来能对工作有更深的认识。还有就是CMake的学习,我现在还是觉得我无法很好地写出一个CMakeLists.txt来,每次写都需要重新到网上查找资料,这样的效率是很低的。
结束语
总的来说来说,想看的书就是下面这些:
- 程序员的自我修养
- 深入理解计算机系统
- 计算机视觉中的多视图几何
- 数字图像处理
- 机器学习
- Python3面向对象程序设计
- UNIX环境高级编程