Git Product home page Git Product logo

daily-notes's Issues

[2019-02-28] 火光

關於速成

今天突然想到一個關於速成的問題,突然想到為什麼要求學生全職參與的班級如果時間越短越好,因為學生除了要付出時間成本以外,在全職參與的那一段時間其實是沒有任何收入的。

如果是六個月,代表學生六個月都沒有收入。想一想其實是一件可能會造成滿多人經濟壓力的問題,再加上有些培訓班先收費,收個八萬十萬的對學生來說又是一筆可觀的支出。

我以前都只想到學生需要付出時間,卻忘記了在這段期間內可能對某些人來說是會有經濟壓力的。

進度

第三期的進度會比第二期放緩滿多,直接怒增加兩個月變成六個月都在學習,原因是第二期眾多學生根本上,進度形同虛設,而且再多加一點時間的話,中間有幾週可以給大家複習,其實是件好事。

但這樣子的調整其實我擔心的後果有兩個:

  1. 進度反而變太慢
  2. 課程拉太長反而很難維持注意力

第一點的話我在想好像不一定要綁學生進度,反正第三期會變成全影片教學,等於說是加強版的線上課程,自己可以調配進度,如果真的天生神力也可以三個月修完全部課程我也沒意見,沒有必要規定大家進度都一樣,但是課程會有一個主進度在跑,讓學生衡量自己是超前還是落後。

第二點的話這個就難講了,有可能是這樣沒錯,但也有可能課程放緩,學生培養起學習的習慣以後就比較不會有這種問題,這看起來可能要試了才知道。

以價值來衡量

我的課程收費方式是以最後找工作時拿到的最好的 offer 月薪 * 1.5 來計價,假設月薪是 40k,學費就是 40k * 1.5 = 60k,會這樣做的初衷有兩個,第一點是讓你知道我跟你站在同一陣線,你薪水越高,我就賺越多,反之亦然;第二點是你拿到的薪水越高,代表我的課程對你越有幫助,所以應該多付我一點。

國外的很多培訓班也都是這樣的收費方式,但背後比較多應該是有關第一點。關於第二點其實我後來想一想覺得有點奇怪,第一個奇怪的點是當學生薪水高到某個程度,我其實會覺得我不該收那麼多,因為我覺得我的幫助沒有到這樣。假設學生找到一個六萬的工作,依照現行制度學費就是九萬,但我覺得這六萬有大部分都是因為學生自身,跟我的課程不是百分之百相關。

所以之後可能會加入個上界之類的,例如說最高就是 7 萬,超過我也只收 7 萬。奇怪...怎麼有人還會嫌自己拿太多錢XD

第二個奇怪的點是,有了薪水當作衡量之後,這似乎就變成了一個比較的標準。六萬的人比五萬的厲害,五萬的比四萬的厲害...怎麼想都覺得怪怪的,這跟以前學生時期時 100 分的學生比 90 分的學生的優秀似乎差不多。「成績比較好」或是「薪水比較高」這幾點的確是事實,但當我們拿這些東西來比較時,有時候似乎會錯把某個面向的價值看作全部。

意思是,好像 100 分的學生就是比 90 分的厲害,不只是成績,而是整個人就比較厲害。而且在成績跟能力不一定是成比例的關係,因為成績是反映在考試上,而考試不一定能反映能力;就像薪水也是反映在面試上,但面試不一定能反映能力,你可能工作起來超級強但面試超級弱,或是相反的 case 可能更多。

我在程式相關問題一網打盡:談自學、轉職、出國、職涯、教學、補習、騙錢、產業以及努力寫過一段:

我也不會說什麼你沒學程式就是魯蛇,來這邊轉職成工程師就可以變為人生勝利組。不是這樣的,寫程式沒有比較高尚,職業跟薪水不是讓你拿來做比較的,比起這些無謂的比較,找一份讓你能開心的工作比較實在。
如果你寫程式感到開心那當然很好,如果是為了錢想要轉職成工程師那也可以,因為錢可以讓你覺得開心。可是工程師這個職業跟其他職業都一樣,沒有高下之分,沒什麼好比的,人比人,氣死人;蛋糕比蛋糕,氣死蛋糕。想當工程師也很好,不想當工程師也很好。

我自己說了不要比,可是偶爾沒注意到的時候卻又落入了這個比較的巢臼,戒之慎之。

如何與團隊成員有效溝通

今天看到 ptt 上面財報狗的徵才文,裡面附了一些文件,這篇滿有趣:如何與團隊成員有效溝通

以後我也應該來寫篇:如何與老師溝通,然後裡面列一些可以跟我討論的事項以及提問注意事項等等,應該也滿有趣的。

學生為什麼不喜歡上學書摘

突然發現很久沒寫書摘系列,感覺這本可以快速看完一下,會給之後規劃課綱一些靈感
今天摘的是第二章:學生應該學習什麼樣的知識

這一章也很有趣,大家對於教育都會強調要讓學生思考,可是在思考前其實還有一個先備條件,那就是知識。你必須先有事實型的知識,才能夠思考。

書裡面提到了一大堆的例子,佐證了在閱讀時有沒有背景知識會對於理解差異很大,有背景知識的話閱讀理解能力會高很多。

背景知識對於閱讀理解的幫助:

  1. 提供詞彙
  2. 填補作者留下的邏輯空隙
  3. 讓意義單位能夠組塊,增加工作記憶體的空間(FBI 比 BFI 好記,因為前者你知道是什麼)
  4. 有助於詮釋模棱兩可的句子

總之呢,這整章就是在提醒大家事實型知識的重要性。

回想我的教學,其實有些作業就是在學生背景知識不足下的狀況讓他們寫,導致時間拉得很長。課綱之後可以針對這部份做加強,在前期務必讓他們先擁有相關的背景知識,這樣理解應該會順利很多。

本日歌曲

mv 版的音質滿差的,貼別版的:石康軍-火光 高音質
https://www.youtube.com/watch?v=wmr2Nxkq5bw

[2019-03-08] 吉他手

這幾天應該都會頗忙,心得就隨意寫了
還是做正事重要,不能硬要寫心得就拖累其他進度
沒有心得也不用硬寫

整理

整理了一下之前幾天的心得筆記,怕有東西忘掉:

  1. 簡答題要跟大家說自己寫,不要抄,或是應該要換個方式問簡答題
  2. 手寫程式碼
  3. 把問題說清楚
  4. 加 eslint
  5. 主題式作業

本日歌曲

陳綺貞 Cheer Chen【吉他手 Groupies】Official Music Video
https://www.youtube.com/watch?v=t_qY5dXbzzw

[2019-03-12] 孤單心事

突然發現那兩本書都沒看完,一本只看了前幾章,另一本看到中間,仔細想了想,還真有我的風格。什麼風格?就是半途而廢的風格...ㄏㄏ

再兩篇這系列就要完結了,明天晚上我還要來 po 第二期成果,後天晚上來 po 第三期報名表,第三期課程大綱大部分都準備好了,之後就等之後再調吧,我自己覺得第三期大綱有進步,作業也變比較有趣了。

然後 mac 的零件到了,最近可以找時間去修,原本想說週四 po 完文沒事做就拿去修,後來發現應該週六去才對,反正假日應該也不會維修,週四晚上拿去跟週六晚上拿去感覺也沒差多少,我還可以多用兩天電腦,至於為什麼不週日呢,因為他說週日以前要拿去,哭哭

本日歌曲

藍又時 - 孤單心事
https://www.youtube.com/watch?v=QdsvAKKTfjA

[2019-02-14] 溫柔地,暴烈地

到底要服務誰?

其實這個問題我過年本來想寫一篇文章來探討一下,後來懶症發作就沒有繼續了。就像上一篇有人說的一樣,目前程式導師計畫每半年左右一期,只要那個時間點你沒跟上,就要再等半年了。

所以現有的機制必定會有一些人被排除在外,我就沒辦法服務到那一群人。雖然要服務所有人是件不太可能的事,但我想做到至少服務盡量多的人。

如果要解決這個問題,就代表課程的機制要改變,其中一種方向是像 ALPHACamp 那樣做一個學習系統,就可以把課程做的規模化,有新的人加入就開一個新的帳號,課程資源都在系統上面。

做一個學習系統這件事我其實有想過,但當初想一想覺得太麻煩了就先擱置了。

在沒有資源沒有時間的情形之下,也就只能先犧牲一些人,先去服務人數最多的那一群。

有關學習系統

接續剛剛談論到的話題,我今天也有想了一下有關學習系統的事。

對我來說最理想的方式是我先自幹一套學習系統然後開源出去,先把最基本的核心功能做好。開源的好處是什麼?好處就是接下來我的學生就可以一起來維護這一套系統,幫自己每天在用的系統送 PR 而且加上新功能。

非相關背景轉職最大的致命傷之一就是沒有實戰經驗,其他的課程通過帶學生做一個很完整的作品來解決這件事情。而我想解決這問題的方向是跟學生一起打造出一個開源專案,這樣我自己本身的教學系統能夠獲益、學生能夠獲益、其他想用這套系統的人也能夠獲益,我自己覺得是一個不錯的解決方案。

但這件事情的難度在於我必須先寫出一個雛形,而且把一些規則給定好才能讓學生來 contribute,要做哪些 task 我也必須先想好,等於說我就是一個 PM 的角色。

聽起來滿有趣的,就先當作一個 idea 放著,以後再來研究可行性如何。

大腦喜歡這樣學書摘

這次回台灣買了一些跟學習相關的書,以後打算在教程式之前先簡單教大家怎麼學習,或不要用「教」這個字好了,而是跟大家分享學習相關的一些知識。

所以接下來偶爾會出現一些書摘,這幾天看的一本叫做:大腦喜歡這樣學

今天來分享 part1:學習與大腦的關係中第一章跟第二章的內容

人的思考其實可以分成兩個模式,專注模式跟發散模式,會有這種模式的可能原因之一是演化,就像小鳥吃東西時一方面必須非常專心在拾起地上的食物(專注),另一方面也要時時關注周遭環境避免受到敵人侵襲(發散),所以要頻繁在這兩種模式之中切換。

專注模式就像是你很認真去思考一個數學問題並且去想出解答,你的方向可能是明確而且單一的,就是一直往這個方向走。有時候這樣子反而更容易解不出來,因為你可能掉進了一個死胡同。

定勢效應以我的理解就有點像是先入為主的感覺,你的大腦已經幫你定了一個方向,而你會被影響所以只往那個方向去走,這就是專注模式下的缺點,可以想成一束直直射出去的光,可以照得很遠但照亮的範圍很小。

發散模式則相反,是一束四面八方往前散開但照不遠的光,可以給你一些大局觀以及讓你發現原本沒想到的東西。書中也讓讀者試了一個有趣的方法,那就是先往後翻,大略看過標題或圖片之類的,先對書中要講的東西有個印象,接著再回來仔細看內容。其實不少速讀相關的書籍很多都有類似的做法。

