来自:码农翻身()
作者:IBM刘欣
《数据结构》是计算机专业的一门必修课,可是很多学生学完以后,觉得用处不大,还不如学个C,Java来的直接一点。
等到工作了以后做业务系统开发,发现根本就用不到那些书中的讲的二叉树、图、排序算法,更加觉得这门课是在浪费时间了。
这种想法实际上是错误的。
学习数据结构,并不仅仅是学习其中现成的那些队列,堆栈,二叉树,图等经典结构,也不仅仅是学习其中的那些快速排序、冒泡排序等算法。
更重要的是你要学习一种思想:如何把现实问题转化为计算机语言的表示。
计算机其实一种很笨,很机械的机器,只会按照预定的指令一步步执行,而计算机语言的特点就是精确、无二意,它的本质语言是二进制的,即使是C,Java等高级一点的语言也只不过是包装而已,它的表达能力并没有本质的提升,仍然停留在很低的层次。
而我们用的自然语言则是典型的模糊的,不精确的,程序员面临的一个重要问题,或者是我们的主要工作就是怎么把自然语言描述的问题转化为计算机语言的表示。
到底该怎么转化,《数据结构》已经给出了指引:设计出数据结构,在施加以算法就行了,当然现实问题会更复杂,需要框架,类库,模式等支撑。
这是一种非常重要的逻辑思维能力的锻炼,也是程序员入门的条件。
很多半路出家的人,仅仅上了个培训班后参加工作,写出的代码实在是惨不忍睹,很明显只掌握了工具,逻辑思维的训练远远不足。
就我个人而言,大学时学《数据结构》以后,为了准备高级程序员考试,把里边的习题全部做了一遍,发现真是受益匪浅,不但高程的成绩非常好,更重要的是在后来的工作中,遇到数据结构相关的实际问题,基本上没有什么障碍,只要掌握了语言特性,解决起来非常轻松。
总结一下,《数据结构》这门课其实会潜移默化的影响你的逻辑思维,当然,你需要多多练习才有可能使用纯熟,等它变成身体一部分以后,你就发现其实大部分编程任务都没什么难度了,更难的其实是对编程更高的要求:抽象的能力。
相关阅读1、我的算法学习之路
2、面试经验分享之数据结构、算法题
3、8大排序算法图文讲解
4、五张图带你体会堆算法
5、为什么要使用数据结构和算法(程序=数据结构+算法)
●本文编号,以后想阅读这篇文章直接输入即可。
●本文分类“算法”搜索分类名可以获得相关文章。
●输入m可以获取到文章目录
对本文感兴趣的人,对以下也感兴趣算法与数据结构↓↓↓
大数据技术↓↓↓
更多推荐请看《15个技术类公众北京治疗白癜风的医院北京哪个治疗白癜风医院好