程式導師實驗計畫隨意聊總集(中)

上集在這邊:

第十四週

終於回到台灣了!但一從機場出來就後悔了,好熱…
這週來分享一點不一樣的,跟這個計畫本身有關的幾件事情

第一件事情是讓我心灰意冷(?)的時刻,就是改作業看到有同學交了很爛的 code 上來,有幾次居然就是看到有點小生氣,想說寫這什麼爛 code。

但我當然也不會直接留言說你寫一堆垃圾,因為我不覺得那是件正確的事。在感性上我的確是有點生氣的,但這種被感性牽著走的時候冷靜一下才是正解。

冷靜完就會想說:他寫爛 code 是誰的錯?是他的錯嗎?還是我的錯?看到爛 code 真的有必要生氣嗎?誰沒有寫過爛 code?背後就有很多核心的問題可以去思考。

然後看到爛 code 的當下就會想說改作業好累,不想再開下一期了XDD 不過冷靜過後就好很多了,可以比較去理性地思考一些問題。我不認為去責怪學生寫爛 code 是件對的事,因為他很有可能根本沒意識到這件事。

如果老師只會責怪學生,那到底要這個老師做什麼?之前我提過同理很重要,大家一定都經歷過學校老師把私人情緒帶上課堂,若是以前我們就知道這樣是不對的,那怎麼可以自己長大之後也變成這樣?

所以我認為比較正確的做法可以是:

  1. 讓他知道他寫的是爛 code
  2. 讓他知道可以怎樣優化
  3. 讓他知道寫爛 code 是人之常情,不用太灰心

這樣好像才是真正有解決到問題。

第二件事情是老生常談了,就是教學深淺以及詳細與否的抉擇。

有些時候都會在 lidemy 動態時報上看到有些人卡關卡很久,或是覺得課程不夠詳細,有些東西沒有教到,這個時候我就會經歷一波自我辯證。

這樣的教學到底是不是好的?

課程內容部分留白有可能是因為真的忘記講,也有可能是我故意留的,因為我覺得你應該要從課程有講的 A 跟 C,自學 B 之後把 ABC 三個搭在一起用;如果我 ABC 三個都講了,那就等於是直接奪去了你自學的空間,你就只是看我的影片然後抄我的程式碼而已。

但有時候我又會認為,時候真的到了嗎?會不會現在這個階段就是需要我把 ABC 都講清楚,把基礎都打好,等到五週十週過後基礎建立起來,才慢慢把課程留白,留一些東西讓學生自己學習?

這個的標準真的很難拿捏,我記得以前教學心得講過超級多遍類似的問題
,我最近得到了一個新的啟發!

有時候在 A 跟 B 之間做抉擇之所以困難,是因為兩個只能取一個,但你有沒有想過,搞不好可以兩個都拿?

意思是說我可以有 leve1 的課程,大概講五成內容,看完就可以嘗試寫作業了,如果作業寫不出來,可以再看 level2 的課程,再講另外三成,看完一樣寫作業。

還是寫不出來就看 level3 的課程,十成全部講完,直接一步步帶你做範例跟作業之類的,這樣好像就能解決這個深度拿捏跟自學與否的問題。而且就算你看完 level1 就寫完作業,level2 跟 3 你還是可以當成補充資料來看,也可以把自學的內容再複習一遍順便當作檢討作業。

聽起來好像很不錯欸,大家覺得呢?
(不過要做的話應該也不會是這一期就對了XDD)

第三件事情是這個計畫的後續發展

剛好前幾天收到一兩封信問我第四期的消息,我都回說每一期都是結束之後才在想要不要繼續開,所以下一期也要等第三期結束才能確定會不會有。

目前是傾向應該不會有下一期了,主因是我年底要來準備找工作啦!所以我自己要修煉一段時間,不太可能再分神出去帶一波全新的學生。

不過我本來就有兩個打算,但只是個想法而已還沒確定要做,首先是我想把這個計畫的課程變成一個自動的系統來解決一些存在已久的問題。

第一項就是把之前錄的線上課程再 review 一遍然後全都開出去賣。解決的問題是有些人只想學某項技術,不想學整套課程,就可以單買線上課程。

第二項是把這整個「程式導師實驗計畫」做成一個系統。

有點像遊戲那樣,大概設計個五十關,然後每一關都會有導讀跟作業
不會有手把手教學,所以如果你需要教學可以自己購買相對的線上課程
導讀大概可以分成幾個:

1. 本週目標與作業規格說明
2. 作業解答與示範
3. 常見作業問題及重點概念加強

第一個本週目標與作業說明是公開的,後兩個要付費解鎖,意思就是說你只要註冊會員,不用花錢也可以自己玩這整套系統,但如果你想要我改作業,想要解答與示範跟重點加強的話就要付費。

想說前十關可以全部都免費,確定上的習慣之後再來收錢,一關 500 塊,一次買五關 2000 塊之類的,反正都可以再想。

做成系統的好處就是以後不用再分期,你隨時想來都可以自己開始,但缺點就是如果人不夠多而且大家進度都不同,可能有點孤獨(?)

再來淘汰制的話應該也會直接取消,或者改成如果願意接受淘汰制,學費比較便宜之類的,但如果被淘汰就進度歸零然後要重來,好像也滿有趣的。

然後收費方式也不同了,好像不能再做像現在這種就業才繳錢的收費模式?
我剛想一下好像還是可以,不過有些奇怪就是了,例如說如果你自己買課程整套是兩萬塊,但就業才繳錢要付到六萬,這差距就有點太大,感覺會選前者的人比較多?總之定價可以再想想

每日進度報告會留著,然後一樣看到其他人的進度報告,這樣就算變成系統,沒有分第幾期第幾期也不會感到太孤單,總之大概就是這樣的一個學習闖關系統。