也提到了為何數學這種抽象的東西不易理解,因為沒有實際的東西可以參考,當我講到「牛」的時候你可以指著現實生活中的牛,但是當我指涉到「加法」時你沒有一個東西可以指著它說:這就是加法。所以在教學中若是能把抽象的東西轉為實體,應該會有幫助於教學。

就像是講同步與非同步都會提到的餐廳例子,或者是講 session 機制會用到的通行證例子都是差不多的,以後在教學時也要盡量提醒自己要想一下能不能把要教的主題具象化,會更幫助學生思考。

知道了專注與發散模式之後,如果想要學習的好,就要在兩種模式當中切換。書中有舉了一些例子,而我自己也有很多例子是相似的。像是我之前從某公司那邊拿到一份演算法相關的考題,不難,是最長遞增子序列跟合併排序,但我太久沒寫了所以看到考題時想了一小時發現解不開,於是就跑去洗澡。洗澡的時候邊洗邊想,洗完澡後花了十分鐘就把兩題都解開了!

所以洗澡真的是可以幫助思考的,因為那時候進入了發散模式,開始往大範圍的地方搜索解法,比之前卡在那邊卡個半小時一小時好多了。還有我有想法的時候通常都是散步,在路上走著走著就突然有了什麼靈感,沒有特別想事情但事情就突然跑出來了!睡覺前也是,躺在床上沒做什麼然後就有了靈感,依照書中的講法應該就是發散模式。

書中也介紹了番茄鐘工作法,專注 25 分鐘以後休息,是一種強迫自己在專注與發散模式之間切換的方法,我自己是沒用過但感覺挺有用的。

這兩章最重要的部分就是介紹專注跟發散模式,兩者的異同以及如何切換。以後當我跟學生說解題卡住可以先去散步或是洗澡時就有科學根據了。

本日歌曲

原本想要應景一下貼個分手快樂,後來發現這樣人太差了於是作罷。

分享一首之前突然聽到但很喜歡的歌:James Yang 楊永聰 《溫柔地,暴烈地 》Official Music Video
https://www.youtube.com/watch?v=ir9DWodQV1s

[2019-03-13] 我可以

yo,第二十九篇了

今天終於 po 了準備好已久的課程結果文
今天跟明天的這些日記就不 po 粉專啦,反正也沒什麼內容

今天又收到了幾個學生的回饋,覺得都很不錯,滿有啟發的
可以再來改一下課綱

本日歌曲

蔡旻佑-我可以
https://www.youtube.com/watch?v=xcZBZ1VSyBc

[2019-03-03] 動不動說愛

複製網站

最近看到一些其他教學,發現複製網站正夯,就是教你 copy 一個網站,並且從 copy 的過程中習得許多技能。

發現這點在我的課程裡面沒有,仔細想想發現這個應該要加進來才對,因為可以讓學生們更知道一個大型網站可能會注意到哪些事項,屬於比較大規模的專案。

至於之前為什麼沒有...我覺得可能是因為我覺得要自己做一個大規模的專案很麻煩就是了XDD 畢竟拷貝歸拷貝,對象是大網站的話一樣要花超級多心力。

但我會認真思考如何把這個放進下一期,也會好好想一下是否有這個必要性。

學生最大的疑問

今天重看了一下之前期中時學生給我的 feedback,很多人會對自己的實力產生質疑:「我離產業到底還多遠?我要學到怎樣才夠?這樣真的夠了嗎?」

其實這個問題我以前也有過,而我覺得其實滿難解決的。或是說比起實力問題,這比較像是一個心理上的問題。意思是說,我大概知道怎樣算是夠,可是我要怎麼讓他們相信這件事情?

我要怎麼讓他們肯定自己:「對,我學到這樣真的夠了,不要再煩惱了」?我覺得這才是比較困難的事情。

我這邊目前想到幾個方法:

  1. 拿上一期學長姐的履歷給他們看,讓他們先看看自己最後可能可以成為的模樣(至少會的技能是一樣的)
  2. 考試?透過考試來鑑別程度,困難點就變成我要怎麼出考題
  3. 讓他們先把這個問題放在心裡,跟他們說先跟著繼續學,面試時面試官會給你答案
  4. 跟他們說作業能寫得完其實就可以了(但這個成效最差,還是很多人不相信)

本日歌曲

昨天看到自己動態回顧發現這首,真 d 不錯。如果有人聽過這首麻煩告訴我,我會很驚訝。

喬紫喬「動不動說愛」官方完整版 MV
https://www.youtube.com/watch?v=8ZiV5eTfSOw

[2019-03-10] Lydia

這系列後面幾篇大概沒什麼跟教學有關的內容了,我就把它當日記隨意寫了

昨天在更新 mac 的時候稍微翻了一下《遊戲化實戰全書》,發現我之前對遊戲化的誤解應該滿深的,很多人可能以為遊戲化指的是把一個平凡無奇的小事加上遊戲的元素,就會讓人對這個東西上癮,例如說用在教學上就能增加學生學習的效率跟意願之類的。

也就是因為這樣,很多人才會把一些跟遊戲無關的東西加上一些點數、等級、成就等等的系統,以為這樣就叫做遊戲化。

不,這個就叫做只有抄到表面而沒有把概念學起來,遊戲好玩真的是因為他有這些設計嗎?不是,是更深層的原動力在驅使你玩遊戲,而等級只是一種呈現出來的結果而已,不是每個 App 加了這些元素之後大家就會深深著迷。

雖然我才看了一些,但我認為遊戲化的解釋應該是:

遊戲設計者的目的只有一個,就是盡可能把你留在遊戲裡面,而為了把你留在裡面,想出了很多的手段與方法,就是要讓你上癮,讓你覺得這個遊戲很好玩。而這些從遊戲設計中學到的概念,才是我們要拿來用在「遊戲化」的元素,而不是那些表象。

舉例來說,臉書是個遊戲嗎?不算吧,他沒有等級、不能打怪練功,也沒有大魔王可以挑戰,但背後依然可以用作者提供的八角框架來解釋遊戲化的元素。所以我才說遊戲化不是真的把一個東西變遊戲,而是去使用我們在遊戲業裡面發掘的那些技巧、那些會讓人在意的東西,套用在產品上面。

所以經過遊戲化以後不一定會變成遊戲,有可能外表看不出來是個遊戲,但背後的概念卻是一致的。

如果有第四期的話我要朝著這個方向走,感覺很有趣。

本日歌曲

F.I.R. 飛兒樂團 - Lydia (華納 official 官方完整版MV)
https://www.youtube.com/watch?v=ZOHsd6Zk7DM

[2019-03-05] 不准哭

今天收穫滿滿,收到了幾個學生的心得,也看到了一些還不錯的資源。

Slack

我的課程主要溝通軟體是 Slack,因為比臉書跟 Line 都方便多了,因此就算是沒用過的也會叫他們用。但我發現好像有些人沒有裝軟體而是用網頁版,這樣可能就會漏掉通知。

以後要跟他們說記得裝軟體,然後手機也裝一下 app,才不會漏掉訊息,畢竟這是最主要的溝通平台。

Problem Solving

今天看到這兩篇:
https://lob.com/blog/understand-design-build-a-framework-for-problem-solving
https://intenseminimalism.com/2015/a-framework-for-thinking-about-systems-change/

看起來都是不錯的資源,但要想一下可以怎麼應用在教學上。

課程導讀

今天在 ptt 上面看到 TonyQ 貼的這個:網站系統規劃實務,這一系列寫得實在是很不錯,而且切入的觀點其實跟我自己的教學很類似,稍微看了一下,也從這個系列學到不少。

無獨有偶地,今天在學生心得文裡也得到類似的收穫。

以往我在上課的時候,好像比較沒有針對這一週做一個 overview 的導讀,但讓學生有個概觀其實是很重要的,這點我在之前學習相關的書籍也有讀到。因此第三期應該每一週都先來個導讀,跟大家講這一週主要是在幹嘛,學了這些可以幹嘛等等

作業

今天突然想到,其實比起一個個分散的作業,如果作業能有主題、有故事,可能會吸引人許多。這點 head first 系列就做得很好,我記得就是以很故事性的方式去出習題以及範例,例如說今天要開個咖啡廳賣咖啡之類的。我覺得作業如果能這樣也會很棒,甚至整個課程就變成了一個主題樂園,不同週有不同的主題。

不過第三期可能沒辦法,先把這個 idea 記著留在心中。

本日歌曲

同恩-不准哭 官方MV
https://www.youtube.com/watch?v=z7xMN-9dZrw

[2019-02-25] 分裂

今天在查一些跟機票里程有關的東西,然後一樣沒什麼靈感
這才是正常的吧!沒有天天都在過年的,沒靈感的時候故意擠出來的東西也不能用
所以今天簡單我們來拉一下時程好了

時程

這邊指的時程是什麼呢?指的是如果我想開下一期的話應該要有的時間安排
如果有下一期的話,我希望最晚四月中能夠開課,那就訂個 4/15 禮拜一吧
在開課前一個禮拜公告錄取結果應該比較好,雖然之前都是兩個禮拜,但我覺得兩週其實有點太久
一週的話差不多,所以 4/8 要公布錄取名單
再往前推四週,我希望 3/11 能夠放出這一期的消息並開放報名

靠腰勒,那不就是兩個禮拜後嗎

不過為了防止自己拖延,幫自己訂這個死線好像也很不錯
逼迫我要在兩個禮拜以內把收費模式跟課綱都搞定,還要把報名簡章寫完

再次重新整理一下時程:

3/11 開放報名
3/14 第二期正式結束,要來寫心得文
4/8 公布錄取名單
4/15 開課
....
10/15 課程結束(這次課程我會拉到六個月)
12/15 第三期正式結束(一樣兩個月緩衝 + 求職期,在結束以前找到工作都需要付費)

發現拉長兩個月之後真的好長,整個計畫變成八個月了,但對於學生來說就會變得更輕鬆一點,至少不會發生像第二期這樣一堆人跟不上的狀況XD

不過我其實有想了一下,這樣到底是不是好事,如果進度太鬆搞不好會助紂為虐,有反效果。不過這之後再想吧,畢竟我之前隨意拉了一下課綱,我覺得六個月都在學習是有其必要的。

這次我也有想說要不要把課程設計的彈性一點,大家進度可以自己調整,意思就是如果你本來就有基礎,其實可以先上之後的課程,搞不好四個月就能出去面試找工作之類的,但這我還在想。

然後這次最大的不同會是直播全部取消,改為不定期直播。為什麼呢?因為上面那段期間我幾乎都在國外...對,幾乎都在,我五月開始周遊列國,所以除非有時間不然也沒什麼好開直播的,課程會全部轉為看線上的影片,但有問題的話我也是會盡量回答你(我會帶筆電出國)。

