top of page
電腦

BHRC X Arthur
演算法 實力養成班

Course Price

NTD

$21,600

Course length

18 堂

課程內容

課程時間:共 16 + 2 堂(2022 年課程時間待定)

Lesson 1:Introduction to Algorithms

Lesson 2:Binary Search

Lesson 3:Recursion

Lesson 4:Hash Table & Set

Lesson 5:Two Pointer

Lesson 6:Stack & Queue

Lesson 7:Monotonic Stack & Sliding Window

Lesson 8:Linked List

- 期中測驗與面試練習 -

Lesson 9:Tree (BFS & DFS)

Lesson 10:Tree (BST)

Lesson 11:Priority Queue

Lesson 12:Backtracking

Lesson 13:Graph 1 (BFS & DFS)

Lesson 14:Graph 2 (Shortest Path & Union Find)

Lesson 15:Greedy

Lesson 16:Dynamic Programming

- 期末測驗與面試練習 -

課程內容

​為什麼學習演算法?

BHRC 長期致力於協助軟體工程師有更好的職涯發展。在我們 10 年的經驗裡,觀察到軟體工程師如果希望能尋求更大國際舞台、或是大型科技公司的工作機會,「演算法考試」常常是面試中很重要的一環,很多資深工程師都會用許多時間刷題準備,對很多非本科班出身工程師也是一大挑戰。

 

良好的演算法基礎,除了對準備面試有幫助,也可以讓工程師在開發時更具備敏感度,能第一時間發現可能的效能瓶頸並及早處理。或者在挑選不同工具時,能更準確的理解該工具的原理與適用情境,同時減少抽象滲漏的危險。因此幾乎可以說,演算法是軟體工程師職涯發展更上一層樓的重要基礎。

 

因此,BHRC 特別和講師 Arthur Lin 合作,花了半年的時間籌備,開發一套 16 堂 32 小時的演算法課程,我們和 Arthur 認識多年,看著他在專業路上一路成長,Arthur 畢業於台大物理系/物理所,非資工本科系畢業。畢業後自學資料結構與演算法,一開始也遭遇困難,後來持續嘗試學習與上課,終於融會貫通,幾年間從白紙一路進步到可以在 Leetcode 競賽上進入全球 1% 以內。工作上,也從歷任台灣知名新創公司,到通過重重關卡,拿到頂尖日本獨角獸的 Offer,前往日本發展,回國後在國內知名加速器擔任網頁後端的導師。Arthur 將他多年學習演算法的經歷,淬煉成這一門課,希望可以協其他人更高效率,更有樂趣地學會演算法。。

​講師介紹

螢幕快照 2021-07-18 下午4.46.54.png
Instructor

Arthur Lin

- 專精後端與數據處理
- 歷任台灣知名新創公司
- 日本獨角獸公司資料工程師
- 現任台灣知名加速器網頁後端導師

為什麼學習演算法?
講師介紹

​關於這套課程的特色

瞭解學習的苦:

講師 Arthur 自學成為工程師,花了大量的時間精神掌握面試工作必備的演算法與資料結構知識,充分瞭解非本科生學習上的困難,希望協助大家度過辛苦的學習時光。

IMG_3655.jpg

課程連貫,重要概念深入淺出:

整套課程都由 Arthur 獨立設計,不會因為是由不同講師授課,而影響連貫性。Arthur 依據工作與面試常見的演算法考題,每堂課設計不同難度的主題,講解每種演算法與資料結構的核心概念及其應用方式,並帶學員在課堂上做基礎練習。

工作空間

小班制課程設計:

本課程為小班制,掌握每位學員的學習進度提供合適協助,確保每位想學的同學都可以學會。Arthur 有豐富經驗協助進度較慢的學生突破學習瓶頸,給進度較快的學生更多挑戰,客製化設計作業,課後如有疑問,也可以一對一諮詢幫助學員釐清卡關的地方。

鉛筆

課後練習:

