從零到一:程式導師實驗計畫

前幾天我在滑臉書的時候,看到了這個 UX Mentorship Program,覺得很有趣。其實我之前也有想過類似的東西,但始終沒有付諸行動,這次趁著熱度還在,下定決心要來弄一個程式版的導師計畫。

在開始介紹這個計畫之前,先來簡單介紹一下我自己。

寫程式寫了十年,工作經驗約兩年半,實習的時候寫過 PHP、Corona SDK,第一份工作寫過 Android、Node.js,之後的兩份工作都是專職前端。

目前在新加坡工作,職稱是資深前端工程師。如果你想知道更多,可以直接參考我的 Linkedin。如果想看我做過的作品,基本上公開的只有一個,其他都是一些內部系統,可以到這裡

你問我哪部分是我做的嗎?全部。
(其實是我接手上一個同事的,但是後來有大改版,所以看到的基本上都是出自我手。不過我離職之後有新的同事來接,所以有部分功能例如說排行榜之類的是我同事寫的)

喜歡分享,也喜歡教學,寫過最多人看的程式相關文章應該是這篇:

教學部份的話,在 Hahow 上面有一門付費線上課程:初心者的計概與 coding 火球術,課程宗旨是把計算機概論講得更簡單,幫初學者打基礎。

免費課程有開過兩堂,在我自己的課程平台 Lidemy 上面。第一個是從新手到中手:前端工程加強班 ,藉由不斷增加新功能的作業來提升前端技術。

第二個是導讀哈佛大學程式課程:CS50。幫一堂我很推崇的課做導讀,我也創辦了相關的中文討論區社團,並且持續推廣這堂課,之前還自己跳下來做導讀,希望能多少降低一些入門門檻。

關於上面這些教學,我有寫了兩篇心得:一場三十人的免費程式教學實驗:成果與檢討以及 Lidemy 鋰學院:為初學者而生的線上程式課程平台

除了線上課程,我還喜歡寫一些技術教學文章(類型偏向前端),例如說:

  1. 我遇過的最難的 Cookie 問題
  2. 前後端分離與 SPA
  3. DOM 的事件傳遞機制:捕獲與冒泡
  4. 循序漸進理解 HTTP Cache 機制
  5. 輕鬆理解 Ajax 與跨來源請求
  6. 該來理解 JavaScript 的原型鍊了
  7. 讓我們來談談 CSRF

以上列舉幾篇我覺得寫得比較不錯的,如果想看更多的話,可以到我的部落格或是參考我去年參加鐵人賽的主題:Half-Stack Developer 養成計畫

最後則是喜歡紀錄一些自己的故事,例如說我與 Stripe :一段愛與夢想的故事一個工程師的履歷進化史。如果你想更瞭解我的背景,可以直接參考這系列文章:

從上面零零總總應該就能看得出來,我是個很喜歡分享跟教學的人,但其實我最想做的事情,卻一直沒能做到。

我想把一個毫無基礎的人,帶到能成為軟體工程師並且找到工作。

這是我最最最想做的事。我之前所做的那些教學,某種程度上都是為了這個目標而鋪路。

但我做不做得到?我不知道。

我覺得我可以,但也有可能是我自我感覺良好,搞不好我教學能力根本奇差無比,講解都越講越難懂。

這也是為什麼我在標題放上「實驗」兩個字,因為這個就是一場實驗沒錯,實驗我有沒有這個能力,而實驗品就是想報名的你。

好,接著可以來介紹一下這個計畫到底是什麼了。

計畫詳情

這個計畫很簡單,目標就是:

四個月內,把你培養成一個找得到工作的網頁工程師(前端或後端)

那實際上怎麼做呢?之前我有寫了一份學習計畫,是希望給那些沒有方向的初學者參考用的,這次課程基本上會照著這個走(大致上一樣,但會有些小幅修正):

不過如果你想走前端的話,前端會多教一些東西,例如說 React 之類的。總之呢會教的東西就是基本的前端後端,搭配一些基礎程式能力培養(避免你連雙層迴圈或是字串反轉都寫不出來)

因為我一直很強調自學的人需要作品集這件事情,所以最後也會讓你有一個作品,例如說留言板、部落格或是論壇等等。但除此之外,你最好能夠在結束之後自己再做一個,因為自己做跟有人帶著做是完全不同的兩件事。

