我的计算机学习简史
大学时间过得实在太快,快到你压根就来不及想到底有多快。对计算机的学习也随着这次期末考试接近尾声了,操作系统也是最后一门所谓的绩点课,其实我很鄙视这种将课进行三六九等的人为分级,而且随着学习的深入对这种封建的“等级思想”鄙视之情越来越强烈。
对于每个科学,尤其是理工类的,建立一个完整的理论体系非常重要,计算机科学就更不用说了。如果对整个体系没有一个宏观的深入理解,解决问题也只会就事论事,不会瞻前顾后,放眼全局,遇到大一点的问题后,也会茫然失措,不知问题出在了哪。比如编程,如果你不懂得计算机底层是怎么运作的,就很难写出高效优雅的代码,就只会朝着实现去编写。这也是虽然现在硬件配置越来越高,但软件的效率并没有同步提高的一个原因。
在学习的过程中,也和很多同学一样,出现过无数次的茫然,不知道所学的这些东西到底有啥用,尤其学C的时候,总是编那些没用的控制台程序,实在让人气馁,自己都讨厌看,别说拿去给别人看了。好想编出一个像模像样的软件,卖个千百块的,或者起码让同学羡慕嫉妒一下也不错啊,但所学的那些理论压根不知道有啥用,老师也不说,只说这是基础,是绩点课,严重的鄙视这些庸师。也看过MIT的编程公开课,人家的老师第一节课先编个看得见,摸得着(不对,摸不着)的小人,虽然简陋点,但对初学者来说也蛮具诱惑力的。再看看人家那上课的类容,压根不是一个级别的,我们的课对重点核心内容是阉割再阉割,不知道是老师也是一知半解的原因还是害怕难了学生的原因,对这样的教育彻底无语。后面终于对这些人民教师绝望了,开始自己慢慢捣鼓着弄了。
学了Java和C#后,终于可以写个见得了人的程序了,第一次运行出一个非黑乎乎的DOS窗口的程序还是蛮激动的,也写了一些小程序。但是,接着发现,写一些大一点的像样的程序非常困难,不是了解了语法就可以弄出来的,意识到不研究算法只能写出一些小儿科的东东。同时,也遇到了很多其他问题,比如这些程序到底怎么运行的,存储器怎么存储记忆数据的,键盘怎么输入字符的,屏幕怎么显示图形的等等,总之,不知道是不是我个人的原因,不了解这些东西感觉写程序总是战战兢兢的,于是开始对底层的东西感兴趣了。忽然发现,这都离不开那些理论课程,什么《数据结构》《微机原理》《编译原理》等等,才知道学校也不是乱开这些课的。可悲的是,我明白这些的时候这些课好多都已经学过了。所以,只能自己重新来了。但是,发现那些课本根本无法回答我的问题,说句难听话,我们的那些教科书都不是人写的,语言结构都一个样,冷冰冰的,没有一点人气味,就像机器人写的一样,都是一条条干巴巴概念的罗列。看那些书,让我不停的怀疑我脑子是不是出问题了,实在看不进去,看不懂,自信心很快就被摧残没了,还好我已经习惯了这种起起落落。最后也放弃了教科书,开始在网上找资料学习。互联网对我的帮助实在太大,真的学到了很多东西,发现了很多好书,终于见识到了活生生的人写的书是怎样的了。
非常喜欢老外那种生活化但又不失严谨的写作风格。叔本华说过:没有比写出无人看懂的书再简单的事情了(原句记不清,大概就这个意思)。如果能把高深的理论阐述的简单易懂,那确非一般的难。老外写书是顺着人思路在写,重在呈现他的思考过程,而我们的国内的那些专家们是把重点放在了呈现他们思考的结果(假设他们也思考过,也弄懂了),而非过程,这就让我们很痛苦,半路杀出个程咬金,谁知道他是干啥的,猛地一看还以为他是李逵,我不认识他他也不认识我,着实尴尬。再者,在看老外写的书时,对有些书,我们的翻译水平实在令人汗颜。我一度怀疑那是不是老外冒充国人翻译的,因为我很难想象一个中国人能写出那么拗口的汉语。对文学作品的翻译采取直译有可能是译者水平实在不够,没有理解作者真正的意思,不管乱揣测,所以为了糊口只能硬着头皮昧着良心直译了。但对于没有太多主管情感的科普书籍,还那样死扳硬套的采取直译,实在让人费解这些人是何居心。
现在也算对计算机的整个体系有了一个比较全面的理解了,在学习计算机的这个过程中,那些卓越的思想带给我的触动要比那些具体的实现技术大的多,虽然思想和技术的界限很模糊,但是,一个主要区别是,技术只针对具体的实现,而思想虽产生于解决具体问题的过程中,但不是一种单一的技术手段,是可以用于解决其他各行各业里一切类似问题中的。通过这些,我对世界也有了重新的认识,眼光更加宽广了,思维不在局限于计算机,这算是意外的收获,也是最大的收获。真是“山穷水尽疑无路,柳暗花明又一村”!
X,明明要复习操作系统的,又扯远了,下次,下次!