除了觀念的學習之外,練習是非常重要的一個環節。Arthur 針對每堂課,從 Leetcode 與實際面試的考題中,精心整理出合適的練習題,分爲三種難度,初階題的目標是讓每位學員課後都能完成來加深印象,進階題則讓有更多時間的學員加強概念,挑戰題則是給能力較突出的學生,學習該觀念的各種經典複雜變化。

關於這套課程的特色
Arthur 課程設計理念專訪

Arthur 課程設計理念專訪

Q: 請問 Arthur 怎麼會想開設這門課程? 

 

開設這門課程,主要是希望能協助同樣曾經在演算法卡關的同伴。

 

基礎資料結構與演算法是資工系大學時的必修,但對像我這樣的轉職工程師來說,常常是缺少的重要一環。大多數 Junior 工作幾乎練習不到演算法知識,甚至會覺得不需要。但一跨到 Senior 時,卻常常是面試必考項目,工作也會開始用上這些技巧,此時才驚覺自己缺少這塊技能,這就是我曾經遭遇到的困難。

 

這堂課就是為了曾經的我,以及和我類似的人設計的,對於轉職的非本科軟體工程師,或有很好實作能力,希望職涯更往前走時,遭遇演算法挑戰的人,這是一堂很合適的課程。

Q: Arthur 當初是如何學習演算法的? 

 

剛開始,我也是從線上課程開始,但每次報一堂課,聽了幾堂就很難繼續,一來因為下班後容易疲累,二來也缺乏成就感的回饋,意志力就很容易疲乏,後來因為想出國工作,有面試的實際壓力,只好逼自己暴力在 Leetcode 上邊刷題邊學習。後來發現直接刷題還滿有成就感的,每一題寫出來就很開心,寫不出來就看解答,看解答解出來也很開心,內在動力就培養出來,每一題都學到些片段。但這樣學的代價就是知識很零碎,得花更多的時間,靠著幾百題的累積,才能慢慢把知識點都連起來,而且中間會浪費很多時間,從各處學到華而不實的技巧,卻反而沒掌握最核心萬用的重點,而且久了那些奇技淫巧也記不起來,導致原地踏步。後來我還是有上了較有規劃的進階演算法課程,才確定自己確實掌握了核心的技巧。今天這堂課的設計,就是希望讓大家可以用最少的時間與痛苦,來走過上面這段過程。

Q: 一般學習演算法通常會遇到什麼問題? 

 

一開始學習演算法,常常找不到方向,即便很努力看懂了討論區的答案,也只會覺得這想法太神了,自己怎麼可能想得到,結果就是下次遇到稍微變化的類似題依然不會寫,感到很挫折。但這其實都是因為抓不到該題目真正想考的核心概念,如果核心概念掌握住,就能一通百通。因此,最好的學習方法,是先理解現在要學習的概念是什麼,之後挑選適合自己程度的練習題印證所學,再挑戰稍微變化的相似題,確認概念細節都能確實掌握住,直到把核心概念理解通透成爲自己的東西,未來看到類似題就像直覺反射一樣,再也不會忘記。

Q: 如果遇到有學生學習卡住了,會怎麼辦? 

 

主要會去尋找學生缺少的知識點,例如一個較難的題目可能同時需要三個概念,但學生只會一個,此時需要的就是先挑觀念更單純的題目讓學生練習去補足知識點,之後再回來看,才會事半功倍。如何挑選最合適的題目就是老師的價值了。曾經班級上有學生嚴重落後,在幫他客製化練習方法後,在班級結束時,他已經完全追上大多數人的進度。

Q: 這堂課最適合誰? 

 

最適合會寫程式,想要學習或加強演算法的工程師,或是雖然自己刷題練習也能進步,但希望能有個有經驗的人帶,增加學習樂趣、提升學習效果、最有效率的運用下班時間學習演算法。如果你還是剛入行的 Junior 菜鳥工程師,這堂課可以讓你提早準備累積專業,快速與其他新人拉開實力差距。如果已經工作過一段時間,也適合幫助你突破面試需要的演算法門檻。

