浅谈算法书籍学习路线

本人不才,现已大三,虽未摸透计算机科学中的奥妙与精髓,却也小小的翻阅了一些经典著作,近日偶应一友人之约帮其整理算法学科相关的学习路径,本着自身的经历与感触写下这篇拙文,若文中观点表述不当,欢迎广大网友的批评与指正

道理大家都懂,但想要真正的领悟却是十分的困难的,因为它会先让你体会到苦难的滋味,这就叫做实践

不知道大家有没有发现,但凡学习算法编程,如果没有大量的上机实验,是很难做出一定的成绩的。 这似乎是每个学习算法的同学都会知晓的一个大道理,然而真正能够领悟并且付之于行动的人是少之又少,为何会这样呢,因为好东西是要亲自去尝试才会有结果的,但往往我们喜欢做的是能够先看得见摸得着的事情,对于未知的东西往往兴趣不大,如果在探索的过程中出现了大量的阻力那么进一步探索的积极性也会丧失掉一大半,所以先易后难这才是学习的正确路线,我向来不喜欢一开始就去啃所谓的神书《算法导论》之类的砖头书,为什么呢,可能你并没有注意到它是出现在工具书分类之中的,也就是说这些神书其实是和新华字典一样之类的工具书,只有到了需要了解一种算法的时候才去翻阅的字典书,多么痛的领悟,当你啃完这本书的时候,你就会发现自己的技术水平似乎并没有想象中的那样提升,因为事实上小学学习语文的时候我们并不是因为学而去看新华字典,而是因为要去用时才去翻阅新华字典的。

要知其然才所以然

说这句话是因为我们首先要明白自己学习的东西到底是什么来路,或者说总得知道我们学习的目的,一般选择学习算法的同学都会是计算机相关专业的,那么问题来了,你对于自己的专业或者说计算机这个东西到底知道些什么呢,这就要求要有一个非常宏观的认识,在这里我推荐两本填补这一块知识漏洞的书籍:
《世界是数字的》
(无论你有没有计算机背景,无论你从事什么职业,只要你认同自己生活在数字时代,这本书就是必读的!)

《编码:隐匿在计算机软硬件背后的语言》,
(本书讲述的是计算机工作原理。作者用丰富的想象和清晰的笔墨将看似繁杂的理论阐述得通俗易懂,你丝毫不会感到枯燥和生硬。更重要的是,你会因此而获得对计算机工作原理较深刻的理解。这种理解不是抽象层面上的,而是具有一定深度的。)

这两本书是经过本人反复思考之后才予以推荐的,因为实在是找不出比这二位更加合适的书籍了,一本是帮助了解计算机世界的宏观角度,一本是帮助认知计算机的微观世界,实在是相辅相成,起到了1+1>2的神奇效果。

现在就开始,由简入深

说到算法,大家估计都会默默的想起数据结构,算法和数据结构二者结合度很深,说到数据结构相信大家都和我一样都是先学习基本的语言基础,然后开始接触数据结构的,作为过来人,我不得不说数据结构是一门充满挑战性的课程,倒不是说数据结构有多难,而是这个学习过程中的方法很重要,因为你需要做的不仅仅是要把数据结构学明白,而且还要在有限的时间内掌握全面的数据结构知识和编程知识。这个难度就比较可观了,所以我的经验就是第一遍也是最重要的就是概念,学习数据结构你一定也必须掌握数据结构的概念,即使不会编写程序,概念也是要铭记在心的,类似于武功心法,可以先不练,但概念一定要懂,什么程度才算及格呢,大概类似于你看见good就知道是好的这个意思,这种程度就差不多了。在这里我推荐大话数据结构,记住一定要短时间内将《大话数据结构》里的概念都搞懂,那些伪代码看看就行,搞不懂可以先放一放,但是概念是一定要牢记在心的,学习算法看伪代码如果是新手估计还是有点吃不消。

逐渐上手,积累经验

当你翻阅完《大话数据结构》里的概念的时候,一定是满头雾水,因为你会发现自己还是什么都不会编,编程的境界其实有点类似于做数学题,当你掌握了其中的模板,可以根据经验解出合适的答案,编程也是如此,当你有一天能够根据问题的题意,知道如何利用编程语言编写解题程序时,这才算是入了编程的大门了,所以在没有经验的情况下,模板是一个十分重要的选择,初学者最忌讳的就是一上手就是难度加加的一本书籍,结果书籍还没啃完,课程就已经结束了,我非常建议初学者看有完整源码的数据结构的书籍,因为学习本身就是一种模仿,不要重复的去造轮子,如果一开始就没有一个大概的方向是很难做出什么好的结果的,这也是我们为什么要站在巨人的肩膀上时,才能够看的更远的前方。这里的推荐有很多,我先推荐一本比较有趣的又有完整源码的书籍:《啊哈!算法》,这本书我读过两遍,虽然说本书后面的内容有些生涩,但前部分却是精华之作,对于初学者来说,这是个不错的选择,当然如果你看到后面发现比较生涩,大可放心的把它放下,因为这本书的精华重点还是在前面。

渐入佳境,系统学习

有这样的一些书籍,明明是这种用途,却出奇的能够达到另外一种意想不到的效果,《算法笔记》本来是用来给考研浙大学子的PAT机试辅导书籍,但是也许是太优秀了,个人读过之后,感觉自己的数据结构与算法知识似乎被全面完全系统的梳理过了一样,给人耳目一新的感觉,如果你现在学习完数据结构发现自己似乎对于以前的知识点有些遗漏之处,那么这本书无疑将会是你的一大得力助手。它将会带你走进一个更加清晰的算法世界 。

正在路上

很显然能够走到这一步的人不多,因为一路走来阻力太多太多,没有一个好的学习环境和心理素质是很难在苦闷枯燥的学习过程中坚持下来的,一直有人问着同样的一个问题:所谓的高效的学习方法到底是什么?,其实我是十分的不解的,为什么要去追求所谓的高效呢,难道它不就在你的身边吗,不管黑猫白猫,能抓老鼠就是好猫,我想这句话大概是邓公对于我们后代最大的一个贡献了吧。艺无止境,诚惶诚恐,加油,加油!

你可能感兴趣的:(大学生活)