查看原文
其他

学习数据结构有用吗?

2015-12-06 老刘 码农翻身

《数据结构》是计算机专业的一门必修课, 可是很多学生学完以后,觉得用处不大, 还不如学个C,Java来的直接一点。

等到工作了以后做业务系统开发,发现根本就用不到那些书中的讲的二叉树、图、排序算法, 更加觉得这门课是在浪费时间了。

这种想法实际上是错误的。


学习数据结构,并不仅仅是学习其中现成的那些队列,堆栈,二叉树,图等经典结构, 也不仅仅是学习其中的那些快速排序、冒泡排序等算法。

更重要的是你要学习一种思想:如何把现实问题转化为计算机语言的表示。


计算机其实一种很笨,很机械的机器,只会按照预定的指令一步步执行, 而计算机语言的特点就是精确、无二意, 它的本质语言是二进制的, 即使是C,Java等高级一点的语言也只不过是包装而已, 它的表达能力并没有本质的提升, 仍然停留在很低的层次。


而我们用的自然语言则是典型的模糊的,不精确的, 程序员面临的一个重要问题, 或者是我们的主要工作就是怎么把自然语言描述的问题转化为计算机语言的表示。

到底该怎么转化, 《数据结构》已经给出了指引: 设计出数据结构, 在施加以算法就行了, 当然现实问题会更复杂, 需要框架,类库,模式等支撑。

这是一种非常重要的逻辑思维能力的锻炼, 也是程序员入门的条件。


很多半路出家的人, 仅仅上了个培训班后参加工作, 写出的代码实在是惨不忍睹, 很明显只掌握了工具,逻辑思维的训练远远不足。


就我个人而言, 大学时学《数据结构》以后, 为了准备高级程序员考试, 把里边的习题全部做了一遍, 发现真是受益匪浅, 不但高程的成绩非常好, 更重要的是在后来的工作中,遇到数据结构相关的实际问题, 基本上没有什么障碍,只要掌握了语言特性, 解决起来非常轻松。


总结一下,《数据结构》这门课其实会潜移默化的影响你的逻辑思维, 当然, 你需要多多练习才有可能使用纯熟, 等它变成身体一部分以后, 你就发现其实大部分编程任务都没什么难度了,更难的其实是对编程更高的要求:抽象的能力。




长按二维码, 关注"coderising"

加入QQ群:135769418 和更多热爱编程的朋友交流


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存