教學方式

在一開始,基礎的東西都會由我自己帶。例如說基本 HTML、CSS、JavaScript 或是 PHP 等等。但我只帶基本的,所以更進階的要由你們自學,因為自學能力也是很重要的,我不想你成為一個只會聽課不會自己學習的人。

前端就是以基本的 HTML、CSS、JavaScript、jQuery 為主,如果你想走前端的話可能會再加上個 React。

後端的話會以 PHP 為主,有時間的話會帶大家玩一下 Node.js,無論你以後工作想找前端還是後端,我們兩種都會上到,差別在於深淺而已,對於想找後端工作的人應該會上個 Laravel。

自學的資源基本上就是網路上的一些免費資源,但因為網路上的資源都滿零碎的,所以很有可能你會碰到許多問題,這時候怎麼辦呢?問我就對了!

有老師的好處就是你碰到問題可以直接問,我會講到你聽懂為止。或者是每一個階段結束之後,我會幫大家重新整理這一個階段學到的東西,會讓你對這東西有更深一層的認識。

如果到某一個主題大家自學都學不通,那我還是會跳下來親自教學。

由於這是一個要把你從零帶到找得到工作的計畫,所以會要求你必須付出一定的時間,其實基本上就是每週四十小時啦。但如果你現在還有工作,願意每天下班以及假日練習的話,也是 ok 的。想要得到怎樣的成果就要付出多少的努力,就算我教得再好,你抽不出時間來也是枉然。

所以基本的流程就是:

  1. 白天你自己做作業,找資料練習(因為我在上班QQ)
  2. 白天有問題也可以問,但我可能要晚上才能回答
  3. 晚上是統一回答問題時間或是上課時間,但不會每天都上課,大概兩三天一次

上課方式就是 video call,然後有問題都可以直接問。所以這整個計畫,可以想像成是一個密集的小班教學。

目前預計只收 5 人,再多人我應該就負荷不來了,但實際人數會根據狀況調整。

如果 ok 的話,有可能會偶爾會想辦個實體聚會,畢竟收進來的人其實就算是同學了,希望能讓大家認識一下(但如果你不想參加也可以,不強制),所以地點在台北為佳啦,但大部份時間是線上活動,所以你住在哪裡其實都可以。

收費方式

通知錄取並且答應上課之後,先付 10000 新台幣保證金。在開課後的 30 天內可無條件退款(例如說覺得老師比想像中弱,或是老師教很爛之類的),超過 30 天之後就不能退了。

四個月結業之後,你必須在兩個月內積極找工作,如果找不到工作,就代表我教學失敗、實驗失敗。都說了是實驗,如果失敗了我就認為不應該收你錢,我會把 10000 新台幣退給你。

但如果你成功找到工作了,學費總額會是一個月的薪水(如果有經濟困難可分期付款)。例如說你找到月薪 35000 的工作,學費就是 35000,扣掉之前給的保證金 10000,你還要再付給我 25000。(備註:詳細定義可參考下面補充的)

就是這麼簡單,兩個月內沒找到工作我退你全額,但如果有找到工作,學費總額就是一個月的薪水。

這邊稍微補充一下,拿到 offer 就算是有找到工作了,但去不去是你自己的決定。只要有拿到 offer,就表示你有這個實力,所以就算是這個實驗成功了,然後學費會以拿到的 offer 的最高價格為準。例如說你拿到三個 offer,40k, 38k, 35k,儘管你最後選擇去 35k 的那個,學費依然是 40k(代表你有拿到 40k 的實力,只是因為種種原因你去了其他的)

另外,你在找工作的那兩個月儘管已經結業了,我還是會全力給予協助,例如說你可以跟我討論面試時候被問到的問題、履歷該怎麼寫或者是讓我幫你模擬面試之類的,我會全力協助你求職。

計畫時程表

報名日期:即日起至 2018/01/05 晚上 11:59 分(五)
報名結果公告:2018/01/19(五)
開課日期:2018/01/29(一)
結業日期:2018/05/29(二)

報名方式

