在成為工程師的路上,帶領我入門的肯定是曹小姐。沒有她,我可能很難靠自己成為一個工程師。
後來一路上,我也接受過很多人的指導,得到不少幫助。每個教過我的人都很強,只是受限於時間或性格,多半都是幫助我解決當下遇到的問題。
但如果要說,誰真正教會我怎麼成為一個工程師,那肯定就是 Gary 大大了。
Gary 最大的差別,就是跟我共事的時間比較長,然後天生又是愛教人的性格,加上那個不允許混水摸魚的性格,這三個要素加在一起,真的讓我想不進步都不行。
現在回想那段時間,真的是痛並快樂著。
他給我的第一印象真的非常直接。當時他問了我一個問題,具體問了什麼,我已經忘記了。我只記得自己回答:
「我大概知道一點。」
他聽完後,直接回我:
「我不喜歡這個回答。」
對他來說,只有懂或不懂,沒有「大概懂」這種東西。
我當時的反應真的是傻眼,不是能跑就好,我還稍微懂一點原理,這樣還不夠嗎?
以他的標準,是不夠的。
他的教學也超硬核的。
任何問題都可以問他,他不會的問題,他也會去研究到會再回來教我。最可怕的就是,事情不會停留在他教完為止。
隔天我必須把那個東西重新整理一遍,告訴他我學到了什麼,如果沒講好,或講不清楚,他一定會毫不留情的指出來。
這邊一定要強調,他很喜歡畫白板。
但是我們公司的會議室很少,所以我們常常直接在公司的落地玻璃上開始講解。
那片玻璃就在公司的正中央。
也就是說,我其實不只是講給他聽,某種程度上,也相當於講給全公司的人聽。壓力真的超大。
在那之前,我其實已經累積了不少實作經驗。
很多東西我會做,也知道怎麼把功能完成,但理解通常只停留在表面。我知道程式要這樣寫,卻不一定知道為什麼要這樣寫;我知道這個方法可以解決問題,卻不清楚它為什麼有效,又會帶來什麼代價。
Gary 最常問的問題,就是:
「為什麼?」
為什麼要這樣做?
為什麼不用別的方法?
這段程式在解決什麼問題?
拿掉之後會發生什麼事?
你說你懂了,你真的懂了嗎?
搞到後面,有一段時間,我都不敢隨便說「我懂了」。因為只要說出口,下一句通常就是:
「你真的懂了嗎?」
「那你講給我聽。」
很多時候,我以為自己懂了,只是因為看過、做過,或是只是剛好找到一段還不錯的程式碼。
但真的要把一件事情說清楚時,才會發現中間有很多地方其實根本沒弄明白,然後這個差別,大概就是我跟高手之間的距離吧。
Gary 教我的,不是某一套開發流程,也不是刷題技巧,更不是某個框架的使用方式。
他教我的,是怎麼學習成為一個工程師。
軟體工程的世界太大了,不可能有人學完所有東西。技術也一直在變,今天熟悉的工具,幾年後可能就沒有人用了。
真正重要的,從來都不是記得多少答案。
他很喜歡說:「我最討厭背答案了。」
遇到陌生問題時,要知道怎麼拆解、怎麼理解,然後要確認自己到底有沒有真的弄懂。
一直到現在,他留給我的影響還在。
現在到了 AI 的時代,每一個工程師好像都躁動不安。沒過幾天就有新的萬星專案跑出來,隔幾個月就有新的模型發佈。每一個都好像要徹底改變世界一樣。
如果每天的迭代都要去追的話,可能 AI 還沒淘汰工程師,我的大腦就先淘汰我自己了。
每天追著一些對世界有意義,但是對我自己沒意義的東西,真的會累死。
所以現在遇到新的工具或技術時,我會先問:
它到底解決了什麼問題?
這個問題跟我有沒有關係?
如果真的要用,我有沒有理解它在做什麼?
每次想到這些問題,我大概就知道,Gary 當年那些痛苦的訓練,確實沒有白費。