如果我哪天突然小宇宙復燃,就不會有第四期而是有這個系統了,但一想到要寫這樣的東西就覺得好麻煩,而且還有金流的問題要處理…

再來第二個打算是我想換個方式準備面試,一個人準備面試我一定會偷懶,所以想找個方式強迫自己,想到的解法是開一個期間限定的付費方案,可以收月費或是一次繳清之類的,例如說一個月 500,可能連續兩三個月

付了之後可以幹嘛呢?第一個是加入專屬社團討論面試相關問題,第二個是我至少每週會出一篇 JS 或是前端基礎相關題目的文章

這就是我逼迫自己的方式,因為大家付了錢所以我就要邊準備面試邊寫文章
但我又不希望這些文章永遠鎖在這裡,所以結束之後我會全部對外公開這些文章,付錢的好處就是早買早享受而已

我沒有想要靠這個賺錢,我只是很好奇有誰會付費而已,既然沒有想靠這個賺,我想把收入全部捐給社群,看能夠贊助哪些社群活動之類的,不過要做的話,要捐哪些技術社群也是很值得討論的一部分

雖然開頭只講有兩個打算,但在寫的時候我又想到一個,可以來做一個「真正的」mentor 計畫,對象是工程師然後有名額限制,全部免費,但你要完成任務否則就會淘汰你

任務都會是一些我覺得對技術社群有幫助的任務,例如說每個月寫一篇技術文章,主題要跟我討論,我會幫你 review,或者是像我們之前複習週那樣寫一個小遊戲讓大家從中作學,也有可能是寫個開源專案之類的

看你想做什麼我都可以輔導你,但要是我覺得對大眾有利或是好玩的東西
想永續發展的話可以加個條件是一年以後你必須也開同樣的計畫去帶人之類的,想到就覺得很好玩,有種不斷拉下線的感覺XDD

最近的想法大概就是這樣,跟大家分享一下
大家有想到什麼 idea 也可以跟我分享

第十五週

自從回台灣以後,最近自己也陷入了什麼都不想做以及拖延症的困境當中。

環境是很重要的,你要知道什麼樣的環境適合自己,然後千萬不能嘴硬。例如說我知道我待在家就什麼事都做不了,工作效率極差,今天找了個 coworking space 待了一整天才有這一週的隨意聊,不然我一定直接怒拖個一週,下週再說XDD

今天是計畫的第一百天,哇,居然一百天了!

學生人數從原本的 62 人到現在剩下 53 人,有 14% 的人被淘汰掉(其實比我想像中的少),進度的部分越來越分散就不特別講了,從第二週到第十八週都有人(有些可能是忘記按進度了),每個人卡關的地方也都不太一樣。

總之呢,能堅持一百天已經頗厲害的了。

上次跟大家說的那幾個之後的打算,經過一個禮拜的思考之後,第四期跟學習闖關系統會出現的機率都偏低,甚至連把線上課程拿出去賣的機率也都頗低,因為好麻煩喔。

面試準備訂閱制那個有很高的機率之後會做,等我從歐洲回來就會有決定了,真正的 mentor 計畫那個我這周四會去台南好想工作室,想說在那邊順便把這計畫公開試試水溫(?)

我簡介跟文案都寫好了,就只差發文而已,不過對象會是已經是工程師的人,所以大家暫時沒機會QQ

這週大概就是這樣,沒什麼特別的心得可以分享,最近就是在規劃二十週以後的課程,基本上 21~24 這四週會分前後端,你可以任選一個,或如果你有時間的話兩個都選也 ok,我自己其實也是希望大家兩個都選,這樣子之後有什麼 side project 想寫都可以自己搞定,十分方便。

第十六週

不知道為什麼,最近覺得心挺浮躁的
可能是因為拖延症還在繼續發作吧
上禮拜才跟大家講說回台灣之後就一直拖延,拖到現在還在拖
不過我早就預測到現在的情況了
才會趕在計畫開始前,我還在新加坡的時候把大部分導讀都錄好
因為我知道自己回台灣絕對拖延到爆,真是知己知彼百戰百勝(?)

我覺得拖延的原因跟環境有滿大的關係
待在家裡既沒辦法百分百專心,也會因為一直想做事導致沒辦法進入發散模式,所以做東西挺沒有靈感的,不知道要從何開始
nodejs 後端的課程也都還沒開始錄,稍微拉了一下課程大綱也沒有很滿意
或許要再找時間跑去 coworking space,不能再待在家裡了
不然時間都浪費掉了嗚嗚

最近有引發思考的是我新的那個前端引路人計劃
大概收了二十封信吧,有其中一半我直接先回絕了,剩下還在想
跟這個計畫一樣,每次到報名階段就會不斷去思考到底要收什麼樣的人
是要收基礎好的人嗎?可是如果基礎好的話他來這邊幹嘛?是不是我能幫助到的就有限?
那要收基礎不好的人嗎?可是基礎不好來這邊幹嘛?怎麼不讓他們先去把基礎弄好再來,這樣我能幫到的東西會比較多?是要找跟我以前一樣沒人帶的人嗎?可是這樣的人很多,那要怎麼篩選?還是說為了長遠發展,應該找有潛力又有基礎的人,這樣才能在一年後發揮最大效益?
好麻煩,但我昨天睡覺的時候大概有比較想通一點,雖然簡章上面說收 5 個,但我預計可能會收到 20 個…(每次都面臨超收的下場)

再來是之前跟大家提過可能不會有第四期
主要原因是我之後可能會很忙(?)
因為最近也一直在想 11 月旅遊回來以後要幹嘛,原本方向比較堅定的就是準備一下之後開始找工作,但其實我本來就有一件事滿想做的,就是閉關修煉之類的,這個詳情以後再說
但總之如果選了這個,好像就會有比較多時間,第四期就可以再繼續開