總之今天差不多就想到這裡,至少先把時程確定,自己心裡有個底。如果想趕上這個時程,可能這個假日就要來把第三期的課綱生出來了吧XD

寫到這裡我 review 了一下這篇文,發現 3/11 跟 3/14 才隔幾天而已,不如改成 3/14 po 第二期心得文,3/15 po 招生文,這樣子也能讓學生去評估這個計畫值不值得參加,這樣流程比較對

雖然原本的方式再等個幾天也能看到心得文,但是一開始看不到其實滿奇怪的。

更新後的時程:

3/14 第二期正式結束,要來寫心得文
3/15 開放報名
4/8 公布錄取名單

所以大家大概有三週左右可以準備報名(一定一大堆人還是趕死線,最後才丟報名表)

本日歌曲

周杰倫 Jay Chou【分裂 Split】Official MV
https://www.youtube.com/watch?v=eM6mF4RWhe0

[2019-03-02] 某年某月某一天

學生為什麼不喜歡上學書摘

這次摘的是第三章:為什麼學生比較記得住偶像劇劇情?

這一章真的很棒,推推。

大腦是怎麼決定你要記住哪些事情?為什麼你可能突然忘記你要拿什麼東西,可是十幾年前的廣告歌曲卻記得起來?

記憶是思考的殘餘物。作業要留意的不是你想讓他們學到什麼,而是他們實際上會想到什麼,這才是重點。

所以實際上應該怎麼做呢?故事「享有心理上的特權」,人類的大腦似乎天生就擅長於記憶故事,而一個好的故事可以套用 4C 法則:

  1. causality 因果關係
  2. conflict 衝突
  3. complications 複雜難題
  4. character 角色

那故事要怎麼應用在教材中呢?書中舉的例子是要講珍珠港事件時,可能會從美國的角度下手,會談到美國孤立主義以及珍珠港被日軍攻擊等等;但如果換個角度從日本切入,事情就變比較有趣了,你可以用說故事的角度把日本設定為主角,碰到一系列的困難最後決定展開**等等,會更有戲劇張力。

這邊引書中寫很棒的一段:

回到教學上,我是這麼想的:我要學生學習的內容,說白了就是一個問題的答案。答案本身一點都不有趣,但如果你知道問題的話,答案可能會很有意思。所以把問題說清楚才那麼重要。但我有時候覺得,身為教師,我們都太強調求出答案,而沒有花足夠的時間讓學生理解問題,並了解問題的重要性。

接著談到如果要教的東西本身就沒什麼意義怎麼辦?例如說九九乘法表、化學原素表的某些元素等等。這時候就可以運用記憶術了,這邊我就不多談了,這些在程式上好像用不太到。

而這章最後面也給了一些很棒的範例,思考意義有助於記憶,教師該如何確保學生在課堂上針對意義進行思考呢?

第一,從學生會思考什麼的角度來檢視教案

例如說要學生做一個歷史報告,結果學生突然發現用 powerpoint 來做很酷,獲得允許之後就變成研究 powerpoint,原本的報告就沒那麼關注了。

第二,小心使用抓住學生記憶力的活動

這個很有趣,既視感很深,很多老師都做過類似的事,例如說在教到羅馬相關課程時老師穿著羅馬袍出場,那學生的注意力很有可能就放在羅馬袍而不是在課程內容,雖然說可以抓住學生的目光,但反而抓住太多了,從頭到尾都讓學生只關注在你的穿著。

還有一點滿有趣,作者對「讓教材貼近學生生活經驗」滿不以為然。原因有二,第一是此點根本無法應用,有些東西很難跟學生生活經驗扯上關係;第二點是如果無法說服學生相信生活與這些東西相關,是不是就不該教?

學生的興趣不應該是課程設計的驅力,但可以做為幫助學生了解課程內容的切入點。

看到這一章的時候立刻想起兩篇我以前寫的文章:There is no magic in my classroom零基礎的小明要如何成為前端工程師?,因為這章寫的跟我的教學路線有點像,只是這一章又講的更清楚了一點,而且提出科學以及認知心理學的證據來證明這些的確是有效的。

再引一次上面很喜歡的這段:

我要學生學習的內容,說白了就是一個問題的答案。答案本身一點都不有趣,但如果你知道問題的話,答案可能會很有意思。

答案真的一點都不有趣,你當初學 session 是什麼的時候你有覺得很有趣嗎?沒有,你根本不知道它有趣在哪裡,但如果你從:「該如何在 stateless 下的狀況驗證身份?」這個角度去切入並一步步探索,你可能就會覺得 session 很有趣了。

這一章的內容對於規劃課程真的很實用,這本書真的推推。

再舉一個例子好了,計算機概論很多人都上過,滿無趣的,但我之前的 coding 火球術是以一個問題作為切入點,讓這個問題引發你的興趣,例如說:「你有想過為什麼忘記密碼時只能重設密碼嗎?為什麼他們不告訴我密碼就好?」或是「有些遊戲的數值在超過一個範圍時會變成負數,為什麼?」,這些例子一來可以引起興趣、二來又是一個扣題的問題,再從這個問題延伸下去,我覺得這是很好的做法。

第三期要教網路相關概念時,我絕對不要死板一步步教起來,我要先拋給大家一個問題:「兩台機器在網路上要怎麼溝通?」讓大家去思考一下,再來看網路到底是長什麼樣子。

本日歌曲

某年某月某一天
https://www.youtube.com/watch?v=eYxXo6OPWKA

[2019-02-13] 錯的人

這是心得筆記的第一篇,先再次簡單說明一下內容大概會是什麼
基本上就是我當天思考的一些筆記,有可能會很凌亂也有可能我會先整理過
但品質不保證XDD
有任何想討論的都可以留言在下面
今天就來記錄幾個最近在想的事情好了

第三期要不要開

這個的問題之前跟大家說過了,我五月開始要去周遊列國,所以就算開了的話直播一定會取消,再來就是我還必須帶著電腦才能改大家的作業,教學品質上可能會變得比一二期差了些。

當然也可以找助教來改但我不放心,而且也不知道找誰,所以還是先自己改最好。

直播的問題其實還好,之前第二期的時候就調查過了,其實直播對大家來說沒那麼重要,反正有影片就好,這應該是小事。

總之呢我昨天稍微想了一下,目前大概八成確定會開(我沒說十成喔,所以不是保證會開XD),如果要開的話我稍微隨便想了一下時間,大概是 3/25 報名截止,3/31 公布名單然後 4/15 正式開始,時間還未定我隨便拉的而已。

之後確認要開的話一定會再 po 文跟大家公告。

會讓我想開的理由之一是前幾天 po 的一篇文最後有簡單調查對第三期有興趣的人,收到了 50 份左右的回饋,有滿多人留言說想參加。

要不要把工程師也納入受眾

剛好有幾個朋友不約而同問我說有沒有想要針對已經在工作的工程師開課,讓他們可以繼續精進自己的技術繼續往上。這個問題其實我以前想過,但原本是要拿來當作下一步,意思就是說我把新手的課程搞好以後才會踏入這塊。

但後來我仔細想了一下,其實第二期就已經有三個工程師進來上課了,而且課程內容還算是有幫助,如果我能把這塊再延伸一下,說不定同樣的「課綱」可以同時拿來教新手跟教工程師,差別在於主題的深度。

舉例來說,一二週講到基本程式觀念時,新手寫那些常見題目,什麼九九乘法表或是費氏數列的,然後工程師我就上各種排序法還有二分搜尋,這樣不就兩者都可以兼顧了嗎?

或再舉個例子,上到 CSS 的時候新手我講 box model 講各種 position,工程師我就講性能優化、grid 排版跟一些 CSS 的方法論,也能同時兼顧到。

這樣的好處除了可以兼顧到以外,對新手來說就算是同樣的課程也能夠再上一遍因為深度不一樣,而進度快的同學也可以直接寫工程師班的作業,不用怕沒東西可以做。

靠邀,這樣想一想覺得這想法真的很不錯,我會認真考慮這個方案。

時程安排

眾所皆知第二期的時程太短,所以第三期要重新調整時程。原本計畫是四個月教學,六個月內找到工作收費。新的我還在想要怎麼調,或許五個月教學,七個月內找到工作收費?或是也可以六個月教學,八個月內找到工作收費。

不過這好像要先看我課程大綱怎麼安排才能確定到底要教多久,像是原本我規劃的 final project 第二期完全沒人做,但目前看來好像也沒關係,因為課程裡面寫的那些作業儘管都叫做留言板,但每個學生寫出來的留言板都不一樣,所以看起來不會像作業。

總之這個之後要再想一下到底要多久,先規劃一下課綱比較實在。

初學的其他選擇

以往兩期我都是報名時要學生先接觸 scratch,進來之後直接教 JS。這樣的問題其實是比起 JS,我覺得應該還會有更好的方法讓初學者來入門。

之前有想了一個,例如說組合語言!

搞不好更適合初學者,理由是組合語言的指令都是一行一行的,真的只做一件事情,我認為有可能幫助理解。但實作上的困難是要先挑一種跨平台的組合語言才能教,有想過用以前大學時候用的 TOY 但還是有點麻煩。

後來乾脆想說那我就自己寫個簡單的直譯器加簡單指令好了!反正組合語言不是重點,重點是每一行只能做一件事情,所以可以自己發明一些語法像是這樣:

GET_NUMBER a0
ADD a0, a0, 1
PRINT a0

其實也能達到相同的目的。

這問題想一想我想到以前小時候學程式,我認為 C 靠杯難所以就跑去學 VB6,找到一片天地,因為有介面而且操作容易。所以我後來就想說那乾脆教 VB 開始好了,但 VB 沒有跨平台所以我想到了 xojo,跟 VB 八七分像。

我稍微試了一下覺得有機會,目前的規劃可能是錄一些簡單的 xojo 教學然後免費公開出去(或是收取相當少的金額,99 元或是 49 元之類的),讓學生在開課以前可以簡單學一下,我認為 xojo 應該也能夠幫助學生入門程式設計,而且門檻比 JS 低。

總而言之就是我要在 JS 以前再加上一個中繼的東西來降低門檻,目前 xojo 看起來是個好選擇。

總結

再寫就太多了,剩下留著明天講,最近在看一本書可以順便記一些讀書心得。

最後來講一下標題,如果標題都是日期其實滿無趣的,而且很容易會不知道自己看到哪一天,原本想說每個標題都自己下後來覺得太麻煩還要想標題,於是聰明如我就想到了一個解法:放歌名!

順便可以每天推薦大家一首歌,今天要推薦的是錯的人,但是是劉思涵唱的版本:

劉思涵《錯的人》【《喜歡你時風好甜》網劇原聲帶插曲】Official Audio
https://www.youtube.com/watch?v=UBIPmRSIEtQ

真 d 好聽,大家可以聽聽看,第一天就到這邊,大家掰掰

[2019-02-18] 那女孩對我說

關於原因

今天看到 ptt 的一篇好文:Re: [請益] 新手面試要會什麼才能凸顯自己的不同?,看完之後就立刻轉給學生看,裡面從面試官的角度來說明在面試新手時會注意的點,而這篇文章對我真的很有幫助。

前陣子學生陸續出去面試,基本上都有大致跟我更新一下狀況,有的每面完一間也都會來跟我分享剛剛被問了什麼問題。面試跟個人特質其實很有關係,有的人能力強但面試時會示弱,畢竟懂的越多,就會知道自己不懂的更多;有的人則是在面試時能夠很有自信,對答如流,碰到不會的問題也會盡力展示自己知道的那一面。

不過這是比較心理層面的東西了,比較難調整就是了。

在課程裡我常常會給許多簡單題讓學生回答,通常都是以「為什麼」來開頭,希望他們在用每一項工具時都能明確知道自己為什麼要用,以及不用的話會怎樣。但儘管如此,我猜有些學生在面試時碰到一些問題可能還是會回答:「因為上課有教」、「因為老師指定的」這種答案。

之後課程可能要特別提醒他們這點,在做作業前跟做作業後都仔細思考一下為什麼,儘管是我教的、我指定的,你也可以思考我背後的用意可能是什麼。例如說,為什麼我要用留言板來貫穿整個課程?為什麼我之後會教 React?這些都是學生可以再額外思考的點。

時間不應該是出發點

最近在臉書跟哀居一直被五倍紅寶石的廣告打到,就是這個課程:https://astro.5xruby.tw/

實體課程,三個月十萬塊讓你轉職成工程師。之前我有提過我做教學的目的是為了自我實現,證明我有能力比其他人教得更好,所以每當我看見一個新的課程出現,就會拿我的跟他的來做比較。比較好的我暗自竊喜,比較差的我就心服口服,並且從中學習,看看有沒有概念是可以移植到我的課程上讓我的課程變得更好。

在看到這個課程時,我的第一個想法是:

三個月實體班成功轉職,我能做到嗎?如果能,我能做得更好嗎?或者是時間更短?

想了一下這問題之後發現我錯了。

光是思考這個問題本身就錯了。

一昧的跟別人拚這個時間是沒有意義的,重點不在於時間多寡,在於我想要教哪些技能。正確的順序應該是把我覺得工程師必備的技能列出來,然後大概想一下要教多久,再按照這個時間來調整,而不是先想說:「我要三個月的課程」,再把這三個月塞滿。

不應該去想說他三個月的話我就要兩個月,這樣子是本末倒置的。時間不應該是出發點,應該是一種結果。

這點其實我之前也想過,必須在時間跟技能之間取得一個平衡,你不能太快,因為教的技能會太少,學生的能力還沒有到應該要到達的水準;但也不能拖太久,學生的耐性可能會被磨光,或者是經濟上可能也會有問題。

我知道有人可能會說:「這麼沒耐性的話還當什麼工程師」,這話說的不是完全沒道理,但耐性不是 0 跟 1,全有或全無。對我來說,能付出一定的時間連續學習六個月已經很有耐性很了不起了,這我覺得合理的範圍。超過六個月我就覺得有點久,除非學生想要到達的程度又更進一階,例如說想要學習大學那些資工系會修的課程,這當然就另當別論。

動力管理與收費模式

今天回了一個學生的心得:Lidemy/mentor-program-2nd#8 ,有了一些 idea。

付費可以當作增強動力的一個手段,而且對滿多人其實都有效,以下按照我認為能夠增強動力的多寡排列幾種付費模式:

  1. 課程開始前就先收學費,依舊有淘汰制,如果被淘汰了不會退錢
  2. 課程開始前不收學費,有淘汰制
  3. 課程開始前就先收學費,但被淘汰了會退錢
  4. 開始前不收學費也沒有淘汰制

第一種有雙重壓力,經濟的壓力跟被淘汰的壓力,一但被淘汰了就什麼都沒了,人財兩失。但我自己其實不太敢這樣收,因為我覺得對老師的壓力也更大了。不過根據契約自由的原則,如果雙方都同意的話其實是 ok 的。

我在想以後的課程可能可以提供多種付費模式讓學生自己選,看他要不要自己幫自己增添一點壓力。你可能會覺得:「誰那麼無聊會幫自己增加壓力」,這樣想你就錯了。國外有這種 Boss as a service 的服務,花錢雇用一個人來當你老闆、催你進度並且一直盯你。

對,很多人就是這麼懶散,要別人盯才會做事,沒有壓力就放給它爛。

但如果某個付費模式的壓力較大,相對之下可以在學費上減輕一點,然後如果是先收費的,根據我個人的原則一定要有找不到工作完全退費的保證。

因此付費模式可能長這樣:

  1. 開始前先付 4 萬,被淘汰了就什麼都沒了,一毛錢都不會退。但如果能持續跟到結業卻還找不到工作,全額退費。
  2. 開始前先付 5 萬,被淘汰了可以退回一半也就是 2.5 萬。同樣適用上面的找不到工作全額退費,前提是課程要跟完。
  3. 開始前不用付錢,有淘汰制,學費為月薪的 1.5 倍,以 35k~40k 來講學費就是 5 萬~6 萬 左右(現在的收費模式)

最沒壓力的方式就是第三種,但學費有可能到 6 萬或是 6 萬以上;再來是第二種,只要付固定的費用 5 萬,被淘汰還可以退一半;壓力最大的是第一種,但學費也最便宜。

其實聽起來還滿有趣的,可以讓大家選擇自己想按照哪種模式付費,不知道如果付費模式調整成這種的話大家會選哪個?我還滿好奇的XD

本日歌曲

今天跟大家分享的是黃義達的那女孩對我說,沒有貼 MV 版的因為 MV 版的比較吵
https://www.youtube.com/watch?v=l7KMXHTEwBY

[2019-03-09] 初戀

昨天發現 mac 電池壞了,完全充不進去,幸好插著電源還是可以繼續用,但一拔掉就整個電腦關機了。另一個影響是電腦效能明顯變慢,也滿合理的,畢竟供電量不太足(?)

很幸運地今天剛好 Apple 直營店可以預約,但在更新前我耍腦更新了作業系統...我原本想說還一個半小時,還久。結果更新就差不多花了我一個半小時,一直看著假的更新剩餘時間停在 32 分鐘還真的是頗緊張。

幸好又很幸運地剛好改到下一個時段,準時抵達 Apple 直營店,不出所料的是電池壞了要換,但是他說因為我的鍵盤是台灣的鍵盤所以要特別調貨,大概需要三到五天,我有問說那我如果用其他鍵盤是不是就不用等,他好像說一定要換原來的鍵盤,仔細想想可能也有點道理,不然排列會不一樣(?)要不然就是我英文太爛溝通不良。

電池是整個一體的,所以就是整個上機殼都要壞掉這樣,因此才要順便調鍵盤。我原本跟他說那還是不修好了,因為我下週要用電腦,他就說那不然零件到的時候再通知我,我再來修就好,我仔細想想也對,靠北為什麼剛都沒想到。而且他發現我螢幕鍍膜脫落,之前我就查過了,應該是原廠的問題,他說這個可以免費換,所以之後會連螢幕一起換。

現在就是等零件來,我預計應該下下禮拜可以拿去修,大概會有個三到五天沒電腦可以用吧...

今天就是這樣,沒有其他心得了。

本日歌曲

這次要推薦的是梁文音的版本

梁文音 Wen Yin Liang – 《初戀》#2019還在聽
https://www.youtube.com/watch?v=jTyZ3EgrnQE

[2019-03-14] 冷風過境

今天把第三期的報名簡章 po 出來了,歡迎報名或是分享給有興趣的朋友們:https://medium.com/hulis-blog/mentor-program-3rd-47a2e85e33b3

今天是這個系列最後一篇文了,三十篇的日記就到這邊告一段落。從前期認真記錄教學感想,到中期反省是否把這邊當作避風港,逃避正事,再到後期變成純粹的日記或是歌曲分享,初衷都沒有變過。

這個系列從來都不是什麼「典範」或者是有質感的系列文,他本質上就是個日記。只是有時候感想比較多的時候寫得比較多,看起來也比較完整而已,但它就是我的日記。所以寫的長或短,質感好或壞都無所謂,我管你覺得好還不好。

原本寫這篇就是為了跟大家說心得這種東西隨意寫寫,至少先把習慣培養起來,慢慢習慣用文字記錄這件事。有時間、有靈感的時候自然就會產生出較多的文字,也可以把自己的想法表現得更完整。不要有壓力,不要假想任何觀眾,純粹當 Evernote 來用就好。

感謝所有關注這個系列的朋友,接下來我要去忙其他事情了,這系列就到此結束不會再更新了,大家掰掰,881。

本日歌曲

5566 - 冷風過境 MV
https://www.youtube.com/watch?v=oY1YVIGubLE

[2019-03-01] 求愛復刻版

工程師的責任

在把東西送給 QA 以前自己應該要先做點測試是再正常不過的事了,不過我也碰到那種不知道在想什麼的工程師,功能一做好就直接送 QA,結果錯一大堆直接被退回來,很多基本的錯誤自己隨意測一下很難嗎...

這個跟課程的關係是什麼呢,就是有很多學生也是這樣,光是作業裡面附的 test case 就錯了還是交作業,或者是那種要切版的作業整個版面就長得不一樣還交上來,看著看著我也是醉了。

今天在弄第三期的課綱,我決定要在 README 特地加上這一段,跟大家說作業要交以前記得自己先檢查,至少確定基本的幾個 test case 都過了之後再送到我這邊來,不然來來回回也是很浪費時間。

雙面刃

之前提過想要做一個整合的學習系統,原本想讓大家都可以看到每個人的進度,但想了一下發現這是雙面刃。如果大家進度差不多那就有互相砥礪的效果,你知道大家都在努力;但如果某個人進度落後其他人,就會覺得緊張或是自我質疑,想說是不是我太弱。

儘管我會跟這種學生說按照自己步調走就好,但依然會被其他人影響,如果心態沒有調整好的話可能就爆炸了,這就是這個機制必須先考慮的地方,或許只顯示跟自己進度差不多的人就好?

寫寫寫

突然發現我在第三期裡面放了很多需要「寫」的作業,例如說複習週會要你寫下這四週的心得,或是有些作業也會要你寫下解題的心得等等,所以作業裡面多了滿多簡答題,如果本身很討厭打字的話應該會覺得滿不適應的,但寫不出來我也是不會勉強啦,能寫多少是多少。

