00. 数据结构与算法入门 | 开篇,如何学习

什么是数据结构,什么是算法

大部分教材里开篇都会有相关的定义,但是这些定义都很抽象,而且对于我们理解没有什么实质性帮助,所以我们不必死扣定义。那么来讲讲我的理解,数据结构就是指一组数据的存储结构,算法就是操作数据的一组方法。

可以以图书馆为例,为了方便查找,图书管理员把图书会按照一定规律放到书架上,这就是书籍这种“数据”的存储结构,而怎么才能查到一本书的具体位置,方法有很多,可以一本一本的找,也可以将图书分类然后再查找,这个查找的方法就是算法。

所以,数据结构和算法是相辅相成的,数据结构是为算法服务的,算法要作用在特定的数据结构之上

学习数据结构与算法的重要性

  1. 直接好处是能够有写出性能更优的代码。
  2. 算法,是一种解决问题的思路和方法,有机会应用到生活和事业的其他方面。
  3. 长期来看,大脑思考能力是个人最重要的核心竞争力,而算法是为数不多的能够有效训练大脑思考能力的途径之一。

知识体系

学习技巧

数据结构与算法学习,其实是一个很枯燥的过程,很容易就坚持不下来,其实可以使用学习技巧来提升学习体验:

  1. 边学边练,适度刷题;
  2. 多问、多思考、多互动,最好能和志同道合的朋友一起学习;
  3. 给自己设立一个切实可行的目标,就像打怪升级,坚持下来;
  4. 反复迭代、温故知新,不断沉淀。

学习的方法论

首先我认为学习分两点,第一,知识点的学习,主要是记忆和理解,相对简单,有清晰的目标,有良好的正反馈,学会了就是会了,可以拿来炫耀。比如,我可以告诉你帆船是通过走之字型逆风航行的,相信你很容易就能明白并记住这个知识点,但是你就能因此学会了如何驾驶帆船么,并不能,那么久引出了下面的内容;第二,技能的学习,这就需要刻意练习,不断纠正自己的错误,标准不清晰也就不容易量化,不容易形成正反馈,也就容易放弃。最典型的就是学习英语,需要反复练习,编程亦然,需要练习。

所以我总结以下几点关于学习的方法,希望和大家一起交流:

  1. 首先提高知识的广度,建立知识体系,再去拓展知识的深度;
  2. 制定切实可行的目标,一步一步来;
  3. 建立正反馈系统,可以跟牛人学,也可以和朋友一起学,对于错误能及时发现、及时纠正;
  4. 持续输出,可以写学习笔记、总结,也可以是代码和注释,如果能教会别人效果更佳;
  5. 坚持学习和健身,健身能够增加多巴胺的分泌,能使人身心愉悦,同时能提升延迟满足的能力,提高学习效率。

你可能感兴趣的:(算法-数据结构)