講到旅遊,九月要出國了
但行程住宿什麼我全部還沒訂,一想到這些就好麻煩喔嗚嗚
尤其是對歐洲地理不熟,國家之間都要查一下怎麼連接比較方便
在國家內也要想一下要去哪些點,一想到這些就覺得真d麻煩
不過再拖下去就麻煩了,因為很多東西都要事前排好比較好

除此之外最近其實偶爾會有小想法蹦出來,想說先記著,真的很想做的話以後再做
例如說想做個 cs50 的銜接課程,會像線上課程那種形式
有點想做成不用看 cs50 的影片就能夠寫作業
大概就是想把裡面講到的概念自己再講過一遍,順便補上一些原本沒講的基礎知識
然後再把作業翻成中文
這樣英文不好的人也可以透過這堂課完成 cs50
應該會滿有趣的

不過想法多其實也沒什麼用,畢竟你想過的東西別人早就想過了
真正重要的是執行力,這才是重點
想是沒有用的,沒有執行就什麼都沒有
花一年想一個自以為天衣無縫的計畫,不如花一個月想之後就直接開始做
然後邊做邊調整,最後出來的結果會比那不堪一擊的紙上談兵還好

突然又想到一個可以講的(希望不要這週講太多下週只能尬聊)
之前看丁丁跟六角的洧杰在談信任與權力下放這件事
這個也真的是我要學習的一部分
這門課之所以沒有「真的助教」(花錢請來的)就是因為我還是不太放心
我不確定助教能不能提供有品質的回答以及抓到真正的盲點
所以還是都自己改作業,沒有想要找助教的打算
但作業一多的時候真的是很想找個助教來幫我改,我會省很多時間
不過在這之前可能要向六角或 AC 取經一下,看看他們怎麼規劃助教機制的

最後來講點課程的東西好了,我近期頻繁更新我的 repo
加了一些資料然後 20 周以後的課程也會改來改去的
目前大概算完成 70% 吧,有想先同步的可以先同步
全部完成之後會再跟大家說,讓大家統一同步一次

這週隨意聊真的挺隨意的
差不多就是這樣吧

第十七週

特!別快報,我這幾天居然克服我的拖延症了!
原因大概是有同學進度已經到十九二十週了,再拖下去就開天窗了 = =
所以這幾天特別具有生產力,把二十週以後的「後端課程」給錄完了
一並把作業什麼也都弄好了,所以後端課程的部分已經全部規劃完畢

原本二十週以後分前後端是希望讓大家選自己喜歡的
但我後來發現一個致命問題,那就是我覺得後端深度不夠深
儘管你選了後端,我覺得離找工作還有一點點距離,還要再去補其他東西
這邊先讓大家知道一下這點

所以我會建議大家如果有時間可以前後端都跑過一遍
因為後端介紹的深度也沒有很深,對以後做任何專案也都很有幫助
但如果有時間壓力的話,那就選自己喜歡的吧,不用兩個都選

然後這邊建議進度超前的同學先從後端開始,因為前端的課程還沒完全弄好
再給我一些時間 霸拖QQ
這段時間你們就先再學一下後端的東西,其實也很有趣,真的

之前跟大家提過的一些 idea 後來都在我心中慢慢發酵
目前最想做的是那個 cs50 補完計畫,方向越來越明確
不過還是一樣先放著,哪天真的想做再來跟大家講

這邊先宣導一件事情,那就是淘汰制依然存在
昨天我有撈了一下資料,有大概一兩個同學在淘汰邊緣,所以我先提醒了一下
你各位記得 po 進度報告啊,基本上有 po 就不會被淘汰

關於這個計畫,我覺得自己心態上的轉變也很重要
我希望你們能學到的不只有程式,而是可以順便學一些其他的(雖然我也不知道其他有什麼)
例如說原本的目標可能是轉職,但跟一跟發現自己不太可能在時間內轉職
這時如果還是維持目標,只會越跟越覺得自己做不到,一有拖延就無限責怪自己
這樣子只會越來越拖延,然後離目標越來越遠
若是你華麗地轉身做一個心態上的調整,把目標設定為學會寫程式
或者是學會寫一個自己的作品出來
在時間內轉職的壓力就瞬間變不見了!bang!
然後你就會有動力繼續跟課,也能夠繼續寫作業
而且這樣跟到最後,搞不好還是成功轉職了!
心態上的轉變就是這麼神奇

建議大家可以花點時間去外面散個步,邊散步邊想自己的目標要訂什麼
可以不用管這個計畫原本的目標,那些放水流就可以了
自己想要什麼才是最重要的,不要管別的

接著來分享一下一個我自己快樂過生活的小撇步
那就是你必須找到一件短期內你期待的事情,這個事情就會成為你往前的動力
最常見的就是出國玩
「哇,下個月要出國玩」、「哇,下禮拜要出國玩」
因為你知道自己之後要出國玩,所以就會有動力繼續過生活繼續往前
發生什麼不如意的事情,就可以對自己說:「沒關係,反正我下個月就要出國玩了」
就會覺得有種生命十分美好的感覺,因為前面會有美好的事

像我自己最近比較期待的事是過幾天要跟一個每半年見一次的朋友吃飯
每次大概都怒聊個三四個小時吧,是很聊得來的朋友
是很令人期待的一件事

所以大家可以主動來創造這種期待的事
例如說約朋友在一個月後吃飯(?),或者是報一個未來的活動之類的
就幫自己在未來訂下一件期待的事,生活就會有了動力

最後來分享兩個最近在聽的東西

第一個是我一直被洗腦的東西:https://www.youtube.com/watch?v=bMhq9dXZ_jI
第二個是可以一直放著輪播的,會播到一堆類似的 beats,最近都在聽這種無人聲的 beats:https://www.youtube.com/watch?v=jEYT0p2-cws