本日歌曲

Comic Boyz - 求愛復刻版
https://www.youtube.com/watch?v=lHnqi3CIjm4

明天又是假日了,應該又沒什麼心得好寫了,來寫書摘好了

[2019-02-22] 無法開口

課綱與時間

今天在稍微拉一下之後教學計畫的課綱,目前安排的時間是四個月上基礎,之後兩個月教比較進階的東西(React),時間比第二期其實長滿多的。最後面也有在想說是要繼續教 React 還是 Vue,因為後者好像對初學者更友善一點。

之前有提過有些工程師問我會不會開給工程師上的班,然後我心得有提到說同一套課綱可以依據深度的不同,同時給兩個客群使用。

舉個例子:

第十一週:後端基礎(中)

網路安全:SQL injection, XSS, CSRF
會員系統、session 與 cookie
hash 跟加密以及編碼的不同

進階班:

blind sql injection 盲注
自動掃描工具?
ssrf
更進階的 xss

像是這樣,就可以同一個課綱給兩個不同程度的人使用,如果有學生進度超前也可以去學進階班的東西,同時解決了兩個問題。

但我今天想一想,發現如果我還要再弄一個工程師班,代表我就要付出多一倍的時間去錄影片然後去出作業、上課之類的,以我現在的狀況來說應該沒那麼多時間,所以工程師班短期之內應該不太可能開,除非我突然有了時間或是找到比較省時的方法。

成為工程師簡單嗎?

另一個今天想到的問題很有趣,「從什麼時候開始,我漸漸認為要變成工程師並找到工作是一件簡單的事?」,畢竟我學程式十幾年了,我發現在以前我完全不覺得這是件簡單的事,我甚至不認為我剛出社會的時候可以找到一份不錯的工作。

可是現在想法變了,我培養了一堆學生,只要能把我出的課綱差不多修完,幾乎都能找到工程師的工作。為什麼我會覺得這是一件簡單的事?為什麼我不再像以前那樣覺得工程師這個職業很困難?

這對我來說是很有趣的問題,我想了一下,原因可能有兩點,第一點是那時程式培訓班開始漸漸出來,讓我覺得零基礎轉職是有可能的;第二點是我已經工作好一陣子了,我大概知道新人需要具備哪些技能可以找到工作,而以這些工作來說,我覺得是可以在半年之內學會相關技能的。

當然,我花了很多時間來培養我的自學能力跟程式觀念,花了很多時間找資料,這些都是無法取代的經驗。但今天培訓班做的事就是幫你壓縮這段時間,透過犧牲一定的自學能力來換取時間的快速,在短時間內讓你成為工程師。如果能把這一段的 trade-off 找到一個平衡點,其實就是很不錯的課程。

本日歌曲

無法開口 (Wu Fa Kai Kou) - 苏永康/William So
https://www.youtube.com/watch?v=-uryj4XnQ-s

[2019-02-19] 我們一樣可惜

今天有超級亮的超級月亮,大家沒事做的話可以舉頭望明月一下。

作業的難度

最近有幾個同學出去面試,有一個給了我一個不錯的回饋,說去面試的時候對方都會問說這個作品是上課做的還是自己做的,如果說是上課做的,可能對方就會覺得這個只是按照課程的說明一步步 copy & paste 建立起來的。

很多課程的確都是這樣啦,但我的導師計畫可不是,學生會寫作業寫那麼久而且寫到崩潰就是因為那些細節我都沒給XDD 所以版面自己刻的,功能大多數也是自己實作出來的,這點在面試時應該要特別強調一下,說是作業只給方向而已,其他都是自己實作出來的,避免被誤認為這個作品沒有什麼難度。

以後在課程中也可以特別強調一下這點,雖然每個學生的履歷上都會把留言板放上去,都程式碼都長得不一樣、版面也長得不一樣,因為都是自己做出來的留言板,而不是參考範例的。

中文排版指北

我在一開始就跟大家推薦了中文排版指北,而且看起來成效顯著。

我是不知道在我推薦以前有多少學生原本就會在中英文之間加空格,但這個一變成習慣之後就改不太掉了,看到有人中英沒空格就豆頁痛,跟學生聊天也發現很多人都會加空格,不知道是不是被我影響。

總之以後還是會繼續跟大家推薦這個東西,畢竟寫文章有個規範可以 follow 本來就是件好事,這種習慣及早養成比較好。

long polling 與 websocket

今天剛好跟一個朋友討論到 long polling 之類的問題,讓我想說要不要以後在課程裡也加這個,可以讓大家先實做一個 polling 的網頁,接著換成 long polling,最後改成用 websocket 來實作。

可以做個沒那麼即時的聊天網站之類的,感覺應該還滿有趣的,順便可以讓他們知道這些網站背後溝通的原理是什麼,畢竟即時通訊跟一般那種 web app 還是差滿多的,學一點這些概念也是不錯。

不過還不知道要放在哪裡比較合適,這點還要再想想看。

好歌分享

今天推薦的是這首:好樂團 x 瑪啡因 ─ 《我們一樣可惜 Full Band ver. 》Official Lyric Video
https://www.youtube.com/watch?v=zGrYK1VTIjs

[2019-03-06] 靠岸

今天沒靈感,寫書摘。原本想說三十天可以把兩本書都看完,現在看來能看完一本就偷笑了。

學生為什麼不喜歡上學,第四章:為什麼學生難以理解抽象概念

這個真的是講得很對,抽象概念對學生來說真的頗難理解,教程式就是這樣。

書裡面提到:「我們在已知事物的架構下理解新事物,而大多數我們所知都是具體的。理解其實就是記憶,人類藉由連結新的事物跟舊的來理解新的事物。」

所以比喻很重要,能把抽象概念連結到已知的事物來類比的話就會好懂很多,像是講 GET/POST 時的明信片跟郵件範例、Promise 時的燈塔範例(還是釣魚之類的,我忘了),以及 callback 最常用的點餐範例,都是很好的例子。

然後理解可以分兩個層次,表面跟深層。若你掌握了深層結構,看到相似的題目就可以融會貫通。若是只掌握了表層,那類似的題目你可能會解一個但不會解另一個,儘管他們其實是一樣的。知識移轉是困難的。

下一章會講到如何增加知識移轉的成功率。

好,這章學到最重要的東西就是比喻很重要,真的很重要。

本日歌曲

林宇中 靠岸
https://www.youtube.com/watch?v=trF_5yBBfVI

[2019-03-04] 夏天的風

昨天那篇引起頗多共鳴,但說實在的還真的沒什麼好解法,真的難解。

今天很有效率地把一個之前的 idea 實作出來了,覺得充實。所以今天也沒什麼好寫的

開頭警語

覺得第三期的報名文要特別加註警語,跟大家說第二期的轉職成功範例我都放在那裡,但不要只看成功的,你拿總人數減去成功的就會知道失敗的有多少了。失敗的比成功的多,原因很多種,我也不敢斷定是哪種。

所以就算你真的一天付出八小時、連續五個月,我也沒辦法保證你會在結業時成為工程師。但若是你真的有辦法付出這麼多的時間,而且你最後還是希望能成為工程師,我可以保證我會一直帶你,直到你變成工程師為止。

之前第二期報名文我也寫得滿清楚,我是走一個契約自由原則路線,我把我這邊資訊盡我所能公開,課綱、收費方式、過往案例跟我對教學的態度全部透明放在那裡,你自己衡量過後決定要不要來,來或不來都是你的選擇,大家就按照規定走,沒什麼誰虧欠誰。

本日歌曲

元衛覺醒-夏天的風KTV
https://www.youtube.com/watch?v=3U5Pd6XVJAY

[2019-03-11] 接不接受

今天做事太認真差點忘了 po。

在 gandi 上租了個簡單的虛擬主機,原本想說要不要去 godaddy 上租或是直接用以前開的 EC2,不過想了想之後還是支持一下 gandi,畢竟贊助了課程兩期的網域,大乾爹的產品就是要支持一下。

然後在 AWS 用 lambda 實作了一些簡單的課程 API,serverless 真的靠杯方便,隨便點一點就有一個 api endpoint 可以用了。也用 heroku 部署了 json server 來讓之後的課程用,不過現在四散各地其實管理沒有很方便,未來應該全部架在自己的主機上才對,至少統一管理會方便許多。

禮拜三晚上就要來 po 課程結業心得文,禮拜四晚上要來 po 第三期報名文了,持續修正內容中...

本日歌曲

河仁傑 - 接不接受
https://www.youtube.com/watch?v=C9Nfp4pnXmQ

[2019-02-20] 放逐愛情

心得的重要性

之前一再強調要大家盡量寫心得,因為這對你或是對老師都有幫助。之前我就有說過了,身為教學者,有回饋才會知道自己哪邊做得好那邊做不好,不然充其然就只是自我感覺良好。

剛好這期有個學生比較習慣寫心得,而且在每個時間都有把心得記錄下來,我就拜託他寫一篇完整歷程,我想看到的有這些:

  1. 課程開始前的心得以及對於課程的期待
  2. 課程開始一段時間(例如說一兩個月)後的心得,跟原本的期待有哪些差異?優缺點在哪?
  3. 課程卡關後(就是大家都卡關那時期)的心得
  4. 面試時的心得,課程有給了你哪些幫助?如果可以的話希望還能獲得哪方面的幫助?(其實就是你在面試版貼的那個就行了)
  5. 總結一下整個課程的心得感想,像是修完之後跟原本的期待是否有出入,是否推薦其他人參與課程,優點與缺點等等的
  6. 開始工作一個月後的心得,覺得這個計畫有哪些幫助,哪些地方可以做得更好

寫出來的話會對我很有幫助,對其他想加入這個計畫的人也是一個可以參考的資源。

因為要求還滿多的,所以當然是有償的,我說寫完之後能夠折抵學費,這點就能延伸到今天的下一個靈感:成就系統。

成就系統

為了鼓勵大家寫心得,之前想過要不要跟學生說寫心得會有獎勵,而且是最實用的獎勵:錢(學費折抵),例如說累積滿十篇就有一千塊之類的,總之給這個我是不會手軟啦,對我來說其實就是少收一點學費而已。

以這個往下延伸,其實可以做出一個成就系統,每達成一個成就之後就能夠折抵學費一千塊(或五百塊,反正會有個價值),像是:

  1. 累積滿十篇心得
  2. 累積滿二十五篇心得
  3. 提供一千字以上的期中心得
  4. 熱心回答同學問題(標準由我認定)
  5. 分享面試心得累積三次

藉由這樣的成就系統來鼓勵大家分享,我在想可能會滿實用的?本來就在分享的人可以拿到獎勵,沒有想分享的人為了獎勵也有可能會出來分享,缺點就是我可能會少收很多學費就是了哈哈哈。