Q: 這堂課與其他線上線下教學資源最大的差異是什麼? 

 

最大的差異是這堂課能根據學生的學習狀況,給予最合適的前進方式。一般學習有分舒適區、恐慌區與學習區,當教材太簡單就會停在舒適區,進步非常緩慢,但教材太難的時候就會進入恐慌區,學習痛苦指數會直線上升,此時只能靠意志力硬撐過去,但人的意志力是非常有限的稀缺資源,一旦有其他需要忙的事,就沒力氣再增加負擔了。而一般的新手較難區分教材的難易度,即便如 Coursera 或 Udacity 等知名平台上的好課,初學者也時常無法良好掌握,此時如果有教練能根據學生的狀況,給予適合程度的題目與題材做訓練,如此只需專心完成交辦的任務,就能持續保持在學習區裡面,用最快速度前進。

Q: 上完這堂課可以達到什麼水準? 

 

上完這個課程後,如果有認真完成基礎與進階練習,以 LeetCode 的標準來說,Easy 題應該大多都能做,經典常見的 Medium 題也能理解解題方向,足以涵蓋大多公司會考的觀念。16 堂課裡,會反覆穿插核心概念與基礎練習,確保初學者都能掌握,同時也會帶部分較進階的概念,讓本來基礎較好的學員可以得到更多,而初學者則可以先聽過進階的概念,未來要挑戰時會加速非常多。課後則會提供各種不同難度的題目,有一些挑戰性很高的經典難題,讓更有餘裕的學員來掌握。

Q: 上這堂課,一個禮拜會需要練習多久時間? 

 

每週會需要最少 4~6 小時的課後練習,更多當然成效更好,畢竟學習一個較為紮實的概念,必要的努力時間還是不可省的,但這堂課就是希望同樣要花時間與精力,可以花的最有效率、最有價值、也最有成就感,參加者本身真的有學習動機,成效才更能顯現,讓辛苦的價值最大化。

學員心得分享

學員心得分享

Jack.jpg

Jack​

日商新創公司 後端工程師

“ 有Arthur老師的教導,事半功倍 ”

 

本期是採用線上教學。上課主要會用幻燈片加 iPad 黑板雙邊進行的方式,Arthur 老師講得很詳細且易懂,互動式講解加課堂實際練習的方式比其他線上課程更有帶入感,會根據上課狀況在比難理解的內容上用動畫以及畫圖方式呈現。課後若提遇到困難也可以直接問,感謝老師讓原本枯燥的學習過程變得更有趣,寫起來比以前更有自信!

Tim.jpg

Tim

台灣大型電商上市公司 後端工程師

 

* 畢業後三個月內錄取 Carousell 後端職缺

回過頭來看這幾個月,覺得真的很幸運能在學習路上遇到 Arthur,讓刷題變得不再那麼困難,藉由各個主題學習資料結構和演算法,了解其核心思維及解題應用,更重要的是提供大量依照難度分類的練習題,讓我能循序漸進的在課後進行練習。在這段時間竟然能刷兩百多題,是我從來沒想過的事,覺得自己又往前跨了一大步,真的很感謝 Arthur。

Shelly.jpeg

Shelly

港商區塊鏈公司 後端工程師

以前寫 Leetcode 題目,常常不知道如何下手,因為當時完全沒有任何演算法的概念,於是連 sudo code 都不會寫,對很多其實要用某種演算法才能解的題目,完全連提筆都無法。Arthur 的課程帶我們循序漸進的從簡單的演算法開始,慢慢進入難的演算法,並搭配不同程度的 LeetCode 題目去增強我們的信心,讓我現在碰到 LeetCode 不會像以前那麼恐懼,甚至有些一看就知道背後是需要用到哪種演算法,收穫非常大!

 

