[A0-06]
数据结构与算法(依然简称DSA)是个非常开放的专题,学习过程没有终点,任何一门课程都不可能穷尽。然而有意思的是,反过来,它的学习过程也是分阶段逐层递进的。一门好的此类课程,应该可以让不同背景、不同基础、不同目标的学习者有一定的选择余地,这也是我们设计这门课的重要标准之一。
我喜欢将DSA比作汽车。
熟悉基本的数据结构的基本功能与使用方法,犹如拿驾照会开车能上道。
懂得不同DSA之间的差异及其适用场合,懂得针对问题需要选取适当的DSA,犹如懂得如何选购适宜于自己的汽车。
懂得对DSA做适当的裁剪、扩充和改造,并优化组合,犹如玩车的行家里手,有DIY的能力和乐趣。
探索DSA的优化极限,能够完成从内部优化到外部封装的整个过程,则是设计师与工程师的任务与要求。
因此只要定位清楚,心态平和,一些基本功相对薄弱的学生学习DSA是完全可行的。我讲授的另一门课程《计算几何》是面向本专业研究生的,但我对自己的要求却是,(在以上第一、二个层面上)要让高中生能听懂。如果实在遇到不能很快弄懂的,不妨直接跳过。好在,我会尽力使用初等的方法,并将相关的结论简明扼要地概括出来,如不愿推敲,先记下就是了,并不影响你继续前行。
最后,数据结构是典型的大学学习模式,不像中学,所有知识点都须面面俱到。学习的过程中,应更加关注自己“学到了什么”,而不是“什么还没学”。尽早地接触这种学习模式,相信对你日后的大学学习必有裨益。