程式碼潔癖

今天剛好跟學生談到類似的話題讓我有了點靈感,目前在初學者的階段,其實我對 coding style 以及一些爛 code 沒有那麼在意,如果太爛的話會提出來,但如果沒那麼爛我似乎就會略過。

原因是我在想說太早跟初學者講這個是好事嗎?還是其實對他們來說「要這樣寫」變成是一種教條,他們只知道要遵守但卻不知道為什麼?或者是說,儘管他們知道為什麼但是印象沒那麼深刻?

想了一下,覺得儘早開始培養這個習慣應該不錯,從一開始就強制專案要用 eslint,好處是有些 bug 也可以被 eslint 抓出來,同時也能夠防止他們寫出一些爛 code。從小就習慣這樣子的模式的話,之後程式碼風格應該就不會走歪,其實是件好事。

學習前的課程

之前講過正課開始前我會有一堂課來講學習的方法,內容就是我在看的那幾本書的摘要,以及之前學生的一些心得之類的。除此之外還要再一堂課來講整個產業概觀,給他們看一些 ptt 的文章之類的,跟他們說這產業真的是競爭激烈,要進來要有心理準備,而工程師這工作其實有個很大的優勢是移動性,你在台灣做前端跟在新加坡做前端,都是做差不多的事情。

如果你今天是會計、律師,可能就不一樣了,每個地方都有不同的法律跟規則,這種職業比較難到處移動,但工程師就是一個到哪裡其實都差不多的職業。

本日歌曲

解偉苓-放逐愛情
https://www.youtube.com/watch?v=xVvsm8qRhQs

[2019-02-27] 藍色眼睛

今天又收到了幾個學生的心得,這幾天有空再來回覆一下,也可以從心得中得到一點靈感

後續追蹤

昨天有人在粉專問說想知道第一期的同學後續的近況,我覺得這 idea 十分不錯,所以今天就問了一下。第一期的 kris 還沒回我,另一個找到工作的同學依舊在工作,跟我說都還不錯,然後學一學覺得自己還有很多東西要補的XD

