这是什么?
数据结构是计算机存储、组织数据的方式,是指相互之间存在一种或多种特定关系的数据元素的集合。简单来说,数据结构就是讲怎么存放数据的。数据存放的方式不同,那么它们就有着不同的数据结构。
算法指的解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。简单来说,算法就是解决问题的过程。以不同的方式解决问题就代表着不同的算法。
为什么要学?
在学习过程中,我们会用到各种框架、中间件和底层系统,比如Spring、爬虫框架、消息中间件、Redis等等。 在这些基础框架中,一般都揉和了很多基础数据结构和算法的设计思想。
我们在使用时,使用的都是别人提供的接口。但是当出了问题之时,因为我们不会数据结构,所以我们很难看懂别人写的代码是什么意思,因为看不懂所以就只能去网上寻求他人的帮助,这就是码农。如果你能弄明白这些底层原理,你就能更好地使用它们。即便出现问题,也很容易就能定位。因此,掌握数据结 构和算法,不管对于阅读框架源码,还是理解其背后的设计思想,都是非常有用的。
有了足够的数据结构的知识作为基础,我们才能在编写自己程序是做到游刃有余。想要写出足够优秀的代码,没有充足的数据结构作为支撑是不可能的实现的,一个只会Ctrl+C加Ctrl+V的程序员是很难实现的。
如果说把写程序比作是修炼武功,那么学习框架就是在学招式,学数据结构和算法就是在内修心法。
学招式的人虽然前期发展很快,但是当到了后期就会显得乏力,当你的招式落伍了或者是被别人破解了,你想要重新学一手新的招式可能就不会那样顺风顺水了,毕竟想要改变曾经的习惯可不是一个简单的事情。
但是学内功的人虽然前面进展缓慢,但是当他们学至大成之时,一招一式皆为必杀技。任尔东西南北风,我自岿然不动。
小结:在数据结构和算法这块,总的来说会比学习框架枯燥乏味许多,但是它的重要程度是远远不是学习几个框架所能比的,所以,我们一起加油吧!嘿嘿