当应用类知识遇上理论知识时

      我想谈一下应用和理论课程的联系。纯属个人的想法,只为交流与学习。
可以说应用最让人有成就感,随便都写几行代码都能有个结果出来。理论课程很无聊,有时让人不明白前辈们都是怎么想出那些那么精妙的概念出来的,会让人读得很辛苦,更别说记忆了。像网络原理,数据报与数据帧,路由与交换机。你可能会觉得写个website,要这些东西吗?的确,现在构筑建一个网站简单多了,一拖一放一编译,就可以显示了。但是当你再往底层跑的时候,就会发现,不是所有的东西都可以简单一拖一放就可以完成的。本人一开始学习编程的时候,是从.net和C#开始的,直接跳过了什么是.net framwork,C#和c++有什么区别,甚至连基本的CLR属性,接口,继承,委托都不知道怎么用,也可以开发软件。但是到深入的时候,更是发现我建的是空中楼阁,于是开始学习那些上述所提到的东西。
      当这学期开了操作系统之后,说白了,os也是一个软件,它让我更加的明白那些编程用到的知识,更好地理解编程思想,很显然,学它不会使我能马上写出Lunix,但它能让我更好地理解编程,知道os是怎么运作的,这些对我们的编程都有很大的帮助。
      象数据结构,我记得当时学习的时候,光是看一个经过典的算法都要好几天,到现在还是不记得很牢,甚至都忘了,但是经典还是经典,即使你不能马上用到它,但是它能让你在以后的编程中有所启发。象栈,队,链表,树,图一些常规的用法一定要熟悉,记得不知道怎么看到《编程之美》,那还是在我学数据结构之前,要是在大牛面前,肯定会说是傻的,的确,没几句话是懂的,第一页的CPU的利用率问题,更是一头雾水。即使学数据结构后还是很吃力,学习操作系统后有点眉目,可能是自己觉悟不够吧。即使现在,也是很少用到数据结构的知识,但不可否认,在真正的考虑到像时间或空复杂度和运行效率的时候,它就是一把利器了。
     说到数据库原理,刚开始code的时候,是从msSQL开始的,以前一度认为数据库也就是增删查改,存储过程,3NF范式。的确,最基本也是这些,用得最多的也是这些。在不考虑安全和规范性的情况下,基本的运用没有任何问题,但是数据库关系一旦复杂,要求更高的安全性能时,简单地设计,不合理的代码都会使数据库的性能下降很多,对整个软件的伤害更是让人无法接受,这就更能体现它的理论的价值了。
     谈到这,还是得提一下计算机组成原理,的确很难学,从最基本的加减乘除运算学起,还是0,1代码。特别是它涉及的范围太广,加法器全加器一大堆数字电路的知识。我个人就只能硬着头皮听,听总是无碍。
     有人肯定会说,都学了那不就是全能战士了?是的,那得很聪明。我不聪明,但我可以选个方向,精学几门,略读一二,就可以了,但不可不学,定为核心专业课程,总有它的道理。我们老师说,对于这些课程,有时候就应该当历史课本一样学习,有空的时候抽时间出来看看读读,总有用的时候。实践离不开理论的指导,但空谈理论不实践,只能纸上谈兵。怎样权衡二者的关系只能看个人的觉悟的。

~~一个正在路上热爱编程的人

posted @ 2012-04-16 10:35  Ghost Soar  阅读(228)  评论(0编辑  收藏  举报