由於這個計畫滿認真的,所以我也希望找到比較認真的人,因此報名流程會稍微繁瑣一點。

  1. 填寫 Google 表單(一些基本資料)
  2. 去研究什麼是 Scratch,並且做出一個小作品,只要是任何你覺得完整的作品就好,沒有 idea 的話可以參考 CS50。這個只是想測驗你有基本的自學能力而已,所以不用做得太複雜(不用有關卡)。
  3. 寫信到:aszx87410@gmail.com
    標題請打:[報名] 程式導師實驗計畫 — huli
    (請把 huli 換成你自己的暱稱)

信件內容麻煩附上:

  1. 自我介紹
  2. 報名這個計畫的理由
  3. 可以為這個計畫付出的時間
  4. Scratch 作品連結
  5. 做完 Scratch 作品的心得
  6. 任何你想跟我分享的東西(例如說你寫的小說、你畫的圖、你以前的程式作品等等,任何你覺得會加到分的東西都可以。)

收到信件之後我會回覆一個罐頭回信,讓你知道我有收到了。請記得,Google 表單填完跟寄信之後才算是報名成功,兩者缺一不可。

如果報名的人太多太難篩選的話可能會再安排時間用 skype 或其他視訊軟體進行面試。報名結果公告那天(2018/01/19),無論有沒有錄取你都會收到信件,絕對不會有無聲卡的情形發生。

總而言之,我會讓你知道我收到報名信了,也會讓你知道你有沒有錄取。(但是沒錄取的通知信有可能是罐頭信件就是了,不好意思)

注意事項

因為標題就開門見山說了這是一個實驗計畫,所以實驗目標到底會不會成功,我真的沒有百分之百的把握。

我是個誠實的人,我只敢保證我真的確定能做的事,所以為了不讓你吃虧,我提供了自認為還不錯的條件(30 天內全額退費、比外界低廉的學費、沒就業就退費)來彌補。

對你來說,報名這個計畫有三種可能:

  1. 老師很爛教得很差 -> 開課 30 天內退費 -> 損失時間但沒損失錢
  2. 老師教得不錯 -> 可是結業後找不到工作 -> 損失時間但沒損失錢
  3. 老師教得很棒 -> 找到工作 -> 用一個月的薪水換到一份新工作

另外,我不會強調每一個人都一定要當軟體工程師,或者是什麼寫程式是之後的未來趨勢。我又不是未來人,我怎麼知道未來趨勢是什麼。而且每個人都有自己的興趣,如果你寫一寫發現自己真的不適合,我也不會強迫你。

One more thing

因為不確定到底一週能拿出 40 小時的人到底有多少,所以為了避免沒人報名的窘境,我其實還可以提供另外一種型態的導師服務。

上面所講的那種,是以成為軟體工程師為目標,但可能有很多人只是想學程式技能卻不想轉職,針對這種人,我能做的事情就是:

依照你的目標制定學習計畫

例如說你的目標可能是自己寫一個部落格網站、架個人網站、架一頁式金流網站、想要了解工程師到底在幹嘛等等,針對這種不同需求,也可以提供專屬的導師計畫,教學方式一樣是不斷回答問題跟直接上課幫你解惑。

時程跟報名方式都跟上面一樣,差別在於收費。因為這個沒有想要找工作,所以收費標準就沒辦法用薪水來衡量,於是我決定統一收費 15000 台幣,開課的時候就必須先付,然後 30 天內一樣無條件退費。

(補充:因為有些人提問,再次強調業餘班的報名方式跟時程都跟原本的班級一模一樣,唯一的差別只有填寫 Google 表單時的選項選的是業餘班,就這樣而已,所以麻煩一樣按照上面的流程報名,感謝)

這類的班級我稱作「業餘班」,就不會這麼密集的上課,但還是會回答問題,可能一週只要拿出 10 小時左右就 ok 了。而課程也不會像上面那麼完整,會比較零碎而且針對一點。

不過我要特別聲明,如果你想做出那種很炫很華麗很漂亮的網頁,那種我真的不會,拜託你不要報名,你只會失望而已。我能教的類型比較偏向工程類而不是設計類。

最後,如果報名全職班的人出乎意料多的話,那這個業餘班就不一定會開成,因為我前面講了,我的終極目標是想要從零帶出一個工程師,所以會以這個目標為優先,先跟大家說聲不好意思。

就是這樣了,希望我有把該說的都說清楚,如果有任何疑問,可以寫信到我的信箱(上面有地址),或者是直接在下面留言,感謝。