第十八週

### 其一

上週跟了一個老朋友吃飯。

我們見面的頻率大約為每半年至一年一次,她說她很習慣好像每次考試到一個段落就會見到我。吃飯時聊一聊才突然想起來,從我認識她的時候她就是學生了,一直到現在還是;而我則是完全相反,一直都在工作。

其實半年這頻率我覺得挺好的,既不多也不少,一次更新半年的近況不用怕沒話聊,也不需畏懼分享任何事情——反正下次見面都是半年後的事了。

她說她以前很期待出去交換的,但最近卻興趣缺缺,比較希望能快點脫離學生生活出去工作。是啊,她應該很嚮往另外一種不同的生活吧,畢竟當學生這麼久了,雖然有在外面實習,但跟真正工作還是不一樣。我說我覺得下次見面時搞不好我們就黃金交叉了,妳出去工作,換我變成持續休息的狀態。

我跟她分享了前陣子去旅遊時一直在想的事情,分享了原本從日本回來後想要去日本工作的規劃,分享了後來又是如何重新燃起了閉關修煉的想法,以及準備面試時想玩的訂閱制。她分享了分組報告被中國人雷的故事,一門很重的課碰到一個來玩的交換生,甚至前一天才答應老師要改東西,後一天就交換結束飛回去了,留下一堆爛攤子。

之前六月就跟她分享了一些那時的煩惱,說詳細之後見面再聊。總覺得跟她聊完之後可以把想法整理得更清楚,內心也會更平靜一點。至於這些煩惱到底是什麼,我以後會寫一篇文章跟大家分享,文章標題會是:「或許有一天,我會歸隱山林」。

### 其二

這一週把精力全部放在寫 session & cookie 三部曲了。

其實這系列醞釀大概三四個月了,卻遲遲沒有下筆。原因是我看完 rfc 以後還是沒有很理解 session 是什麼,在不敢完全肯定的情況下我不願意動筆。在寫文章的前幾天我還在我臉書 po 文問了朋友的意見,雖然沒有茅塞頓開的感覺,但還是得到了不少幫助。

後來會開始寫,第一是因為有時間壓力,TechBridge 那邊又輪到我寫文章了;第二是因為再不寫可能就不會寫了,就算是自己沒有完全確定的情況下也沒關係,就先寫出來吧,把自己的疑慮也寫進去就沒問題了。

話說這系列文的靈感其實是從第三篇先開始的。

故事是這樣的,之前在幫 ALPHACamp 做一個專案時,有些人誤以為 sessionID 跟使用者的帳號或是 id 有關,例如說把 id 做 sha-1 之類的就變成 sessionID,我就直接說不是這樣,那是隨機產生的。可是我自己覺得我必須證明這件事,否則就永遠只是「我認為是這樣,但證據我拿不出來」。

於是我就去找了 express-session 的 source code,發現的確是隨機產生,也順便找了 rails 的,意外發現 rails 居然是用 cookie-based session。當下就覺得這主題很有趣,有天一定要寫下來。

就這樣,就有了第三篇的想法。後來看到同學們 session 理解卡的很嚴重就有了第一篇的想法,自己研究時碰到問題就有了第二篇,後來就變成三部曲了。以後搞不好還會多兩篇變成五部曲之類的,一個想寫大型系統的 session 怎麼管理,一個想寫 cookie 的安全性問題。

### 其三

感謝 yakim-shu 同學,幫助我完成了第二十周要給大家玩的小遊戲。

這次的遊戲比較特別,是要優化這個網站:lazy hackathon,大家有興趣可以先去看看。

我們刻意做出了一個很慢的網站,然後要請大家優化。

會想做這個是因為之前忘記在哪邊看到有學生說要優化網站好難,而且從來沒有經驗。我就想說:「沒經驗,就自己創造吧!」,就有了這個 idea,刻意做一個網站來優化。雖然說真實世界的網站會長的更複雜,但至少也是一次有趣的練習。

### 其四

希望這週能把二十週以後的前端課程稍微整理一下,第一個是資源目前很亂,第二個是最後兩週的作業我還沒準備好,因為有可能會想多教一個 jwt(json web token) 之類的,我就要重新再寫 code 然後再錄影片,會花點時間,我會再想一下是不是必要的。

另外一方面 React 的課程大概是 16.3,現在已經 16.9 了而且多了新的東西,連 create-react-app 都升了一個版本,概念絕對可以沿用,但不確定影片裡的專案跑不跑得起來,之後要再檢查一下。

第三期課程只要把這邊搞定,我的部分應該就全部搞定了,課程部份就全都完成了。

### 其五

話說我九月初要去香港轉機,但以最近的狀況感覺變數很大。原本我轉機時間刻意留很長,想說可以去香港找朋友吃個飯,但朋友也說最好再觀望一陣子。

以下文字引用自:要是可以,誰不想歲月靜好

happy learning, happy coding

第十九週

這週我淘汰了五個人。

有兩個是符合淘汰規則所以淘汰掉的
都有其他事情在忙所以沒辦法撥出時間在這個計畫上

另外三個的狀況比較特別,是我動用這次計畫裡面的特殊規則淘汰掉的

特殊規則指的是儘管沒有符合淘汰條件,但我認為沒有在跟課,所以還是可以淘汰掉。

這三個同學進度報告都有符合標準,兩週內都沒有累積缺交三次
但是作業的部分就不一樣了
上一次交作業是五月份的事情…對,三個月前
憑著這點我就把他們淘汰掉了,因為三個月實在是太久了
儘管有寫進度報告(雖然內容都差不多)
但三個月沒交作業,我實在很難相信他們真的有在跟課

