理论基础与应用

来源:互联网 发布:文章被审稿人质疑数据 编辑:程序博客网 时间:2024/06/04 18:23

    由于找工作的需要,又回去学习数据结构与算法,数据库原理,os原理,网络(tcp/ip)等,期间碰到了一些有意思的话题。
    数据结构与算法中,考虑了算法解决问题的特定的步骤,并且这些步骤与数据结构紧密相关,而且数据结构的设计或采用能确保算法实现的复杂度。因此,我觉得将两者分开学习,一定程度上牺牲了两者的关联,给理解深度上造成了不小的困扰。同时在算法学习和设计时,体会了算法设计的“渔”的魅力,一直忽视了算法的继续学习,深感遗憾。很多算法的设计都体现了“分而治之”的思想,力图把复杂的问题分解成更小规模的子问题,结合递归算法的使用,使得问题求解的难度在递归判断的逻辑和递归栈数据的处理中得解。在复习过程中,我进一步考虑纯填鸭式的学习,往往数据结构中复杂的图论、B树,B-树,B+树,红黑树等都避开了,只是概念上的接受,都没有进一步具体到代码实现层面,更不用说这些理论基础在实际中应用。的确这些基础概念在平时的工作环境,因为我们往往接触的开发层面都是应用层面,而应用逻辑的编写几乎用不到这些基础数据结构,所以学习这些纯属智力游戏。但如果能深入一点,就会接触到B+树在文件系统的组织,数据库的索引上的应用,大概就会对基础的学习深感有用,而且这些基本概念的理解就可以分析应用上一些不知所以然的规定操作了。
    另外说到基础,还有就是离散数学,它的确太过抽象,而且很多概念我至今都没理解,一般都放一边。其实读书的时候就常问,学这些用到哪啊?老师也只是笑笑,基础很重要,以后就知道了。看到偏序、全序在数据库事务上的应用时,我的确被这种精简的表述征服了,深深体会了基础的重要。原来这才是基础的所在。
    呵呵,还有一点,就是基础的学习是个反复的过程,跟其他的学习过程一样,不段的反复会有完全不同的领悟,而且一次比一次深。

ps: 之所以写下来,纯粹是为了防止遗忘

原创粉丝点击