轉職工程師之旅,跨步尋找新生活 (上)

By 洪澤洋

Jul 23, 2020 09:00:00

轉職工程師之旅,跨步尋找新生活 (上) - 洪澤洋

結束了 3 個月的程式開發密集學習一週了,終於抓到一點時間,可以好好地來寫一點回顧,接下來我會用一些篇幅整理介紹這 3 個月發生的點點滴滴,希望能為正在考慮是否要投入程式學習的朋友起到一點參考作用。

廢話不多說,先上 3 個月後的訓練成果:noobtyping.com。這是我與另外三位同樣完全沒有程式基礎的同學,經過 2 個月的學習以及 1 個月的開發而成的作品。主要提供打字練習的服務,除了一般的英文佳句,還有 Ruby 程式碼、自訂練習題和即時連線對戰的功能。(如果上面的網址失效,可以用這個備用站

Nobotyping

我是如何思考學程式這件事?

這次的閉關進修,最多人問我的就是:你是要轉職工程師嗎?當初跟老闆提案時,他也問了我相同的問題。我的答案是:「不知道」。可是如果沒有想當工程師,為什麼敢投入這麼大的心力去學習?因為我覺得掌握程式技能已經不是趨勢,而是正在發生的未來。

我大概幼稚園大班的時候,就已經在用 486 電腦打遊戲了,不過那並不是因為我家擁有電腦,而是媽媽上班的地方剛好有電腦,而因為他的工作很忙,我閒閒沒事只能去亂他的同事(?),為了讓我不要吵,只好開電腦給我玩 XD,所以我很早就體會電腦遊戲的美妙。國中畢業曾一度想要去唸五專的資工科,只是因為父母反對而作罷,最後去唸了普通高中,後來因為不想再唸書而選擇美術之路,但是程式學習這念頭並沒有完全脫離我的人生,不過因為英文念得很不好,加上身邊其實沒有什麼人懂程式,所以就一直不得其門而入。一直到這一兩年,我對於學習原理了解得較多,英文也重新打過基礎,比較不害怕,加上程式教育市場的蓬勃發展,眼見時機成熟,於是我仔細地盤點了一下,確認我自己是不是真的有需要學習程式,所以我盤點了幾個想學程式的理由:

具備做出產品原型的能力,可以實現及驗證腦海中的點子:

身在數位的時代,平常的生活跟工作早就有大量的工具都數位化了,在這股浪潮之下,我經常可以看到很多有趣的、方便的小工具冒出來,我就不免思考,那麼我工作中許多重複的部分,應該也能用程式來幫助我才對。像是我常常在職涯輔導時,會默默在心裡針對我從來談者身上的資訊,做各種計算,得出一個職涯狀態的風險值,以此作為職涯設計的依據,這一連串計算其實是有一點規律的,我就一直在想,如果能做一個職涯風險計算機,應該挺酷的吧!

驗證我對於跨領域學習法的經驗總結:

2018 年刻意練習一書走紅後,我也在閱讀的過程中回顧自己學習繪畫的軌跡,發現真正有效的練習方法真的如書中所說,但我仍不確定這個做法是否真的通用於所有技能的學習,因此為了瞭解不同類型的技能應該怎麼套用刻意練習方法,我特意在 2019 從零開始重新學英文,以此來驗證刻意練習的方法論,經過驗證這套方法確實有效,於是我想,如果學習繪畫跟英文都有用,那麼再挑戰一個我一直想學卻學不起來的領域吧?於是程式設計就雀屏中選啦!

提升單位時間的工作效率:

程式的強大之處就在於,可以幫助我們把重複的工作自動化。我一直覺得在這個科技時代,時間跟注意力是相當珍貴的,如果把這些稀缺的資源用在重複的工作上,等於沒有時間去學習更有價值的技術,以職涯發展的長遠角度來看,風險是上升的,所以基於想要掌握更多自主時間用來學習或創作的我來說,能減少重複工作的比例,是學習程式非常大的誘因。

我的設計背景有助於學習前端開發:

在我考量要不要學習一個新技術時,我也會一併考慮「技術相依性」以及「技術綜效」,這兩個詞是我自己換發明的XD。所謂的「技術相依性」,就是這個學著技術前,有沒有什麼技術一定要會比較好,以網站開發來說,學習前端技術雖不必要一定要懂設計,可是如果懂了,對於網站畫面呈現的理解是有幫助的。而「技術綜效」,就是我現有的技術加上新的技術,會不會 1 + 1 大於 2?還是相同的例子,我已經具備設計背景,有一定的版面設計基礎,這樣一來多會前端技術,在找工作時就會有加成效果。

工程師的薪資天花板更高、跨國界工作的機會增加:

這一點對我來說不是投入學習的必要考量,但仍然有一定的影響力,雖然站在職涯顧問的角色,我很希望為這個世界上的每個工作都找到高價值,可是現實是,這世界上現在能解決複雜難題的技術,很大一塊就是程式,也因此在收入、報酬上,就是比較有發展空間,我也不想騙自己或騙別人說,每一個行業真的是那麼平等的,畢竟整體的統計數字就是放在那邊,所以如果是想直接拉高收入水平的朋友,轉職工程師仍然是比較明確的方案之一。

仔細把這些學習的理由都想過之後,確認我不是只是想逃避現在的工作,或只是想跟隨潮流,是有足夠的學習動機之後,我才果斷下決定要投入學習。

為何選擇五倍紅寶石?

其實就是朋友推薦,現在回想起來我超級慶幸我當初真的有聽他的建議,雖然我沒有真的當下就下定決心,而是先去報名了說明會,不過也因此我才能在說明會中確認這是我需要的授課單位。

如果是有打算「轉職工程師」的朋友,應該都已經稍微找過各家授課單位的介紹,大部分單位為了招生,必然會強調他們所教授的程式語言的未來發展趨勢、薪資成長、轉職成功率…等等,不過我個人覺得這些聽聽就好,並不是我自己選訓練單位的重要依據,畢竟科技業的轉變不是普通的快,根本無法預測,而且我始終認為程式語言只是工具,程式開發本質上還是要解決問題的,所以決定授課單位好不好的關鍵,還是會回到「教學品質與成效」這個點上。

我最終會選擇五倍紅寶石,有兩個原因:

老師在說明會中有提到,他出的作業中,會有需要邊錄影邊寫 code 的橋段

當時我聽到這段眼睛為之一亮,我清楚地知道,這是符合「有效學習」的重要環節。因為學程式真正重要的不在程式碼怎麼寫,而是學習怎麼解構問題、提出解決方案,因此老師願意花時間聽你描述自己的邏輯、思緒、解題想法,甚至幫忙挑出思考的盲點,那是無比珍貴的。

擁有業界助教群,遇到問題可以立即提問

在我脫離了校園之後更加深信,助教在學習過程中扮演著相當關鍵的角色。因為離開校園到職場後會發現,真正能用來幫助我們解決問題的多半是實用技能而非純粹的知識,就算真的需要知識,在網路的幫助下我們也可以很快地搜尋、取得,然而相對地,實用技能卻是需要漫長「練習」才能掌握,特別是學習程式開發這件事,一旦在練習過程中卡住,都會帶來巨大的挫敗感,如果這時沒有人可以讓你立即請益,很快就會被挫折感打趴,嚴重影響學習的效益。

上述兩點基本命中有效學習的兩個要件,「安全網」以及「技能核心」,能夠確保學習的過程有進步的成就感,也能在挫折感發生時即時停損,不至於因為跌得太深導致學習動力「熔斷」,比較能夠確保長時間的學習能持續下去。

業界助教群

報名之前,報名之後

但是,學習這件事情也不能只是靠別人教,我們都知道,並不是花錢報名了名師補習班,成績就能一飛沖天,真正重要的還是自己要有充足的準備和扎實的練習。因此在我決定報名之後,緊接著我馬上就開始做準備,首先是「打字練習」,在這裡我奉勸每一個想轉職工程師的朋友,請一定要在學習程式開發前,就要把打字的速度、準確度練到一定程度,否則你的學習挫折感一定會指數增加,相信我,你真的不會希望自己花了 1 個小時 debug,結果發現只是因為自子打錯字。 (歡迎使用NoobTyping

第二個準備就是建立一套學習機制,我特地重看了「費曼學習法」的原理以及使用方式,這個學習法備受推崇的程度就不需要我多補充,近代的很多學習理論基本上也是在佐證、補述或在這個基礎上做強化,並沒有脫離「費曼學習法」的準則,感興趣的朋友推薦你到 YouTube 上找幾部介紹影片看一看,就會有比較完整的理解。

除了前兩個屬於非程式相關的行前準備之外,五倍紅寶石還特別提供了扎實的先修教材,這一點我得說非常非常棒,因為畢竟我要學習的是全新的技能,並沒有充足的先備知識,如果等到開課才第一次聽專有名詞或概念,一定會非常吃力,所以我很認真的在上課前,就把電子書外所有先修教材都先看過,事後也證明,還好我有先看過,不然可能會完全跟不上老師上課的步調,畢竟 2 個月內要學這麼多東西,步調肯定很快,而在整個學習過程中,加上課後作業與練習,一個新概念大概都要練到第三次,才比較能掌握,因此有先修教材的輔助,真的是一個很好的起頭。