如同我之前說過的一樣
我覺得淘汰並不是一件壞事,因為當初已經說過要花一定時間在這計畫上了
如果你當初答應了而且跑來報名,但現在又沒辦法花時間在上面
就代表你一定在做你覺得更重要的事情
兩邊都想兼顧的話通常只會兩頭空
請先專注在一件事情上,搞定了再來想其他事情

剛開始計畫有 62 人,現在淘汰 14 人剩下 48 人
計畫進行了四個月,還有兩個月可以學習,兩個月可以找工作

之前有人問我說,最後能順利找到工作的都是怎樣的學生,有沒有什麼特質
我回答了:「有,那就是堅持吧」
只要能夠持續進步並且把課跟完,就能夠找得到工作
但堅持本來就是一件很不容易的事
我鼓勵大家繼續跟課,但我從來都不想強迫大家
我也很討厭那種沒頭沒尾的精神喊話
像是「大家一定可以的!」、「千萬不能放棄啊!」

我比較實事求是一點
我不知道你可不可以,只有你自己知道,但我希望你可以
沒什麼不能放棄的,只要想清楚就行了
要不要放棄是你自己的決定,你想清楚了我都沒意見,但我希望你能繼續跟下去
重點是你要幫自己找到堅持下去的理由
你寫程式寫到現在有沒有寫出興趣?有沒有找到樂趣?
如果有的話,或許你就有了一個堅持下去的理由

大家有空的話也可以回頭去找一下自己當初寄給我的報名信
看看四個月前的自己是怎麼想的
因為你有可能在這四個月當中已經逐漸迷失自己(?)而忘記了當初的自己
「莫忘初衷」四個字送給大家

可以把課綱看成一道道的關卡,每五關為一個單位
只要過完一關,你就有複習週可以休息,也離課程的終點越來越近
只要過完四次複習週,就快要到達終點了
每一次的複習週就是課程的 20%,大多數人都已經到了第二個複習週
也就是說課程已經完成快一半了
這整個計畫包含求職時間其實是八個月
如果能夠繼續跟著課程,在年底的時候就能把課程完成,一樣也可以出去求職
只要能把課程跟完,我相信就能找到工作
畢竟有些人沒跟完都找到工作了XD

講到這個,若是你有求職的壓力或是想早點出去試試水溫
只要你進度在第九週以後,我覺得都可以投履歷去試試看
反正沒有損失嘛,頂多就是沒人找你面試或是面試完被電而已
但電一電之後可能會給你更多進步的動力,也讓你知道哪邊可以再加強
搞不好還真的誤打誤撞碰到有公司願意用你,那還真的是賺到
(雖然薪水可能會低一點就是了)

總之就是這樣啦,祝大家天天開心(好突然的結尾)

第二十二週

(二十一週跳過,二十二週在講機票票規也跳過)

這週我們先來點技術相關的話題好了
要確認大家知道到底什麼是 port,台灣翻作連線埠,中國翻端口
首先,大家都知道 ip 位置嘛,基本上就可以當作一台電腦的地址
例如說我在網址列上輸入某 ip 位置,就可以連到對應的網站
但這邊其實瀏覽器有偷偷幫你做好一些事情
例如說你連線到 http://3.3.3.3 的時候,其實是連到 3.3.3.3:80
後面那個 :80 就是 80 port 的意思,是 http 預設的 port
為什麼要有 port 呢?因為一台電腦上可能會有不同的服務嘛
每個服務都需要有一個 port,去接收自己的資料,不然會互相衝突

MySQL 預設的 port 是 3306
所以當你在 php 連線到 3.3.3.3 的時候,其實是連線到 3.3.3.3:3306
php 也知道預設的 port 是 3306,所以才不用特別做設定
再舉一個例子,你如果網址打 ptt.cc,會連到一個 ptt 的網站
那是因為這是 ptt.cc:80
平常真正連 ptt 的 port 其實是 23 port,才會真的連線到 ptt 那個論壇

然後再回到課程相關的部分
主進度到那邊這個就不用太在意了
維持住自己的進度,一直有在往前走就好,其他都不是那麼重要
現在這個學習系統,後端是用 Express + Sequelize
前端是用 React + Redux
如果你不知道這些是什麼沒關係,二十四週上完之後全都會學到
為了讓大家更有感覺加上有東西可以參考
我把程式碼整理了一下,前後端程式碼在這邊:

https://github.com/Lidemy/lidemy-learning-backend
https://github.com/Lidemy/lidemy-learning-frontend

把上面提到的東西學一下之後可以來參考這些程式碼
應該多少會有一些幫助

好,再講回旅遊的部分
我現在身在法國巴黎,一個時區 +2 的地方
目前最喜歡的是天氣,已經入秋了,甚至有點台灣冬天的感覺
好喜歡這種天氣阿
遊記我都分享在鐵人賽的文章裡面了:後設鐵人
以後就不會特地在這邊再分享一次了,這樣好累
不過歐洲遊真的是個考驗,無論是行程規劃還是自身安危(?)
我真的很怕被偷或是被搶 = =
但我怕的不是財物損失,是麻煩
如果能用台幣兩千塊換一次不被搶之類的那我很願意

我決定以後在歐洲出門都要走一種運動風,讓別人以為我是出來運動的
帶個手機、信用卡跟大概二十塊歐元
要搶我的話也沒什麼東西可以搶
而且運動風的話應該一臉就是沒帶什麼錢的樣子
聽起來很不錯

最後再講回課程
之前已經有跟大家稍微說過了,如果你想把作業當作作品集拿出去的話
請先把作業做得精緻一點
例如說第八週的 twitch api,你要做到這種程度:
https://cwenwen.github.io/APIsPractice/Twitch_API/

如果是 blog,要做到這種程度:
http://enter3017sky.tw/index.php