演算法是前人幾百年知識的累積,如果沒有受過訓練,在寫 LeetCode 的當下要憑空靠自己的邏輯變出解法,是不可能的。且很多演算法,其實懂了之後,聽過之後,也發現並不是什麼高深的學問,但是得有人告訴我們第一次!於是,非常推薦這堂課,對於轉職,沒有任何理工科大學訓練,沒有聽過很多演算法的工程師,是非常大的幫助!

博宇.jpg

博宇

台中軟體公司 後端工程師

在自己練習的時候,常常會選到太難或者太簡單的題目,沒目標自己摸索會浪費很多的時間,在課程上從簡單到困難,一步一步來,覺得會有很大的收穫!也對演算法整體上有一個了解,接下來準備或者學習至少都會知道自己目前在哪一個階段,就算當下沒有了解或者之後忘記了,留下的投影片與影片都可以回頭看加深自己的印象,覺得很讚!!

Paul.jpg

Paul

港商區塊鏈公司 區塊鏈工程師

以前學演算法跟資料結構都是自學,拼拼湊湊其實沒有到很完整,不知道從哪一個章節或哪一題開始看,很多時候都是直接看討論區的解答才懂,可能花一個下午在分析別人 code 在做甚麼,概念是甚麼,效率十分低下。這堂課系統化的學習,解決了我很大的難關,讓我受益良多,感謝 Arthur。

IMG_20150626_195838.jpg

JT​

知名新創軟體公司 工程師

“ 這堂課讓非本科系的我對演算法建立信心,刷 leetcode 很有成就感 ”

經過本次課程,讓非本科系的我對資料結構與演算法有更深入的理解,從原本 leetcode 直接跳過 medium 題,變成刷題數有 4 成都是 medium,這滿滿的成就感是無法言喻的,另外也多虧小班制的設計,讓我的每一個疑惑可以快速得到解答,而最重要的是課後的練習題做了精心的分類,讓不同程度的人都能建立自信心,很幸運能剛入行不久就接觸此課程,感謝 Arthur 大神的帶領~

S__121749514.jpg

小明

大型新創軟體公司 工程師

“ 藉由 Arthur 的課程和練習,逐步建立演算法解題的思路,慢慢培養出興趣 ”

 

Arthur 是很有教學熱忱且細心的老師,課程進度流暢,會帶領大家順著思路循序漸進地理解演算法,配合題型從基礎到變化,使一起動腦思考的過程變得滿有趣的;除了具備深厚的知識背景外,Arthur 總是能藉由問答互動了解我們的問題點、照顧每個人的對答與反應。經過 Arthur 演算法課程後,對於往後練習題目的思路是非常有幫助的,會想要慢慢培養出興趣,滿值得的。就醬~再次謝謝阿蛇,刷一排愛心 <3 <3 <3 <3 <3

螢幕快照 2021-08-11 下午12.31.25.png

Raymond

大型新創軟體公司 工程師

“ Arthur 講得詳細易懂,讓我們主動思考,非常喜歡這種教學方式! ”

課程雖然很緊揍,但老師會把常見的演算法與公司考題講得很詳細且很容易懂,並給予我們主動思考的機會而不是一昧的直接給予解答,確保我們真的有吸收觀念,非常喜歡這種教學方式,在課後做練習題遇到問題時,無論何時老師都很熱心解答,不吝嗇花自己的時間,協助解惑,對這課程很適合從完全沒碰過演算法到可以面試對付大部分白板題的工程師,強烈推薦!

螢幕快照 2021-08-10 下午10.22.53.png

Ingrid

AI 新創軟體公司 工程師

“ 很幸運在踏入程式世界的開端遇見 Arthur,聽完 Arthur 鼓勵都會覺得滿血回歸 ”

每條路上的啟蒙老師都是最最最重要的角色,很幸運在踏入程式世界的開端遇見Arthur,不管是在基礎知識、實作上都給予受用的觀念,更重要的是對於菜鳥工程師心態的建立,每次聽完 Arthur 的鼓勵就會覺得滿血回歸,也希望自己在這條路上可以走得遠學得遠!

bottom of page