不少前端童鞋对算法都有莫名的恐惧,究其缘由无非两点:其一,对算法不了解;其二,没有找到实际应用场景。javascript
这是个颇有意思的问题,对算法感兴趣的人,不须要问为何,算法对他们多是一种兴趣。曾经有位同事,他刷遍了全部算法题,只要有算法竞赛,他都会去参加。固然,也取得了不错的成绩,甚至有了本身的世界排名。前端
一次闲聊中,我抛出了这个问题,他笑着说:没有为何,就是以为好玩。我一直好奇,为何有人会以为算法好玩,兴趣点究竟在哪里?java
其实兴趣算一部分,而另外一部分则是对编程能力的提高以及思惟的扩展。git
编程语言虽然该学,可是学习计算机算法和理论更重要,由于计算机语言和开发平台突飞猛进,但万变不离其宗的是那些算法和理论。github
咱们用两张趣图来看看差异:面试
1.学习算法前,你可能这样: 算法
2.学习算法后,你变的机灵了: 编程
那么如何学习算法呢?这里我推荐一本书《算法图解》,超薄的小册。书中经过一些简单有趣的例子来阐述算法的应用场景。之因此选它做为入门,是由于咱们能够用很短的时间去翻读。数组
若是你仍是以为很麻烦,不用怕,我已经帮你准备好了学习笔记:数据结构
书中是围绕 Python
来写的,为了更适合前端童鞋阅读,我已经将相关代码用 JS
实现了一遍。固然,仍是有不少的细节,还须要深刻的去理解。可是最起码,我再也不害怕算法了,反而慢慢有点喜欢了。
算法的重中之重是培养算法思惟。
当你可以对算法活学活用以后,那么你就「大成」了。
入门历来都不是一件简单的事情,在咱们打开这扇神秘大门以后,将会有更多的宝藏须要咱们去挖掘。
想要精通算法,在第一本书读完以后,咱们还有更多的目标须要去完成。这里由浅入深的列举一些算法经典书籍,供你们参考学习:
1.入门系列: 《算法图解》《大话数据结构》
2.教科书之类: 《数据结构与算法分析》
3.进阶之旅: 《算法导论》
4.针对面试准备: 《剑指 Offer》《编程珠玑》
5.扩展阅读: 《算法之美》《算法帝国》
6.实践操做: 《算法竞赛入门经典》《力扣题库》
算法其实有不少经典书籍,咱们没有那么多的时间去逐一翻阅,可是咱们能够有一条明确的学习路线。
这条学习路线就是:入门 - 进阶 - 实践 - 升华
其实上面已经提到了,在咱们掌握算法思惟以后,最为重要的一点就是刷题。相信不少童鞋都听过 LeetCode
,目前题库大概有 1000+ 题目,没事了就去刷刷。
文章陆陆续续说了这么多,大致总结以下:
好了,就这些吧,祝你们早日搞定算法,带上算法的王冠,去领略算法之美吧。