留言板的話規模其實也偏小,要做大不太容易
建議直接用 php 改做上面那種個人 blog 之類的比較好
原理其實都是一樣的,但 blog 看起來就比較厲害
以作業本身來說,幾乎沒有一個是你做完就可以拿去放在履歷上的
作業只是最低標準而已

然後關於進度的部分
如果你已經進度落後然後又卡關嚴重
可以思考一下是不是現在的學習模式不適合你
卡關的那些時間其實都比較像是浪費掉,自己瞎摸索
這時候主動求助同學或老師可能是比較好的選項,而不是自己亂找
一來節省時間,二來也能確定自己有往正確的方向走
隨時歡迎在 slack 的 channel 提問
如果私訊我覺得不太好意思(?)的話,很多熱心的同學應該也很樂意幫你解惑

這週想說的大概就是這樣
happy coding, happy learning!

第二十三週

開頭先來祝大家中秋節快樂~

先跟大家分享一些比較有趣的事好了
跟學習沒什麼關係的

第一件事情是我看完奇幻自衛隊跟殺人回憶了!
前者其實之前在台灣要出國前就看完了
覺得還不錯啦,簡直是日本自衛隊的宣傳片…
後者想看很久了,在犯罪的部分跟索命黃道帶有點像
不過我覺得又有講到更多東西就是了
例如說憑證據或是憑直覺辦案

第二件事情跟學習有點相關
最近被 YouTube 推薦這個影片:ICPC 2018 World Finals stream with tourist and Endagorion

ICPC 是大學的程式比賽,比的都是資料結構演算法那些題目
要從區域賽一路打才能打到 world finals
只要有進到 world finals 好像都會被 Google 找去面試
能到這個程度,要去工作通常都沒什麼問題

但重點不是這個,重點是想跟大家介紹 tourist 這個人
直接附兩篇文章:簡直是 Coding 界的麥可喬丹,21 歲少年把全世界 coding 大賽全贏光]、tourist是否已经是史上最强的算法竞赛选手?

總之就是程式競賽界的神人,超神的那種
程式競賽真的滿好玩的啊,之前我記得我有說過想要來辦
實體的好玩很多,會真的有比賽的感覺,只是不知道會有多少人想參加就是了 ?
有意願的可以喊一下,讓我先做個調查

第四件也跟學習有關係
之前看到 it 鐵人賽有人分享這個網站:https://2018game.picoctf.com/
我玩了一整個下午…好好玩喔

先來講一下什麼是 CTF,全名是 Capture the flag
flag 其實就像是我們之前第五週第十週玩的小遊戲那樣,是一個密碼
你要根據提示找出這個密碼,就獲勝了
而這個 picoCTF 是 CMU 寫給美國的高中生玩的
是個剛好適合大家的程度
難度從最簡單的到很難的都有
非常推薦大家有時間可以去玩玩看,真的很好玩
不知道從何開始的話再來私訊我
也可以看一下這篇:https://ithelp.ithome.com.tw/articles/10215346
不過我玩的不是那個遊戲,我是直接點 problems 去解題

話說不是寫給美國高中生嗎?為什麼會剛好適合大家呢?
因為對本來就有在接觸這個領域的高中生來說,程度一定比大家好啊
而且我敢說程度還會比沒有在接觸這個領域的工程師還好
舉例來說,我是高中生的時候對演算法/資料結構的理解也比一大堆非本科轉職的工程師好啊
這也滿正常的,因為那些人沒有碰過嘛,但我有
所以輸給高中生很正常,真的很正常

然後我也要來分享一下自己拖延症的心得
最近真的是,拖延到爆
原本有滿多事情想做但都處於拖著的狀態
例如說之前一直想把 NET101 那個傳紙條故事寫成文章,但還沒
或者是整理一下之後自己想學的東西,但也還沒
還有想說 it 鐵人賽要不要多報一個主題
想要來寫「跟我一起讀 RFC」或是「更好的 JS 面試題」之類的
但想一想還是算了,東西都還沒準備好
而且人在國外很多東西不可控,應該滿麻煩的
這些文章就留在自己 blog 好了

還有一個很想研究的主題擱置了
之前跟一個同學說要寫的 react router url 的事情也還沒寫…QQ

唯一沒有拖的大概是我終於把歐洲行的交通跟住宿搞定了
再找個時間把一些機票跟車票印出來就完事了,讚讚讚

喔對了,歡迎大家有問題就跑來問我
這樣會讓我覺得自己至少有做點事
不然一直看 YouTube 廢片真的有點太廢嗚嗚

課程的部分,進入到二十三週了
幫大家再複習一次 timeline
結業日期(過六個月)是 10/15,正好一個月
也就是說大家已經開始學程式五個月了
計畫截止日期是 12/15,其實還有三個月
在這時間點內求職成功都會被視為成功
所以時間感覺滿充裕的(?)

等再過兩個月,十一月的時候,會希望如果你進度有到第九週之後就出去找工作試試看
因為如果我不推這把,可能很多人就不會去找工作了XDD
但目標不是找到工作,而是去面試看看,練個經驗,之後學習起來才會更有動力
至少你會更清楚之後要怎麼走

大家繼續加油~
fighting~

最後分享一首德文歌好了,雖然我還沒到德國
以前在學德文的時候隨意找的
Silbermond — Ja:https://www.youtube.com/watch?v=iRs56yxg3sw

第二十四週

這週跟大家聊點不一樣的好了,聊一些最近曾有過的想法
不過要先聲明一下,在我腦中的想法本來就很多,但去想跟去做還是兩回事

