輕鬆自學 JavaScript 演算法與資料結構 — Udemy 課程心得

by 好豪
Published: Last Updated on

JavaScript Algorithms and Data Structures Masterclass 是為軟體工程師面試開設的演算法教學課程,由 Udemy 上教學 網頁程式設計 著名的講師 Colt Steele 開設,擁有 4.7 顆星以上的超高評價!

為了複習很久沒練習的演算法、同時進一步學習 JavaScript,我完成了這門課,在這則筆記記錄我的課程心得。

課程內容

包含超過 20 小時的影片教學,還有超過 80 題程式練習題,我認為分量剛好足以入門演算法,而且不會講太刁鑽、或者面試題太少考到的內容。

涵蓋的主題,都是資料結構與演算法的必備基礎,包括:

  • Big-O Notation
  • 各種排序:Bubble, Selection, Insertion, Quick, Merge, Radix Sort
  • 線性結構:Linked List, Stack, Queue
  • 樹:Binary Heap, Tree Traversal
  • 圖論:DFS, BFS, Dijkstra’s 最短路徑演算法
  • Dynamic Programming

雖說都是必備基礎,不夠熟悉這些主題的話、依然很容易忘記,建議善用 間隔重複法 來幫助記憶:每隔一段時間就複習教材、測試自己是否有記好解題流程與時間複雜度。也可以把演算法的書(例如 演算法圖鑑)放在手邊、或者把好用的 VisuAlgo 網站 加入書籤,提高自己複習的頻率、強化記憶。

課程特色:三步驟教學

1. 解決問題

在第一步驟,講師會說明為什麼要學這個演算法、問題的核心困難點、並且用動畫清楚地介紹解題流程。在這個階段,釐清脈絡後最重要的成品就是 Pseudo Code

講師強調,面對演算法面試題,只要你能順利向面試官說明你的解決問題流程,就算你寫的程式語法不完全對,也有機會順利過關。因此,釐清思緒、並寫好 Pseudo Code,是非常重要的環節。

如果你對這門課所介紹的解題流程有興趣,可以參考好豪的另一則筆記:Code Interview 解題原則

2. 寫程式

只要釐清了思緒,寫程式階段就像填空一樣,將 Pseudo Code 用程式語法實現就好。講師寫的 JavaScript 語法不是追求最乾淨的程式碼、而是選擇直白的寫法,所以程式碼相當好懂。

Colt Steele 的解題法:寫好 Pseudo Code,再補上程式碼(Source: Colt Steele 的演算法課程

3. 比較複雜度

講師不只會講一種解題法,所以需要比較時間與空間複雜度,了解各個方法優劣勢為何,這也幾乎是演算法面試必問題。

適合哪些人?

我建議開始這門課之前,需要有寫過任何一種程式語言的經驗、不限定是 JavaScript,至少要知道 loop、function、return 是什麼。

(如果真的沒有程式基礎,freeCodeCamp 是個免費又好用的初學資源)

資料結構與演算法初學者

這門課的內容是最基礎的演算法,只要你對資料結構與演算法有興趣,不需要任何數學先備知識、可以馬上開始上課。

在找尋大量習題的 JavaScript 學習者

課程中附上的 JavaScript 習題,都是跟課程提到的演算法直接相關的,在看完一章節的影片之後、馬上動手寫相關主題的習題,會有更好的學習效果。而且習題難度適中,只要有看懂影片,解題就不會太難。


同個主題,講師已經幫你切分成更小的問題,足夠練習、也不會讓你想破頭還解不出來(Source: Colt Steele 的演算法課程

想快速複習 Coding Interview 的求職者

這門課是為了軟體工程師面試而設計的,內容十分精簡,就算你在學校學過演算法,這門課也適合快速複習觀念。或者運用剛剛提到的「三步驟教學」特色,如果你已經有點演算法基礎了,就在學習過程中好好思考:究竟自己還沒搞懂的是哪個部分?解決問題(Pseudo Code)、程式語法本身、還是時間/空間複雜度?

我不懂 JavaScript,還適合上這門課嗎?

當然可以!這門課雖然都是用 JavaScript 來講解,但是並沒有使用複雜的語法(例如 ES6),只要你學過任何一個程式語言,花個幾分鐘快速看一下 JS 語法,肯定能看懂課程內容。

如果你愛的是 Python…

我在上課同時,也喜歡用 Python 練習資料結構,要搭配這門課,好豪推薦一本免費的線上課本 Problem Solving with Algorithms and Data Structures using Python。課本的內容與難度都和此 Udemy 課程相近,我會看完講師 Colt Steele 的教學影片後,再來這本課本看 Python 版本的演算法寫法、也使用這裡的 Python 習題練習。

結語

如果你想找軟體工程師工作,幾乎都少不了演算法面試題,這門 JavaScript Algorithms and Data Structures Masterclass 課程不論是初學或複習,都是很好用的教材,幫助你打好演算法基礎、寫 LeetCode 練習面試題更順利。


你喜歡線上課程自學程式設計嗎?也推薦你閱讀我的 Udemy 自學 Python Flask 後端開發心得

如果這則筆記有幫助到你,歡迎追蹤 好豪的粉絲專頁,我會持續分享 Python 以及資料科學相關文章;也可以點選下方按鈕分享,讓更多想提升 Python 技能的朋友看到!

推薦閱讀