而一個工程師的程度,往往就在這個「心態」,就種下了未來的果。
「選擇更重要,那選擇什麼?」
有些人會選擇 domain know-how, 例如「電商、blockchain、AI⋯⋯」等, 有些人會選擇公司規模、有些人選技術投入⋯⋯等。
個人覺得最重要的有兩個:做事方法、求職市場。
什麼叫選擇「做事方法」?
除非你自己創業,通常你的第一份工作都是「有老闆」的情況, 而「老闆」怎麼跟你定義問題、釐清問題、解決問題,就會完全影響你的「做事方法」。
我曾經面試過一個專案公司出來,專門派遣到客戶端做事的工程師, 當他派遣到客戶端時,客戶端的技術主管對於派遣工程師做的事情絲毫沒有要求, 甚至會為了應付客戶,而要求工程師用非常蠢的做法做事。
例如,曾經有過去接案工程師的面試者回我說: 「我們用 redux 純粹是因為規格書上有 redux,所以我們只好用在裡面,我們只存了一筆資料在裡面」
嗯⋯⋯好樣的。
且被派遣的工程師,常常被要求最低標準,達到能動就好。
當然,不是說不能用最低標準去把功能衝出來, 而是當工程師自己在執行的時候,瞭不瞭解自己選擇這個方式的原因?自己犧牲了什麼?如果未來有空的時候,該做哪些事情降低現在的技術債?
以前端的世界來說,同樣的需求有非常多工具可以解決,像如果對方說「我熟悉 react, redux」,我可能會問他「你怎麼處理 asynchronous dispatch?當初為什麼選這套?」多數人會回答「公司專案開始的時候就用 A,所以我沿用」
這樣的回答不能說不好,但如果不會開始有好奇心去想 「為什麼我需要這個工具?別的工具怎麼解決問題?我的專案用了別的工具的 pros&cons 是什麼?」的話,很難成為一個 senior 工程師,充其量就是一個⋯⋯寫程式很快的工程師。
不過通常我會問一些更基礎的知識, 例如: event loop, event delegation, browser compatibility ⋯⋯等。
以我過去的經驗, 真的對這些議題有深刻了解的人,才能找到槓桿解, 而不是解決一個現在的問題,製造未來的工作機會。而我很慶幸我自己,在第一份實習的工作,就能跟有這樣思考高度的人一起工作。
接著,是「求職市場」的選擇
我不會說國外的月亮比較圓,日本、新加坡工作雷的也是真的很雷, 像 ptt tech_job 版前陣子就有一篇找資工系去搖手機的公司,真的也是雷到炸,