算法學習思路

不少前端童鞋對算法都有莫名的恐懼,究其緣由無非兩點:其一,對算法不瞭解;其二,沒有找到實際應用場景。javascript

1、爲何學習算法?

這是個頗有意思的問題,對算法感興趣的人,不須要問爲何,算法對他們多是一種興趣。曾經有位同事,他刷遍了全部算法題,只要有算法競賽,他都會去參加。固然,也取得了不錯的成績,甚至有了本身的世界排名。前端

一次閒聊中,我拋出了這個問題,他笑着說:沒有爲何,就是以爲好玩。我一直好奇,爲何有人會以爲算法好玩,興趣點究竟在哪裏?java

其實興趣算一部分,而另外一部分則是對編程能力的提高以及思惟的擴展。git

編程語言雖然該學,可是學習計算機算法和理論更重要,由於計算機語言和開發平臺突飛猛進,但萬變不離其宗的是那些算法和理論github

咱們用兩張趣圖來看看差異:面試

1.學習算法前,你可能這樣: 算法

before

2.學習算法後,你變的機靈了: 編程

after

2、如何入門?

那麼如何學習算法呢?這裏我推薦一本書《算法圖解》,超薄的小冊。書中經過一些簡單有趣的例子來闡述算法的應用場景。之因此選它做爲入門,是由於咱們能夠用很短的時間去翻讀。數組

若是你仍是以爲很麻煩,不用怕,我已經幫你準備好了學習筆記數據結構

書中是圍繞 Python 來寫的,爲了更適合前端童鞋閱讀,我已經將相關代碼用 JS 實現了一遍。固然,仍是有不少的細節,還須要深刻的去理解。可是最起碼,我再也不害怕算法了,反而慢慢有點喜歡了。

算法的重中之重是培養算法思惟。

當你可以對算法活學活用以後,那麼你就「大成」了。

3、後面的路怎麼走?

入門歷來都不是一件簡單的事情,在咱們打開這扇神祕大門以後,將會有更多的寶藏須要咱們去挖掘。

想要精通算法,在第一本書讀完以後,咱們還有更多的目標須要去完成。這裏由淺入深的列舉一些算法經典書籍,供你們參考學習:

1.入門系列: 《算法圖解》《大話數據結構》

2.教科書之類: 《數據結構與算法分析》

3.進階之旅: 《算法導論》

4.針對面試準備: 《劍指 Offer》《編程珠璣》

5.擴展閱讀: 《算法之美》《算法帝國》

6.實踐操做: 《算法競賽入門經典》《力扣題庫》

算法其實有不少經典書籍,咱們沒有那麼多的時間去逐一翻閱,可是咱們能夠有一條明確的學習路線。

這條學習路線就是:入門 - 進階 - 實踐 - 昇華

4、配合實踐

其實上面已經提到了,在咱們掌握算法思惟以後,最爲重要的一點就是刷題。相信不少童鞋都聽過 LeetCode ,目前題庫大概有 1000+ 題目,沒事了就去刷刷。

pie
固然,刷題也能夠由淺入深,先從簡單的入手吧!
leetcode

5、推薦學習

1.JavaScript 算法與數據結構

2.可視化學習算法的好工具

3.互聯網公司最多見的面試算法題有哪些?

4.算法練習,和我一塊兒來刷題吧~

6、總結

文章陸陸續續說了這麼多,大致總結以下:

  1. 算法很重要,尤爲是對於前端童鞋;
  2. 算法學習最好由淺入深,先了解算法思惟,再去理解實際應用;
  3. 從一本小而薄的書開啓,逐步全面的掌握相關知識體系;
  4. 推薦速成路線:《算法圖解》-《劍指 Offer》- LeetCode 刷題 -《算法之美》-《算法導論》;
  5. 去努力實踐,刷刷題庫,參加參加競賽;

好了,就這些吧,祝你們早日搞定算法,帶上算法的王冠,去領略算法之美吧。

相關文章
相關標籤/搜索