喜歡在RPG玩魔法師嗎? 來當當現實世界中的魔法師-程式設計師吧

橙氏姬
轉職工程師:老闆,來一盒贖罪券
4 min readSep 29, 2020

小時候玩 RPG 遊戲,最喜歡的職業便是「魔法師」,比起當戰士勇往直前單挑小王,更喜歡透過機智的走位,華麗而不失乾淨俐落的拿下 MVP。

如果你也是魔法師掛,也許你會和我一樣喜歡在 coding 領域中掙扎向上,因為這一路走來,我真的覺得學習的過程跟哈利波特中「Wingardium Leviosa」不相上下。

先來回顧一下學習咒語的片段吧:

身為魔法師,「正確」的咒語是必要條件

還記得看這個片段時,真的無法辨別榮恩和妙麗的 Levio ~~ sa,到底哪裡不一樣。

學習 coding 時也常常遇到類似的感覺,明明跟著教材一步一步寫下去,就像影片中霍格華茲學生們跟著老師唸咒語及揮棒,為什麼有些人的 code 跑得起來,我的 code 跑不起來。

因為「魔鬼藏在細節裡」,舉凡空白、標點、括號、順序等等,依照你的語言規則,有時候缺一多一就會有不同的運行結果。 想要突破,就只能耐著性子多多練習,從錯誤中吸取經驗,下一次報錯時,能夠用更短的時間找到錯誤,便是進步。

有位同事負責帶非科系背景新人,他覺得對方成長速度有點緩慢,不禁好奇地問「你當時到底是怎麼練起來的」,我回答他後,他震驚的表情我真是難忘,其實我自己回頭看自己走來的路也是有點震驚,因為我….有幾乎一整本手抄 code。

並不是建議所有人都要手抄,只是我個人習慣手抄可以幫助我加深印象,你可以找到自己揮杖念咒的方法,但苦工是必經的路,等到你想招喚東西時能如呼吸自然地般唸出 Wingardium Levio ~ sa,痛苦會過去,美的會留下

魔法師與軟體工程師的相近之處

⧭ 精簡咒語,事倍功半

動不動就要隊友「幫我撐十秒」,再加上隊友不知道你在忙什麼,那就更令人不想一起組隊了。一個好的 programmer 寫出來的 code ,最好是精簡、切中要害,讓隊友易讀、易懂、好維護,可以說是從菜鳥到中階工程師一個重要的磨槍項目。(詳情可參考 clean code 無瑕的程式碼)

⧭ 面對龐大知識體系,持續學習

身為一個上進的工程師,最好是對於建構這個程式世界的架構有更多的了解,能夠讀懂原典(官方文件)再延伸出相關的程式操作,是成為高階魔法師的必要條件。CS (computer science)基本科目資料結構、演算法、線性代數等等,如果有一定的掌握,在寫 code 的時候也能更理解運作機制,甚至想出更有效率的解決辦法。

當然身為非本科的我們對於這些知識會相對缺乏,就像哈利波特他們要看怪獸與他們的產地,但事實上也沒有真的需要飼養魔獸,菜鳥的工作其實也不和這些基本科目相關,但若想成為更強的魔法師,可以一邊工作一邊花時間補充。

⧭ 團隊合作,虛心調適

接到火山副本,皮薄專修火法的你該怎麼辦?

A. 重修冰系魔法 — 哪來的時間?
B. 組隊打怪

一個大型專案裡,可能遇到的問題就好比突然開放的副本,殺你的措手不及,例如我這次面對第三方金流串接,本以為就是 fetch (與對方拋接球資訊)而已,結果加解密那邊撞得滿頭包,卡關三天三夜。

雖然說電腦是人造出來,但有的時候真的會覺得自己是不是被他們所控制跟嘲笑。只能說一樣米養百樣人,百樣人則有千種盲點。此時同事或前輩就是你的最佳導師,體現了「夫以銅為鏡,可以正衣冠;以古為鏡,可以知興替;以人為鏡,可以明得失」因為不同人有不同經驗或不同盲點,截長補短,往往可以提供你 bug 的突破口,當然還是期待自己成為單挑 BOSS 的大魔法師,但越大的專案越需要能相互信任與合作的隊友,總得來說,分享與學習是我在 coding 界最大的收穫。

總結:在梅林的鬍子上,遇見解謎打怪的同道中人

當今使用的程式語言都不是天上掉下來的,都是傳說級魔法師們建構的,更不用說網路上滿坑滿谷的套件,簡直是梅林滿天下的世界。

學程式的路上,時常感覺自己的渺小,就像是那些大魔法師鬍子上的臭蟲,老把他們梳好的鬍子弄打結,程式不會錯,錯的都是人,但我們就是人,人就是會犯錯,重要的是我們能夠在錯誤中學習

對我來說,比起其他從事過的職業,軟體工程師相對需要孤獨地面對眼前的謎題,一個人在電腦前默默奮鬥,但也是因為這樣獨特的情況,有更多機會在職場中遇見值得學習、充滿熱情的同道中人。(一起打電動、打桌遊也算,能遇到休閒同好真是另外加分的職場)

--

--

橙氏姬
轉職工程師:老闆,來一盒贖罪券

Studying in Bristol, UK. 自學程式轉職前端工程師2年,目前於英國進修電腦科學碩士。