第一期那時找到工作的就這兩個同學,另外有兩個第一期的前陣子剛找到工作,可以參考:
學生心得:Amelie(第一期加第二期
學生心得:Tom(第一期)

遊戲化學習

接續昨天的內容,今天又翻了一下 xdite 寫的一些文章,看到這篇習慣與上癮裡面談到的東西,基本上就是遊戲化。

這次從台灣其實還有帶了另一本書是遊戲化實戰全書,怎麼覺得自己好像會看不完哈哈。

但這概念一直都滿有趣的,其實我前陣子也有在想類似的,例如說之前提過的成就系統,每達成一個可以扣 1000 學費。

或是之前想過這種,把課程分三個階段還有分等級:

第一階段:程式新手村 lv1 ~ lv10 學習基礎
過關標準:lidemy 十題 + http game 破關

第二階段:勇者大冒險 lv10 ~lv30 學一大堆東西
過關標準:之前那遊戲

第三階段:轉職練習所 lv30 ~ lv50 選定方向後練習
第四階段:新世界,等級回歸到 1 等

我覺得都滿有趣的,但前提還是要先把學習系統生出來,怎麼越想越覺得要精進的話這是不可或缺的,該找個時間來好好規劃一下了。

量產型炮灰工程師

每隔半年一年就會想把這篇文章找回來看一下:https://ruby-china.org/topics/33036

看的目的是要提醒自己不要讓培養出來的學生變成這樣,不過內文其實我沒有完全認同,我認為速成還是可行的,而且這一點都不意外。重點不在速成,重點在到底有多速,節省一兩天是速成,節省一兩個月也是速成,而且前者的難度比後者簡單很多。

或者是說,速成這個詞好像預設的就是要「節省很多時間」才叫速成,如果是這樣的話,那我心中的速成大概叫做加速學習比較合理吧,一定可以加速,但能夠多快我就不知道了。

我不否認到頭來終究是要自學的,但自學也有人學了十年或更久還是沒感受到程式的脈絡在哪裡,還是沒感受到為什麼前端會有這樣的發展,有時候不是學習的問題,而是沒人告訴你的話,你從來都不知道原來可以從這個角度思考,從來不知道還有另外一片新世界。以這個角度來看,找個好的老師是可以幫你節省很多時間的。

保存訊息

課程的聯絡管道一直都是 slack,目前碰到最大的問題是訊息上限,有很多以前的訊息被吃掉了很可憐,我正在想要怎麼辦。要嘛就是換一個軟體,要嘛就是我手動把一些精華的訊息放到別的網站弄一個精華區之類的,目前看起來後者比較可行,畢竟 slack 作為聯絡管道還是挺方便的。

本日歌曲

每次都會有人以為是藍眼睛的藍色眼睛
ZAYIN-藍色眼睛
https://www.youtube.com/watch?v=UITm9ycomgA

[2019-02-21] 陌生人

目標驅動學習

昨天晚上在一個社團看到一張很不錯的機票,但是滿複雜的,又轉機又中停開口又不同,去 Google Flights 兜了一下發現可以組合出我想要的機票,但是連到的網站評價很差不敢買,可是其他網站又查不到。

走投無路之下去問了社團的版主問題,後來他用了專業查票網站 ITA 證明說我的票是開的出來的,沒問題。原本完全不會這軟體而且覺得超複雜的我後來就憑著很想買這張機票的決心依樣畫葫蘆,最後成功利用這套軟體找到了這張機票,連到了評價比較好的網站。

這個故事告訴我們說,最有效的學習方式不是以學習為目的,而是目的來驅動你學習。舉例來說,你可能想要分析現在的新聞標題是不是越來越內容農場化,所以你就去學怎麼寫爬蟲、怎麼把資料 dump 出來然後做分析,這樣的學習是最有效的,因為你已經有了一個目的。

要想一下這個該怎麼應用在教學中,但我覺得有點難就是了。

跟這個很類似地,今天朋友貼給我看這個:https://www.facebook.com/AEXERS/media_set?set=a.2000341100052692&type=3

裡面提到他在教學時都會先提一個很難的問題,因為他要你抱著問題來學習。所以你不是在學一些零碎的知識,而是你已經有一個問題想要解決,你就會去關注該怎麼解決,並且去想說怎麼把學到的東西應用在解決這個問題。

被這個啟發之後我想到兩個可以應用到我教學上的方式:

  1. 舉一個大型網站的例子,例如說 Facebook, Twitter 等等,問他們這個怎麼做的,而且還要問說每個細節是怎麼處理的
  2. 其實作業的難度就不簡單了,或是也可以換成先講解這週作業要幹嘛,這樣他們在學習時就會關注跟作業有關的部分

random 分享

今天看到兩個東西很酷:

https://github.com/kdeldycke/awesome-falsehood
https://github.com/googlei18n/libphonenumber/blob/master/FALSEHOODS.md

第一個是一堆謬誤的資源彙整,第二個是關於電話號碼的謬誤,有很多你以為是正確的事情其實是錯的,非常有趣的一篇文章,原來電話號碼這麼複雜。

本日歌曲

陌生人,但不是蔡健雅的陌生人,專業的都聽 soler 的
https://www.youtube.com/watch?v=v3t-xyjVgiM

[2019-02-15] 花

這兩天發現自己對寫筆記這件事居然有了點壓力
也有了那種在乎多少人看、在乎自己寫了多少的壓力
這個壓力往好的地方走就是強迫成長的動力,往壞的地方走就是壓垮自己的稻草
要記住,筆記的內容本來就是寫什麼都可以,是寫給未來的自己看的
不用寫什麼特別的也沒關係,沒什麼內容也沒關係
所以今天的筆記就這樣了,我今天懶得思考 😄

本日推薦歌曲:Hello Nico〈花〉官方MV
https://www.youtube.com/watch?v=BlblBvpVgjE

[2019-02-26] 相信未來

收斂

根據昨天所說的 timeline,離課程開放報名沒多久了,至少課綱要盡力在那之前弄出來。這一兩個月有了一大堆想法想做,但差不多是時候要把那些發散的想法收斂起來了,畢竟時間有限,不可能把想做的都做,例如說之前講的工程師班可能要先拿掉了,還有一些挺有趣的機制也要先拿掉。

最要緊的應該是先把課綱跟時程都拉出來,其他的就再想吧!

打字速度

突然覺得在課程開始前應該測一下學生的打字速度,中打跟英打都測一下,也沒什麼意義,純粹就好奇而已,但也可以順便看看過半年之後學生的英打速度會不會提升。

實體空間的可能性

今天又收到了另一個學生的心得,裡面有提到說其實實體讀書會跟社群對學習的幫助滿大的,其實這點我有在想。

例如說用小樹屋月票幫大家每天租個空間,有興趣的人就可以直接到那邊去討論之類的,這樣最麻煩的場地問題就解決了,如果沒人去的話頂多過一個月我就月票不再續約,成本的話應該還行。如果有個人可以在那邊幫我回答問題就好了,但不太可能,而且我自己也不會在XD

動態時報

第二期的時候有讓大家每天早上都仿效 stand up meeting,簡單說一下自己昨天做了什麼、今天要做什麼,然後我會同步到 slack 的一個 channel 上面去。

我突然想到如果能做一個專門給學生用的網站,然後在首頁就有個像動態時報的東西好像不錯,可以看到其他人今天都在做什麼。背後的意義是知道別人正在跟著你一起學習,應該有種有伴的感覺?而且實作上應該沒有很困難,這個我會認真考慮看看。

ORID 筆記

今天無意間看到了 xdite 的一篇文章:管理精力与幸运,裡面提到了 ORID 筆記這個東西,中文應該是翻作焦點討論法,然後 xdite 把這套用在自己跟學生的筆記上面。

這邊貼出他附的模板:

Objective 客观:

关于今天的课程, 你记得什么?
完成了什么?

Reflective 感受

你要如何形容今天的情绪
今天的高峰是什么?
今天的低点是什么?

Interpretive 解释反思

我们今天学到了什么?
今天一个重要的领悟是什么?

Decisional 决定行动

我们会如何用一句话形容今天的工作
有哪些工作需要明天继续努力?

細節可參考:初探 ORID 焦點討論法如何使用ORID总结学习,加快进步?

看一看覺得挺不錯的,目前我打算第三期也把這個方法拿過來用,讓學生每天都寫一篇這個,應該還滿有趣的。

本日歌曲

動靜樂團-相信未來
https://www.youtube.com/watch?v=2uvR8-GBjDs

[2019-02-24] 夏夜晚風

一如往常地,假日通常都沒什麼心得,尤其我今天一整天在忙別的事情,所以也沒什麼空閑時間可以胡思亂想。

今天早上有個學生交了心得:Lidemy/mentor-program-2nd#10

而我也在下面回覆了我的感想,這大概是今天唯一想到跟教學有關的事情吧。
就是這樣,沒感想我也不想硬寫,881。

本日歌曲

伍佰 Wu Bai&China Blue【夏夜晚風 Summer night wind】Official Music Video
https://www.youtube.com/watch?v=NYdl3-PxEhQ

[2019-02-23] 原來的我

之前有跟大家說過了,假日的時候都在耍廢或是忙碌所以沒什麼時間想教學相關的心得。不過今天照樣有幾件事情可以分享。

本末倒置

最近突然發現自己好像有點利用這個心得來逃避做正事的想法,就是這個心得有寫完,代表今天的課程達成了,我有做事了,所以不用再做其他事了。但對教學來說,其實我現在最重要的事情是要決定下一期要不要開、要開的話要決定時間跟課綱,這些東西我全部都還沒搞定。但一但每日心得寫完,就會有種:「今天有做事了」的感覺,就不會再逼迫自己去想這些東西,總覺得有點本末倒置。

JavaScript 五講

這名字很明顯是受到以前看過的背包問題九講啟發。

事情是這樣的,在 JS 裡面有幾個惡名昭彰的頭號敵人:Scope、Hoisting、Closure、Prototype、This,這些東西在面試題裡面超級無敵常出現,在實際開發中也有理解的必要。

而這一兩年我其實一直在圍繞著相關的主題寫作,今天把 this 寫完之後,上面的主題算是全部談到了:

  1. 該來理解 JavaScript 的原型鍊了
  2. 深入探討 JavaScript 中的參數傳遞:call by value 還是 reference?
  3. 我知道你懂 hoisting,可是你了解到多深?
  4. 所有的函式都是閉包:談 JS 中的作用域與 Closure
  5. 淺談 JavaScript 頭號難題 this:絕對不完整,但保證好懂

之後我想把這系列文章整理並修正一下,最後變成五篇有順序並且連貫的文章,稱之為 JavaScript 五講,預計的內容為:

第一講:變數的生存範圍:Scope
第二講:從 Hoisting 理解運作機制
第三講:所有的 Function 都是 Closure
第四講:物件導向基礎與 prototype
第五講:先學物件導向,再學 this

但要怎麼設計還要再想,只是先把 idea 記在這裡而已,我覺得挺酷的。

本日歌曲

今天要推的歌原唱是齊秦,但我要推薦的不是他的版本,是 Julia Wu 吳卓源的。

因為我今天在新加坡聽了她的 Live,場地小小的所以跟舞台的距離很近,隨意算了一下大概有一百個觀眾左右,附上一張用破爛 zenfone 拍的照片,基本上什麼也沒拍到:

p_20190223_161151_vhdr_on

整場滿歡樂的,中英雙語一直切換但講英文比較多,跟新加坡人講話的「模式」很像,就一大堆英文偶爾穿插幾句中文,唱的歌也是中英文都有,最後以買榜做結尾。

她是個很投入舞台的人,一唱起歌來就馬上進入狀況,連帶著催化著觀眾的情緒。很多藝人其實都是這樣,這也是我覺得要當藝人不可或缺的能力之一,當你一站上舞台,你就要覺得自己是最強、最厲害的。有沒有自信觀眾都看得出來,差別真的很大。但自信也不會無緣無故跑出來,背後是不斷的練習、改良、精進,才能呈現出有自信的表演。

之前看一些選秀節目,厲害的選手在表演上會注重表情,但在注意力放到表情以前,必須先確認唱歌跟舞蹈都是跟吃飯喝水一樣熟練的,才有可能去關注其他的東西。

面試的時候其實也是這樣,我有個學生面試前會做一些準備,在面試時展露出一副:「我很強、我很強,我真的很強」的自信心,我有另外一個學生是相反地,在面試時自信心不太足夠,兩個的能力我覺得差不多,但求職的結果卻大不同,前者順利許多。

這邊除了本身的個性差異以外,身為老師還有一點要去想的,那就是:「為什麼學生會沒自信?」,是不是因為我教的東西不夠深、不夠多,讓他們覺得技術能力還不夠?如果不是,那是什麼讓他們這樣覺得?有沒有其他方法可以讓他們產生自信?例如說多做幾個作品,或是跟其他的同學來做比較,抑或是直接找幾個工程師朋友來幫他鑑定?除了技能以外,還有很多事情是我們可以去思考的。

從 Julia 談到面試,我也是滿會聯想的。今天的心得就這樣吧,最後為大家帶來這首:原來的我。

原來的我 - Julia Wu 吳卓源|Official Music Video
https://www.youtube.com/watch?v=EiGtnhdzIXc

[2019-03-07] 像天堂的懸崖

發現自己三四月會忙翻...真的翻的那種...

第三期搶先資訊

下週的同一時間要來 po 課程心得了
然後如果沒意外,隔天也要來 po 第三期的招生文了
原本從開始報名到截止只有兩週,但我想說延長一點比較好
目前暫定時程長這樣:

報名日期:2019/03/15 至 2019/04/01 晚上 11:59 分(一)
報名結果公告:2019/04/08(一)
開課日期:2019/04/15(一)

報名要填的東西跟之前差不多,但因為時間因素我把 codewar 拔掉了:

  1. 自我介紹(讓我更瞭解你
  2. 報名這個計畫的理由
  3. 若成功錄取之後,你的時間安排為何(例如說目前待業,每天都有 8 小時可以寫程式;或是目前在職,但是晚上七點到十點會自學等等)
  4. 你未來想做什麼?(回答前請參考這一篇)
  5. Scratch 作品連結
  6. 做完 Scratch 作品的心得
  7. 任何你想跟我分享的東西(例如說你寫的小說、你畫的圖、你的一篇廢文等等。)
  8. 目前的工作內容、狀況以及在工作上碰到的困難(工程師加強班才需要回答)

有興趣的人可以先稍微開始準備一下了,課綱我還在努力中

評量表

好像滿多人都需要個 check list,來檢驗自己到底這個單元是不是 ok,正在想要不要弄個類似的東西,讓大家檢視一下自己的能力之類的。

本日歌曲

李佳薇 Jess Lee 『像天堂的懸崖』Cliff to the Heaven 窒愛版MV (華納official 高畫質HD官方完整版MV)
https://www.youtube.com/watch?v=DgK0iOwJCa8

[2019-02-17] 即時通

今天差點忘記要寫心得,假日應該是我最沒有靈感的時候,可能是因為頭腦都沒什麼在動的關係。平日的時候有在思考,腦袋動得比較快比較會有靈感乍現。

突然領悟了一件事情,沒什麼靈感的時候就來寫讀書心得好了,前陣子看到這篇文章:為什麼學生對電玩「組合技」倒背如流,卻記不住一個簡單公式?,覺得非常有趣,立刻把裡面提到的那本書給買了帶到新家來,今天簡單寫一下心得。

《學生為什麼不喜歡上學?》書摘

書中一共有九個章節,這次摘的是第一章:人類的大腦喜歡思考嗎?

這問題其實超有趣的,你可能會以為大腦很喜歡思考,但其實不然。大腦的功能確實強大,例如說你現在可以認出這是一台筆電、這是一個網站,可以看一張照片就把裡面所有物體都辨別出來,這些其實都是電腦花很長時間才能辦到的事情,而且還沒有人類厲害。我們在做這些事情的時候其實不會特別意識到自己在思考。

書中提了兩個讓大腦不用思考的兩種方式:

  1. 有一些最重要的功能(例如說看跟動)不需要思考
  2. 偏好使用記憶而非思考來指引行動

例如說你第一次學開車的時候可能就需要思考,需要花時間去記住每一個元件的位置,記住什麼時間點應該要轉彎。但是當你開一陣子車以後,你根本不會去想這些,而是很自動地就會做出正確的動作。原本需要思考的東西都不用思考了。

但人類真的這麼不喜歡思考嗎?那該怎麼解釋很多人都喜歡玩一些益智遊戲或者是解謎?

書中直接給出答案:

人天生好奇,但並非天生善於思考;除非認知條件恰當,否則我們會避免思考。

書中提了幾個有趣的例子,像是大家會對數獨有興趣,可是卻不會對解一題數學問題有興趣;會玩填字遊戲,但不會想解代數問題。

是為什麼呢?你可能會覺得是因為某些東西你比較有興趣,但作者否定了這樣的說法,他說他不認為內容會驅動興趣,我們都曾經對以為自己沒興趣的主題感到入迷,也對自己有興趣的主題感到無聊。

不過我自己是覺得興趣絕對是一個因素就是了。

除了興趣以外,另一個因素是難度。太難的問題容易放棄,太簡單的問題沒有挑戰性就不會想要解開,所以難度要適中。這點其實我在以前的教學心得就提過很多次了,這也是學生反饋給我的心得。

所以,學生為什麼不喜歡上學?關鍵因素在於學生能不能持續體驗到解決問題的愉悅感,我們會選擇那些有點難度但也有機會解開的問題。要解決問題,必須具備來自環境足夠的訊息、工作記憶的空間以及長期記憶中不可或缺的事實或程序(上面這整段直接截自書裡,是最精華的一段)

這個章節最後的幾點我覺得最為精華,在講說這章節的學到的東西在課堂上應該如何應用,分別是:

  1. 確保有需要解決的問題。
  2. 尊重學生的認知限制。如果你問的問題難度太高導致學生無法回答,就應該先教一些背景知識才來問這個問題,不然問了也是不問,可能還會造成反效果
  3. 闡明有待解決的問題。這點我覺得滿重要,身為老師要先學會把問題問得清楚,也要很明確知道為什麼要問這個問題。要先考慮的是你想讓學生獲得哪些知識,再來想要問什麼問題,以及問這個問題之後可能帶來的後果。
  4. 重新思考何時對學生提問。這是教學順序的問題,我以前在 There is no magic in my classroom 有提過。
  5. 因材施教、彈性調整。這邊提到了能力分班,截一句我認為很重要的:「當然你要小心處理,以免部分學生覺得自己不如他人」
  6. 改變速度。人的注意力隨著時間可能會消退,這時候如果適當「換檔」,切到別的主題之類的可以把注意力再拉回來,所以避免長篇大論,把課程切成比較小塊聽起來是不錯的做法,或是中間適度加個其他的補充教材。
  7. 教學日誌。這個我做得很好。

第一章差不多就是這樣,我覺得這本書寫得很不錯,之前那本大腦怎麼學的主要客群是學習者(當然老師也可以看),這本的主要客群則是老師。

總結一下第一章的重點:想讓學生喜歡學習,必須要讓學生持續體驗到解決問題的愉悅感,所以在設計問題上要花許多心思,才能設計出難度適中而且又能讓學生學習到你想教的知識的題目。

本日歌曲

朋友貼給我一篇[閒聊] 8年級的共同回憶?,立刻就想到之前聽到的一首歌,超級有共鳴。

就已 (Joey Huang) - 即時通 Live Messenger (prod. 賴暐哲 / feat. 劉忻怡)(Music Video)
https://www.youtube.com/watch?v=n3XFqNYwYxo

這首歌做的超用心,大力推薦,有用過即時通的絕對超級有共鳴。

[2019-02-16] 預告

先跟大家分享一件有趣的事
在網站的根目錄通常會有個檔案叫做robots.txt,裡面的內容是來告訴爬蟲說哪些頁面可以抓哪些不能抓,爬蟲也不一定要遵守(但通常都會就是了)
http://www.robotstxt.org/robotstxt.html

例如說 Facebook 的長這樣:https://facebook.com/robots.txt

但重點不是這個,重點是除了 robots.txt 以外還有一些有趣的,例如說 security.txt,可以拿來告訴大家說如果網站有漏洞該去哪裡回報:https://securitytxt.org/

還有 humans.txt,裡面可以記錄這網站是誰做的之類的:http://humanstxt.org/

上面這些有些應該有納入標準,有些之後可能會成為標準。但無論如何,都很有趣就是了。

接著來談談幾件我今天在想的事吧。

申論題

前天收到了一個學生的心得,裡面寫說:

我以前常常遇到一個問題,喔不止以前,現在也是……就是想辦法將程式碼表達的內容轉換成言語或是文字去敘述給要接手你程式甚至是完全不懂程式的人聽。這是一件痛苦,非常痛苦的事情。

申論題類型的作業算是提前去經歷這段歷程,當然如果是直接把網路上相同關鍵字的文章內容轉貼過來就不用體悟到這種痛苦了。但我認為唯有不論是用程式碼、言語或文字都能夠無礙地去敘述你所想表達的內容,才是你確實將知識吸收完畢的表現。

我在每週的作業裡面都會附上簡答題,例如說:「Cookie 跟 Session 的差別是什麼?」、「position 有哪些不同的值?每一種是做什麼用的?」,針對這些問題有的學生可能當作以前唸書時做報告,直接 Google 然後複製貼上過來,太顯而易見的我通常都會跟他們說我不要複製貼上的答案,我要你自己寫的;但有時候看多了我也是懶得提醒(這要檢討)。

之後再開課的話要記得提醒大家簡答題不是讓你複製貼上用的,你可以附上文章來源,但答案必須是你自己親手寫出來的,就算是錯的或是不完整也好,至少讓我知道你理解在哪裡。自己寫出來的才是真的理解,而且在寫的過程中若是發現寫不出來,就會再回過頭去學習。這些都是直接複製貼上不會知道的事情。

免費與付費

這陣子想了一下免費或是付費對我來說的意義在哪,以及為什麼應該要免費(付費)?

其實我以前是走免費路線的,免費的教學做過不少次,也把以前教學的東西全部都免費公開出去。那時候的我想法很單純:

我沒有想賺錢,我只是想分享,所以不用收錢也可以,沒有必要收錢。而且不收錢的話就沒有什麼壓力,東西爛可以說聲不爽不要用,但收費的話就不行。

所以免費對我的優點是我覺得自己不用負起什麼責任,因為是免費的東西。對使用者的優點是不用付錢,可以免費取得資源。

好,上面已經說我「以前」是走這個路線,就代表現在不是了,現在的我會更傾向收費。因為我意識到了收費的一些「好處」,而且這些好處有時候不是只關乎於自己。

第一點,凡事都需要成本,我教學需要時間、錄影片需要時間,改作業也需要時間。這些都是我的時間成本。如果我全部都免費提供,把這些成本算進去的話,等於說是我虧本在做這件事情。

乍看之下其實沒什麼問題,只要我願意就好。但這其實對於永續經營是一件不好的事。假設我現在收費好了,那些收入可能可以讓我就算不工作也能養活自己,我就有更多事情來做教學這件事情,教學的品質就會持續提升,變成一個正向循環。

若是一直免費的話,我要怎麼提升教學品質?要嘛就是我付出更多時間,要嘛就是我自己花錢找人去做,但這兩者最後損耗的都是我,而不是消費者。這不是一個可以永續經營的模式,因為我一個人的能量總有一天會被消耗完。

所以收費對於永續經營來說是必要的(除非你有其他管道,例如說你是一個接受捐款的基金會,專門做普及程式教育的,這個就另當別論。但以這個來說,還是有人必須付出成本,就是那些捐款的人)

從這個我們可以延伸到第二點:「收費又怎麼了嗎?」

收費本來就是合情合理的事情,網路要錢、買書要錢、食物要錢,這些物質上的東西沒有什麼是你「應該」獲得的。免費的另一面其實就是「不是自己付費」,但終究是有人要付費的。

並不是說收費就萬惡,收費就是斂財就是騙錢,合理的收費本來就是應該的,這點是沒什麼問題的。

第三點,收費其實會有額外的好處。因為消費者知道這是要錢的,所以就會更加珍惜。

當然,還有另一種想法是:「哇,這是免費的,提供的人一定很佛心,我要好好珍惜!」,的確會這樣沒錯,但你覺得這種狀況多嗎?我也很想珍惜免費的東西,我也知道提供的人很好心,但我就是賤。免費的課程我買了沒看不會覺得怎樣,但是付費的課程沒看我就會覺得浪費錢,所以會更有動力上完。

我相信跟我一樣的人很多,花自己的錢才會更珍惜,因為那是自己付出的心血。別人的心血我們「知道」要珍惜,但卻不一定會珍惜,事實就是如此。所以收費的另一個好處是比起免費,消費者會更珍惜他們得到的東西,因為那是他們花「自己的」錢買來的。

所以我後來理解了一件事情,就是以我現在的狀態來說,收費反而更有好處。

一來可以補足我付出的成本,讓我不必一直單方面地燃燒自己;二來消費者能夠更珍惜買到的東西,會更有動力去上課。

但有一個前提很重要,那就是必須是「合理的」收費。

怎樣算合理?對我來說網購七天鑑賞期那個就很合理,當你收到東西以後七天內覺得不好用你就退錢。因為你在購買之前是看不到實品長什麼樣子的,所以收到之後不如預期也是有可能的事,在這種狀況下退費我也認為是合理的事。

所以我的課程收費模式才會那樣訂,30 天無條件退費。只要滿足這點,我認為都是合理的。

《大腦喜歡這樣學》書摘

這次摘的是 part1 的第三章跟第四章,摘到這邊整個 part1 就結束了。

這部分講的是跟記憶有關的東西,例如說你的大腦的「工作記憶區」最多大概就是存放七個或是四個記憶「組塊」,工作記憶區就是可以當作短暫存在你腦袋裡的記憶,只能存放的很少而且很快就會失效,例如說現在要你背一個電話號碼。

以前就有接觸過類似的東西所以這段算是複習,之前聽過一個數字是「7加減2」,是工作記憶可以存放的數量,跟書中講的大致上符合。這邊要特別注意的是上面用的詞是「區塊」,相似的東西會被放到同一個區塊。

舉個例子,今天如果要你背兩個電話號碼:0922871130、0910100204,如果你是一個數字一個數字背,可能就要記憶 20 個數字,非常有可能忘記。但如果你按照手機的規則來拆:0922-871-130 跟 0910-100-204,就等於是記憶 6 個區塊,記起來會比單個數字好記好多,因為你已經把那些數字組合在一起了。

或甚至再往下推,如果把手機號碼看成:09-228-711-30 跟 09-1010-0204,你需要記憶的只有:228、711、30、1010、0204 這五個數字,而這五個數字除了 30 以外你應該立刻會聯想到其他東西,會讓這 20 個數字變得更好記。所以把沒有意義的東西轉化為有意義的會讓人印象深刻,大概就人名如果有諧音的話會比較好記是差不多的道理。

短期記憶終究是短期,那要如何變成長期呢?就是透過反覆練習。書中沒有提到著名的艾賓豪斯遺忘曲線,就是跟你說每隔多久要複習一次才能得到最佳的效果。經過反覆練習以後,就會慢慢變成長期記憶存放在你的腦袋中。

但要注意的是不是一直看一直看就會記起來,書中提到了「能力錯覺」,意思是學生經常閱讀課本裡面的內容就會以為自己會了。這個真的是有戳到我,以前唸書時一直看課本一直看課本,就會覺得說:「阿這邊不是就這樣嗎」、「這個戰爭重點不就是這樣嗎」;可怕的事情是一但你把課本闔上,讓同學問你問題,你會發現靠杯根本一題都答不出來,完全忘光。這就是能力錯覺。

所以我後來知道要學習最好的方法是什麼了,就是念一念,然後蓋上課本開始回想。

開始回想剛剛學了什麼,然後問自己一些問題,例如說:「百年戰爭是哪一年?導火線是什麼?最後結果如何?」,如果發現答不出來就再看課本,這時候你看課本就已經不是隨意看了,而是要目標的去找出這個問題的答案。這樣的學習方式跟你一直看一直看差超級無敵多,這樣才真的叫做有學習。

書中也有提到這個方法,學習到一個段落之後蓋上書本回想剛剛的內容,裡面也說這招超級有效。沒錯,我以前就幫大家驗證過了,真的超級有效。

套用在程式學習上大概就是看完影片照抄完程式碼做出專案之後,把程式碼全部砍掉影片關掉,從零開始自己寫一次程式。這時候應該腦袋一片空白,那就先問自己說:應該怎麼開始?從哪開始?流程是什麼?找不到答案的話再回去看影片,並且在看的時候尋找這些問題的答案,看完之後再試一次,一直試到你可以靠自己寫出來為止。

除了回想以外,其實用手把重要的東西寫下來也是一個好方法,可以加深記憶。有鑑於此,我覺得之後的教學應該儘早讓大家習慣「手寫」程式碼,你可能會覺得這很無聊,工作的時候又不可能手寫程式碼。但如果今天把你的 IDE 拿掉、把你的自動完成拿掉,然後你就寫不出任何東西,你覺得這樣可以稱為工程師嗎?雖然說語法本來就只是輔助,功能跟想法才是重點,但不能慘到「什麼都寫不出來」,至少基本的語法:變數宣告、if、迴圈、函式這些要 ok 吧?

我要求的沒有很多,就這些基本就夠了。在初學階段時手寫程式碼可以加深記憶,也可以讓學生儘早體驗手寫程式碼。早點練習總比筆試時一個字都寫不出來好。

好歌分享

今天分享的是之前 kkbox 無意間聽到之後很喜歡的一首歌:GJ蔣卓嘉 《預告》(三立華劇【他看她的第二眼】片頭曲)官方版MV
https://www.youtube.com/watch?v=qldW6fv1m98

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.