不知道大家是怎麼看我的
但以我自己的角度來看,我一直覺得自己是個做事情半吊子的人
我心目中一直都有個「做到那樣會很好」的藍圖,但從未達成過
以 Lidemy 來說,教學影片質量可以再更好,範例程式碼可以一起附上
每週結束之後可以針對當週的作業做檢討以及常見問題(用影片而非現在用文字)
還可以針對重點概念再做一次教學
在前期教 CSS 的時候排版可以再講多一點
後期教 React 的時候可以再慢一點,作業可以再出的好一點
這些不用任何人提醒,我自己就知道

我前年在鐵人賽寫的主題:Half-Stack Developer 養成計畫也是半吊子系列作
如果說我心目中的那個樣子是 90 分,這些實際產出的成果就都只有 70 分
好像還行,但你又不能說它好

明明就知道可以怎樣做但又不去,這到底是個什麼心態呢?
很簡單啊,就是拖延,拖著拖著就這樣子了
所以我一直跟大家說我很懂拖延的那種感覺,真的不是隨意唬爛的
講了這麼多,其實我想強調的是:「我知道 Lidemy 可以變成什麼樣子,可以怎樣從現在的 60 分到 80 分,但是我懶得做」
對,我懶得做,有誰能比我懶!

再來跟大家提一下很久以前說過的第四期的事
再次強調,這還不是定論,是我目前最新的想法
想法是會變的,先跟大家說只是在分享我此時此刻的想法而已
以目前的想法來說,第四期是不會有的
會變成第三期導讀那個課程開放去賣,想要跟課程的就導讀跟線上課程都買一買就可以跟了
只是作業的部分我還要想要怎麼辦,學習系統也是
突然覺得好麻煩喔…

不開的理由很簡單,我有別的更想做的事
之前忘記有沒有跟大家提過,我明年想閉關一年
就像是讀書準備考試那種閉關,每天在家唸書然後準備考試
換成程式就是每天學程式,準備一年之後的面試,中途順便做其他自己想做的事
就算是我,也是有很多需要學的,很多需要補的基礎

之前我自己想到一個思想實驗(哲學系很喜歡問這個)很有趣
「如果有一天你不工作就有跟工作一樣的收入,你會想做什麼?」
換個方法問就是,如果你不必依靠工作就能繼續過著現在的生活,你會想做什麼?
這問題的答案,我覺得是你「真正的興趣」

如果答案是程式,就代表你是真心很喜愛寫程式這件事,而不只把它當成工作
但我的答案不是
但也不能說我不愛寫程式,可能就只是沒那麼愛吧,除了寫程式以外還有其他想做的
至於答案是什麼,我沒有打算講XD

總之呢,我想給自己一年做一些自己想做的事
也想利用這一年把拖了好幾年的一些問題給解決
例如說七八年前就該學好的演算法與資料結構QQ
但目前最大的擔憂大概就是會不會拖延症又犯了
所以還在想辦法評估並解決這個問題

如果最後真的這樣做了,那就代表這一年間應該會很少拋頭露面(?)
教學可能就直接暫停一年,專心做自己想做的事情
一年以後再以全新的自己跟大家見面

不過這些也還在想而已,詳細的形式還沒確定
要等我玩完回台灣之後才會有定論
這趟旅遊也順便利用一些閒暇時間來想這些事情
畢竟旅遊最容易進入發散模式了,很適合想東想西

最後來談談跟課程有關的部分
有些人以為前面學了這麼多基礎,到框架就會變得很容易
沒有,千萬不要這樣以為,框架還是很不容易
但前面學的基礎的確是為了框架鋪路,因為如果沒有前面那些,框架你根本學不起來
或者是你學起來了,但不知道為什麼要學

想要碰框架變得很容易,你就必須先熟練某一個框架
這就像是以大家現在的基礎如果去學個 Ruby 或 Python,應該不會覺得太難
因為你已經學過兩個程式語言了,會發現程式語言概念都是類似的
框架也是如此,所以你必須先掌握一兩個

再來談談求職的部分,之前跟大家說過我對這一期信心爆棚
但我現在修正一下好了,我覺得應該是對「找到工作」覺得沒什麼問題
可是對於薪資的部分我就不知道了
因為我在想,會不會軟體業現在是走一種「很容易找到但薪水不容易談高」的路線
來給個範例好了,例如說今天自學完有 60 分,然後表現好的同學有 80 分
可是職缺的分數要求是 50~80,就代表說無論你是 50 還是 80,都是同個缺
既然是同個缺,薪水應該也不會差太多

那要怎樣才能拿到高薪?可能要 85 或 90 分
就是說要嘛表現真的很優異,要嘛就是有個半年一年工作經驗
我只是在擔心這件事,但還不確定是不是這樣
等之後有修完課程的同學們出去找工作的時候可以再留意看看

總之無論如何,我都很期待大家出去找工作啦
最喜歡的就是聽大家的面試分享了,畢竟就是聽故事嘛
聽學生拿到 offer 的時候我自己也會滿興奮的,也替你們感到開心

好,這週的隨意聊就到這邊
那我也要睡啦

第二十五週

沒想到已經十月初了,而且日程已經來到表定的二十四週的尾聲
意思就是依據主進度,這一週應該要把所有的課程都結束掉,把一切作業給寫完

那實際上有多少人達成呢? 1、2、3,三人!(完了會不會大家不懂這個三原梗)

提出這個數字是要告訴大家有達成進度的人是少數中的少數,沒有達成進度也不需要灰心

之前就跟大家說過了,我覺得重點是你有沒有持續在前進
只要有在前進,就會一天天成長。進度什麼的可以拋諸於腦後,其實沒這麼重要

雖然說這計畫從中段開始就一直走一個佛系路線
老師本人我好像比各位同學都還淡定,不太擔心求職狀況什麼的
但畢竟時程表已經到尾聲了,還是要來跟大家同步一下課程狀況

