Pony’s Stable

学还是不学?这是一个问题.

最近一直在纠结一个问题:我手上有一本《操作系统原理》,看?还是不看?

请原谅我这个选择困难症患者在这个无聊的问题上纠结这么久。我为此特地在知乎上搜索了将尽一个小时。他人的观点基本你可以总结成两类

1
2
1. 学!程序员三大浪漫之一,好好打地基,万丈高楼平地起。不仅学,习题好好做。
2. 随意!前端要用操作系统原理吗?写ajax要你自己实现TCP/IP?用得着就学。用不着别管。

按照这里面的思路去回答问题,估计在纠结两百年也纠结不出来:谁知道知识在什么时候用到?未知的世界永远未知。但是在方向不明确,或者去完全没需求和收益的情况下,去实现编译器或者操作系统什么的……抱歉,太浪漫的事情我做不了。So,为了走出这两个极端,我回答了自己几个问题:

1
2
3
4
5
6
1.我浪漫过吗?
  浪漫过
2.有用吗?
3.那么学不学?

是的,我也曾经浪漫。在课余时间的时候抱着一本《编译原理》在啃,幻想着把习题做完之后成为编程高手。当然我这种渣渣最后还是屈服在了懒惰之下,书只看了前几章就丢在了一边,自己写编译器什么的更是天方夜谭。

即便如此,这段经历带给我的好处也是十分明显的。这个好处体现在,在面对些语言的trick(语法糖)的时候,我能够很快地理解并且掌握。比如之前在看《ruby元编程》,前半部分我就毫无压力,全当是在复习《编译原理》。原因很简单,因为我在《编译原理》中理解了block和变量作用范围的概念,ruby里面再怎么变化,也逃不出编译器(解释器)的范围。

这个书啊,并不是说看完了他能给你提供什么技能,能够帮助招工赚钱,尤其是基础类别的书。它能提供的,更多是一种概念。越是基础的知识,其中的概念就越抽象,也越能代表更多的事物。很多的概念、名词,其实都是新瓶装旧酒。这酒没变,瓶子其实不怎么重要。

概念是个很重要的东西,很多时候缺少一个概念就会使人停滞不前。因为你意识不到自己的缺陷,也无法找到改进的方法。比如之前在看Scrapy的源代码的时候,对signal和callback函数很难理解。查了很多相关库的API文档,懂得了函数的用法,却衍生出了更多不懂的概念,使自己更加迷糊。这说白了,就是对操作系统的工作机理缺乏理解。这就体现了《操作系统》这本书所能给我带来的优势。

其实不仅是书,视频、经历、人等各种能够为我们带来新概念和新事物的东西,都要勇于接受。一堵墙,打破一个点,就有机会窥见另一面的整个世界。

那么……

1
2
3
4
5
6
7
8
1.学不学?
  学!
2.为什么学?学到什么程度?
  了解和掌握操作系统的基本概念和运行机制。
3.怎么学?习题你还做不做?
  就当看科普书,记住概念。习题做小题,目的是帮助巩固概念。
4.你还写不写操作系统了?
  写!个!屁!给钱我就写。

好,那么现在剩下的问题就只有一个了:

1
怎么啃掉这几百页的英文大部头?

呵呵,SB ,买英文书 (= =||凸