求知路上的心声:这两天在群里看有同学在讨论,学习数据之前敲起代码好有激情,就像开机甲似的,学习数据结构之后才发现这么多东西,都不知道自己以前打的都是些啥。这段话很无奈也很真实。可以说没有数据结构和算法代码也只剩下输入和输出了,而且输出和输入之间基本上什么逻辑也没有。同学们认同吗?

我们思考一下,学习数据结构和算法到底在学习什么?

1. 数组的组织和处理方法,这是逻辑。

2. 实现数据结构和算法的过程除了训练自己的思维就是再练习编程语言。

但是很多时候,大家抱怨的不是逻辑难,因为我们学习的逻辑都是前人总结出来的,能考上大学的同学,逻辑思维都不差,我相信大学单纯的学习逻辑肯定没有问题,而且,算法问题其实都是有套路的。那到底难在哪呢?我相信大多数同学其实是被编程语言蒙蔽了,一直困扰在代码到底该怎么实现上。这样的同学应该回过头来再好好学习一下编程语言,因为编程语言的障碍,让你迟迟没有入门,或者根本就没有入门数据结构,甚至毕业的时候还大有人在,不夸张的说,工作了很多年还有人不知道数据结构是什么,为什么面试要面数据结构和算法?

当然,抱怨数据结构与算法难的人中还有一部分人是真的学的很好的。他们在思考,为什么排序算法会有六大基本算法、四大高级算法,这些都是咋总结出来的。为什么要使用链表,链表能帮我们解决什么问题。为什么要有动态规划,动态规划的套路怎么深。说到这里,让我想起来了“王国维”在《人间词话》中提到的学习的三种境界:

1. 昨夜西风凋碧树。独上高楼,望尽天涯路。”此第一境也。
2. “衣带渐宽终不悔,为伊消得人憔悴。”此第二境也。
3. “众里寻他千百度,回头蓦见,那人正在,灯火阑珊处。”此第三境也
而往往,我们豁然开朗之后却发现有更多的内容我们不会。学习就是这样循序渐进的过程。正所谓无知者无畏。

术与道

工作这么多年了,我的心理经历了一些变化。不知道是因为自己的知识和见解在增长,还是因为年龄的增加而带来的三观变化。10年前,刚刚步入工作岗位的时候,我在思考:

1. 正规军打不过游击队

2. 学校的专业课有啥用

这里所谓的“正规军”是指,经过系统的计算机专业课程学习,并获取了学位的同学们。往往,他们还是学校里的佼佼者。而所谓的”游击队”, 说的是没有进入过高校系统学习,而是通过培训班学习的同学们。我为啥感觉正规军打不过游击队呢?因为我是正规军,而且是王牌部队。但是,我怎么感觉培训学校出来的学生怎么什么都会做,做的东西还好绚,总是那么跟着潮流。而我学的那些数据结构,算法,有啥用呢?

10年过去了,似乎那只是表面现象,我越来越明显的感觉到:

1. 在挑战面前,还得厚积薄发。

2. 同样的技术,我们总能学的快一些。可塑性强。

3. 大厂,基本甚至绝对不会选用游击队。

4. 大佬们,都有着卓越的教育背景。名校毕业,名师之徒

这其中的原因我相信也不用解释了。但是,这揭示了一条规律,我们要珍惜目前的学习机会,我们之所以要开这些专业课,因为它特别重要。它或许不是当下最流行的技术,但是它确实经久不衰,将要影响我们整个工作生涯的基础知识。

换句话说,我们修的是“道”,我们练的是“术”。数据结构就是一门修“道”的课程,而编程语言就是一门”练术”的课程。没有“术”,修的“道”也是纸上谈兵。大家知道他们有多么重要了吧?

当然,这不是说培训班的同学们就没有前途。我也遇到过很多培训班出来的同学后来发展的很好,但是你知道吗?他们付出了比我们更多的努力。所以,培训班的同学们,你们要更加努力,寻找资源,丰富自己,将自己确实的部分赶紧补上。

我是谁:我不是一名老师,但是当我开始关注社区,开始关注现在同学们学习热情的时候,当我在学习的道路上认识一些良师益友的时候,我感觉到其实我也有义务为大家做点什么,为名族为历史,为自己留下一些记忆(有些夸张了哈,但是是真话)。我不知道我能否成为一名优秀的导师,能否成为你学习道路上的朋友。但是我是快乐的。不管你是否把我当成卖视频的小哥。

为了扫清大家在学习数据结构道路上的障碍,我录了一门关于“指针专题讲解”的课程,因为我觉得单靠一个问题一个问题的回复大家,不仅大家获取的知识零散,而且也浪费时间,效率低下。我不知道一元钱算不算贵。算是我收的电费吧。

坦白的说,数据结构,算法,设计模式之类的课程,其实应该说是关于“道”的课程,都与编程语言无关。所以我也希望看我其他关于算法专题(数据结构与算法基础链表专题排序专题经典面试题辅导)的同学们,不要再责怪我,为什么不是XX语言写的。重要吗?正好您还可以利用这门语言很好的练练手,不是吗?

最后希望大家在学习的道理上越走越远,越来越顺畅。也希望我自己的工作更加顺利,能高效的学习新的知识。


更多推荐

到底是什么阻碍了我学习数据结构? - 算法与数据结构面试分享 (二十九)