首页 疯狂的程序员 下章
《疯狂的程序员》11
 其实也没怎么等,机会就来了,好像是机会一直在等他,等他决定不玩游戏了,来把机会拿走。

 现在很多人总是抱怨:“苦恼阿,没机会阿。”好像自己就是那个才华横溢又无法横溢才华的大诗人。其实机会就像羊,地都是,关键是你自己要知道怎么去剪羊挤羊。――难道你还等着羊自己把送到你手上,那才叫机会?

 大三的课就是比较多。刚进大学的时候,绝影想,大一应该轻松吧。没想到大一课多到超出了他的想像。就算是大一打基础吧,那大二课应该少一点。没想到大二又加了两门课。再想基础也学差不多了,大三专业课应该不多吧,结果专业课比基础课还多。绝影拿课表看了一下,有两门课他比较在意:《微型计算机原理与应用》和《数据结构和算法》。

 《微型计算机原理与应用》用的书就是《微型计算机原理与应用》,杨有君,史志才,机械工业出版社,书不算厚,只有300多页。《数据结构和算法》用的书也就叫《算法与数据结构――C语言描述》。两个老师比较有意思,都是年轻人,一男一女。男的姓谭。

 绝影对这个谭老师印象不错,因为他很年轻,而且大家对他评价就一个字:狂。就这一点,他从他身上隐约看了到了一点自己的影子。不过绝影也觉得他实在太狂了,愤世嫉俗,自以为是,总觉得自己水平就很牛,鄙视学校那些报课题的,鄙视公司那些搞研发的。绝影想这大概就是为什么宴斌已经升到教务处副主任而他还在做讲师的原因吧。

 他上课也从来不带书,想到哪讲到哪,并且讲的都是他自己的。他常常说:“书上那个,跟你们讲,那是大错特错,这个XXX哪里有这样的用法。”开始绝影也不相信他,后来他觉得谭老师水平可能确实比较高,因为他让他帮自己改过一段C语言程序,硬是把200行的代码改到68行。

 绝影学了一段时间汇编,他知道微型计算机原理这东西跟汇编语言是不可分割的,大部分讲微型计算机原理的书表面上是在讲微型计算机原理,实际上是在讲汇编语言。他们的区别在于,讲汇编的书就只讲汇编,一般很少讲其它的,包括微型计算机原理。而讲微型计算机原理的书总是爱东拉西扯,什么电路阿,数电阿,模电阿,汇编语言阿,能讲的都讲,所以绝影还是很庆幸自己当初买的是《PC汇编语言程序设计》,要是当初去买本《微型计算机原理》,那电路都能把他卡死。

 绝影觉得谭老师讲得比较好,他就一直去听他的课,虽然像C语言一样他觉得自己过这门课肯定不成问题,而且凭自己的能力,就算自学也有应该有实力拿到全年级最高分。这样看来,在大学里面很多时候并不是去听课,而是去听人。特别是上了几次课后,他忽然又有重大发现,觉得上课还是值得的。

 说以前他看原码反码补码硬是没看懂,反正这个概念也好背,就背下了:正数的反码是它本身,负数的反码是首位为1其它取反;正数的补码就是它本身,负数的补码首位为1其它取反最后加1。他背了,但他也不知道什么意思。但是听了几次谭老师的课,他知道“数字加法器”这个东西,比如两个数,高电平低电平输入进去,就得一个结果,还是高电平低电平表示。这么看来,拿二进制十六进制来表示数据真是个好方法,想起以前骂了冯。诺依曼,给他承认个错误。接着他就明白,为什么要补码,因为加补码就等于作减法,这样把减法转成加法来做,把乘法也转成加法来做,把除法转成乘法来做,整个CPU就只需要一个“数字加法器”就够了。

 他觉得自己发现了一个惊天大秘密,这时候很多同学还在背:正数的反码就是它本身…

 谭老师也比较喜欢绝影,因为他可以提出一些比较专业的问题,比如为什么不支持内存到内存的寻址?他在解答这样的问题是会非常有成就感。同时他也会跟他讨论些很有创意的东西,比如:题目是做64位加法,他就跟他说,用ADD怎么怎么做,用MMX指令怎么怎么做。最后归纳一下,还是用ADD做效率比较高,因为用MMX指令太少,指令对齐还没出来,效率提高不了多少。

 MMX是绝影偷偷学的。当然他觉得非常有必要,这些指令是现在书上阿,老师阿都不会讲的,好多同学听都没听说过。但是他知道应用非常广泛,所以你学大家都知道的东西有什么用呢?要学就学大家都不知道的东西,这样你才能做大家都做不到的事情。

 所以我们有时候也要理解老师,他们天天在讲台上讲,对他来说下面坐的有80%都是文盲――有文化的文盲,当然他们会很认真地记着笔记,甚至能预感到那些是重点,那些是考点。你以为老师喜欢这样的人吗?他觉得他在对着一群猪讲课,他觉得自己心中的东西比起书上来,那都是至理名言,可是,以他们的智商,他们无法理解。这时候当他发现了绝影,他感觉终于找到一个知音,所以,他对绝影也许更多的是感激。

 在土匪他们眼中,谭老师和绝影一样是无法让人理解的。其实他们心眼里也鄙视这样的老师,很简单像《微机原理》这样的肋课本来大家就抱着可上可不上的态度,但老师他们非要一再强调这课对于XXXX有多么重大的意义,并且还坚持考勤布置作业,好像这课过不了大学就毕不了业。同时,土匪觉得绝影疯了,在他们班上,说某人没救了或者某人的想法完全错误通常用:“他,疯都疯了。”

 绝影自己心中有套理论,他没有跟土匪他们说,因为以他们现在的智商,他们无法理解。你知道程序是啥玩艺吗?程序是给谁用的?他们肯定说:“程序当然是给人用的咯,用来解决问题嘛!”其实程序真正是拿给计算机用的。你写程序给计算机看,就得照他的想法去写,多跟它交流。计算机这东西,说它怎么怎么好,运算速度快,但毕竟它不像人那样有智商,说起来就是白痴,你跟它交流久了,也慢慢变得像白痴。

 又说《数据结构》这课,上课的是个年轻漂亮的女老师,绝影反而不知道她的名字。最近CSDN上不是老讨论什么女开发人员,女程序员怎么样怎么样吗?所以人就是这样,按常理,在这种情况下,他应该更加去套近乎,毕竟自己C语言也学的好,数据结构也难不住他而且老师都喜欢优秀的学生,当然在一起可以有长时间深层次的交流。不像土匪他们,没事找事跑上去套近乎,问个问题:“#define是啥意思。”

 她说:“下去吧下去吧,我下节课讲。”

 下节课的时候,她就说:“现在有很多同学,自己不动脑筋,又不好好学习,像‘#define’是什么意思都拿来问,难道你们没学过C语言?”

 绝影想:你们越是认为我会去干什么,我偏偏不去干。我根本就不是你们想像中的绝影。

 《数据结构》的课他也不怎么去上,上了一次,他爬教室中间课上着上着就睡着了。老师非常不客气,点杀他起来回答问题。

 她自以为出了个很简单而又充杀机的问题:popeax指令计算机执行了哪些操作?小说网.

 这时候,好多同学笑了。她不知道,但他们知道,甚至好多老师都知道,他们知道这些问题根本难不到绝影,想用这种办法整他,那是自己给自己找麻烦,不会让他下不了台,只会让自己下不了台。

 像土匪这样的人,肯定说:“把栈顶的值送eax。”

 成绩好的会补充:“把栈顶指针往下移4字节。”

 绝影说:“摸veax,dwordptr[esp]addesp,4”

 显然老师对他这个题的回答非常不满意,她的原意是他答不出来,好当场羞辱他:什么都不懂还敢公然上课睡觉。她还是很无奈地让她坐下,其实她本来还有道题,前面几个人都答不上来,但是她没敢再问。她也不傻:你想正儿八经坐那听课的人都答不上来,让个睡觉的人答出来了,那不等于说自己讲课没水平。

 所以女人的心思和男人不一样。女人就是太软弱了,男人一比她强,她就屈服。绝影想,要我是个老师管你答出来答不出来,都让你“Goout。”

 绝影想罢了,你不给我面子我也不给你面子了,从那以后,他就不去上数据结构课。

 他觉得《算法与数据结构――C语言描述》这书也实在写得太菜,表面上说是C语言描述,实际上大部分都是用的伪代码描述,以至于很多同学跑来问他:“这个语句是啥意思阿?为啥以前学C语言的时候没学过?”这样的话自己上机去练习就麻烦,还要自己把程序写一遍,不过写过之后自我感觉良好:反正考试就考写程序,自己写了,有印象,比那些死背的人好多了。而且那些死背的人坏就坏在常常忘记在语句后面加“;”硬生生扣2分。

 期末考试没啥好说的,绝影让谭老师给点提示,谭老师说:“那就算了吧,你赶紧复习其它科目去。这微型计算机原理对你来说没啥好考的。”这样,他轻轻松松又拿到一次全年级单科最高分。数据结构就不一样了,大概是那女老师受了一次绝影的羞辱跟他有愁,本来绝影自我感觉良好,结果才得了个65分,连抄他卷子的人都得了82分,得他自己都不好意思跟别人讲。王江问他,他就马马虎虎说:“过了过了,还可以。”他知道,王江得了90分。

 他气氛阿:公报私仇,虽然过肯定会让他过,但就是要让他过得不舒坦。这就是男人和女人的区别。比如男人之间谁借了谁钱,到期他就大大咧咧跑过去,有时候还当着一大群人的面:“喂,还钱,还不还?不还把你吉他给我弹两个礼拜。”这种事情到女人身上就不一样了。钱虽然是小事,但是她们不会跟你要,提都不跟你提,你不要以为她大方,她就老是说:“哎呀,月底了,又没钱了阿。想去买件衣服都买不成了。”或者跟她朋友说:“XXX,那人人品有问题,借了钱好久都不还。”你想这样多可怕。所以记不好的人还是尽量不要去跟女人借钱,宁愿把吉他当了也不要去借女人钱。

 这时候王江的感觉良好,他数据结构得了90分,其它科也不错,反正成绩就是他们班前几名。他跟土匪和绝影说:“下学期我有个大计划,你们一定要支持我,这可能是我人身的重大的转折点。”

 这件大事,后来的确成为人生的重大转折点,但这个转折点不是他的,是绝影的。
上章 疯狂的程序员 下章