這幾週有一個同學因病退出
另一個同學發現自己比較喜歡 UI/UX 所以想往這方面走
但還是希望能留在這課程裡,不過之後的統計數據裡面會把她當作已退出
也歡迎有任何對畫面有需求的同學找她合作,你的 project 就能有美美的畫面了

目前的同學一共 45 人,進度如下:

21~24 週:14 人
16~20 週:9 人
11~15 週:10 人
06~10 週:12 人

進度其實還滿平均的,幾乎就是切成四等份平均散落於各五週
先來講一下各五週代表的意涵
1~5 就是基礎,包含 Git、CMD、JS 以及網路基礎
6~10 是前端基礎外加一點點後端
11~15 是後端基礎,重心完全放在後端,後半部會有前後端整合(ajax)
16~20 是前端工具以及 JS 核心概念,後半段又是前後端整合
21~24 則是前後端框架,是你以後出去工作比較有可能用到的東西

其中的精華其實我覺得是 16~20,這一段銜接的教材補足了很多知識
因為很多其他課程都直接忽略這段,可能從第 9 週東西學完之後就直接跳 21 週的框架
中間這段反而是我覺得最重要的,跳過之後你會完全不知道 21 週在幹嘛
雖然說就算你中間有學,你一開始也不一定知道 21 週在幹嘛,但一定慢慢能體會
它其實就是前面這麼多週以來學到的東西的總結與歸納
是前人流血流汗之後創造出來的智慧結晶(好啦這樣有點太誇張)

計畫的求職截止日會是 12 月中,離現在還有兩個半月
如果想在截止日以前找到工作,那就是兩個月內要開始投履歷
客觀來看,進度在 16 週之後的 23 人都很有希望達成這個目標
所以希望最後這期的求職成功率可以達到 50%

進度在這之後的 22 人也不用灰心,根據這期一些同學的資料
就算沒有跟完課程還是有機會找到工作
所以希望大家如果在 12 月以前進度有到 15 週之後
都可以嘗試看看去投履歷找找看工作
反正沒有錄取也沒損失,賺到面試經驗,錄取就賺到工作
無論如何都是賺到

再來分享一個學習小訣竅,那就是動手做
剛好最近被另一個引路人計劃的同學問到一個演算法問題
是我以前一直逃避沒學的東西(因為聽說很難)
但被問了也只好硬著頭皮去看一下,發現找到的資料都頗難懂
看一看之後稍微有個感覺,但不懂原理也不懂為什麼可以這樣
接著我就實際動手,拿出紙筆開始一步步推敲,看看這演算法每個步驟在幹嘛
試了幾遍之後發現有更理解箇中奧妙,接著開始隨意寫一些 code,發現比較懂了
然後再去看一次文章就發現更看得懂了,就再回去自己想
所以學習本來就是手腦並用,你想一下之後試著寫點程式碼,至少看懂那一行在幹嘛就好
就這樣來來回回,總有一天會懂的

就像我當初剛學 React + Redux 的時候也是啊
覺得 Redux 那是三小,怎麼那麼複雜?流程圖我看過四五遍還是看不懂啊
但有一天就跟著官方文件一步一步來,每個流程都跑過一遍
然後開始依樣畫葫蘆,試著模仿做出一個新的功能
這時候再回去看流程圖,發現居然能夠理解了!
就這樣反反覆覆多個幾次,就知道 Redux 到底在幹嘛了

前幾天六角辦了同學會,有一個六角的助教有分享他那天回答的問題:被車輪戰的六角同學會
裡面有針對:「學習上卡關」跟「目標達不到」這兩個問題做回覆,我覺得很棒,大家都可以去看一下

這邊幫大家稍微摘要,「卡關最主要問題是『沒有將功能拆出來做』,假設有 ABCD 四個功能,你在思考的時候可能是 一次在想這四個功能怎麼做,但是其實這就是最主要問題,你應該將功能一個一個切離出來,一次只思考一個功能該如何製作,做完 A 再去做 B」

當你在學習寫程式時,你在學的絕對不只有程式,還有「學習如何學習」
而且這套技能是可以帶著走的
像我學程式這麼久,找到一個學習方法之後,總感覺順利很多
至少在自信上面變多不少
以前是「怎麼辦我學不會」,現在是「我一定學得會,但要給我時間」
連帶影響到我覺得學其他東西好像也類似
有信心的話其實就先贏一半了,但這信心需要建立在你已經精通某樣東西的基礎之上

所以我其實滿喜歡看大家進度報告寫到調整學習方法
因為滿多人可以從這過程中找到適合自己的方法
例如說寫筆記啦,整理成關鍵字啦,多方搜集資源啦等等
適合自己的方法就是好方法,反之亦然
如果你試過肌肉學習法發現很好用,那我也不會反對你用

接著底下是一些跟學習比較無關的事

前天跟一個學工業設計的朋友吃飯
聊著聊著他就突然說到他們公司用很多參數式設計
我就驚覺:咦?這不就是之前 minw 同學提過的東西嗎
瞬間有種很巧的感覺

他說這個最早從建築開始用的另一個原因是省錢
例如說現在有個房子,能不能在一樣堅固的情形底下節省建材?
最後電腦算出來就會有一些奇形怪狀,人腦根本無法想像到的樣子
但以工程的角度來說可能實用度是一樣的,但建材可能節省了 50%,就少了一半的錢
聽起來真的很酷

這週的隨意聊就到這邊
希望我能趕快到一個 wifi 穩定的地方然後直播XD

下集傳送門:

Written by

重度拖延症患者,興趣是光想不做,有很多想做的事,卻一件都沒有執行。無聊的時候喜歡寫文章,發現自己好像有把事情講得比其他人清楚的能力。相信分享與交流可以讓世界更美好。Medium 文章列表請參考:https://aszx87410.github.io/blog/medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store