懶惰的軟體工程師養成計劃

在網站開啟的第一篇文章(懶惰的技術總監,文章開始發佈了)中有提到我想要建立一套「便宜」且「有效率」的教學資源。

經過我努力不懈(懶)的研究下,終於有了一些結論。

如何「便宜」

首先,在「便宜」的部分,以目前我的能力是可以先自行開發、架設服務和建立課程資源的。這樣我們就可以大量壓低成本,自然價格就可以比較低一些。

其中雲端服務是持續性的成本,而我會盡量以「Serverless」的方式進行開發,所以就是用多少付多少(可參考:什麼是無伺服器(Serverless)架構?)。也因此我不打算用賣課程的方式,而是以每月收月費為主,月費雖然還尚未訂出,但價格一定會讓想學的人都「沒有負擔」

如何「有效率」

而在「有效率」的部分,以目前軟體技術日新月異的狀況,若要有效率的學習,我們可不能慢慢地一次只教一種程式語言。除此之外,還需以真正重要且常用的技術優先

這樣一來,我們就能盡可能地以最短的時間學會程式設計的核心部分,而剩下優化、語法簡化或其他較少用到的功能,我們就後續有需要的時候再作補充。

程式語言的共同特徵

我在設計課程的期間先自我檢視了一下,看看自己(如此懶惰卻)已經學會這麼多種技能,我認為是因為這許多技能和相關技術之間,有很多共同的特徵

很多工程師都知道,「學會第一種程式語言最慢,再學二種會快很多,而學第三種時會超快」,由此概念為基礎,我認為「有效率」的第一步,就是直接先學三種程式語言以上的「共同特徵」,接著就可以讓我們在學習第一種程式語言就跟第三種一樣「超快」!

因此我決定先建立第一門軟體開發「共同特徵」的課程,而且這共同特徵會有效包含三種以上主流程式語言的特徵,而課程名稱就先叫「軟體開發的通識課」吧!以後簡稱「通識課」。

專案型課程

接著預計在我們完成「通識課」後,下一步就是直接進入實作專案的課程,而這部分的依據是,我自己(身為學生)上課的經驗。

目前市面上有很多線上或遠端的課程,我自己也有去買來上過(為了公司),當然也從中學習到了許多知識,而且我覺得這些老師真的都好厲害(勤勞)。

但我自己在學習這些課程時,就算這些知識或技能我當時還不會,我還是想直接跳至實做演練的部分,同時跟著練習看看。然後在這些實做中,若發現有不能理解的地方,我會直接上網查詢或回頭查看課程重點,最後我就這樣學會了那些技能,雖然懶惰(我就是懶)但我覺得效率好蠻多的。

因此我決定在大家具備「通識課」的基礎後,就直接開始來試著做專案或練習題,我會邊做邊講解,大家就跟著邊做邊學

當然課程中一定會有人想發問,到時我會設計一個能在影片中送出問題的功能。我查看大家問題時就能知道發問是在課程中的什麼時候。就可以更好的進行補充回答。

最後我相信這樣的課程,一定能讓大家更有效率地「學習」也更容易達到「學以致用」的目標!

每天半小時

另外提一下,學習程式設計就像是體能訓練一樣,不能太久沒練,這樣會讓自己鈍化。

因此我建議大家,每天設定一個固定的時間,學習或練習半小時,一起建立好習慣,就能在沒有壓力的情況下學會這些技能。

無論是跟著我的課程,或是跟著其他網路上的範例都可以,這部分的重點在「每天固定時間」,以及先「學會」後「練習」。

每天半小時,一週共花費約3.5小時,雖然不及一週集中8小時的課程,但我認為效果會更好。因為每天集中精神的時間其實很難到8小時,尤其是出社會工作的我們,下班或休假時根本就無法花費這麼多精力再學習。

每天「半小時」就好,起床先別滑手機了,先跟著我一起動動腦,寫一些程式吧!

by Bang