《UNIX环境高级编程》学习经验总结

开始学习这本书前,我首先找了很多学习建议和学习总结,得到了两条有用的建议:

  • 边学习边写博客
  • 项目实战
下面我就把我这一个多月的学习经验写下来,为希望阅读本书又不知怎样开始的同学抛砖引玉。

1. 关于阅读本书必备的知识点
豆瓣上、知乎上有人说这本书不适合新手读,但我不这么认为,关键看新手这个词的定义吧。
我自己读书之前具备的知识是:
  • 本科基本的四门专业课:数据结构、操作系统、组原、网络;
  • 基本的C/C++编程;
  • 《算法导论》阅读完毕;
  • 《深入理解计算机系统》阅读完毕;
  • 几十篇的英文论文阅读经验;
其实真正具备以下三点就可以开始阅读了:
  • 熟悉操作系统;
  • 基本C语言编程;
  • 说得过去的英文阅读和google检索能力;
的确最基本的只需要以上三条,关于具体阅读时的注意事项我会在接下来说明。


2. 关于阅读
我在阅读时,是APUE第三版的翻译书和英文电子书一起看的,因为在阅读过程中你会发现很多翻译的话会读不懂,在关键地方你必须求助英文原文;慢慢地在,对翻译版的吐槽和对原版的赞叹中,你会由衷地找到一种摒弃翻译版的冲动,这也算是一种境界的提升吧。
阅读过程的重要代码要一一实现,这个决不能将就;
阅读过程不能落下任何一个疑点,比如real user ID, effective user ID与set-user ID的区别一知半解时,必须查清楚,这在第三点写博客中会说明。


3.  关于写博客
这令我受益匪浅,因为新知识很容易忘记,写博客的两点很重要的优点就是:
(1)知识点的梳理;因为有些东西虽然看懂了,但只是模模糊糊的印象,写作过程中梳理的知识对记忆帮助很大,不要觉得浪费时间,因为即使匆匆翻一遍过两周也会全部忘光。
(2)便于复习;说实话,从初中开始我就不喜欢复习,可以说完全不复习,如果养成了复习错题的习惯,高考成绩肯定会再上一大截,不过现在意识到还不算晚。

写作过程比看书慢得多,因为你要用自己的话把所有知识点阐明,并且不能在文章中存疑。
比如遇到一个static关键字,你必须搞清static,auto,register等等的区别,那么就需要google,你会查到storage class,然后进一步会搞清当初C语言中各种杂乱的修饰词的关系;
  • Warning:尽量使用英文查询,只用google,stack overflow帮助很大!Linux manual的示例程序帮助很大!man命令帮助很大!

4. 关于项目实践
我自己刚把书看完,还没进入这一阶段,不过可以找些开源代码来练习,比如redis,thttpd,json等等,这些在知乎啊什么上边都可以查到大家推荐的优秀开源项目。


5. 关于参考书
(1) 《深入理解计算机系统》
这本书由于我以前看过已融入脑中,对整个计算机体系的理解有很大帮助,如果不着急看APUE的同学可以先看看这本书;
(2)《pointers on C(C和指针)》
在示例程序不明白时可以查阅;
(3)《UNIX网络编程:卷2 进程间通信》
APUEv3第十五章进程间通信讲得很模糊,需要参考这本书,不厚,花一周时间便可以翻得差不多,整理成博客之后你就会发现对IPC理解的已经很到位了;
(4)其它
英文网站和部分中文博客。

6. 关于感触
当初自己开始学习的时候找不到一篇像样的学习指导,我把自己的学习总结写下来,希望能给后面学习的同学们一些建议,不足之处还望指正。

你可能感兴趣的:(《UNIX环境高级编程》学习经验总结)