世界上沒有所謂「必學」的技術
換日線讀者來信:
面對快速變化的資訊產業,身為軟體工程師的我應該具備哪些能力,以及如何選擇我未來的道路,才不會輕易被取代呢?
Mars
作者回覆:
Mars 你好,我自己作為軟體工程師,離開企業獨立工作 5 年了,雖然因為擔任技術顧問,與軟體業仍有大量接觸,但還是不比在企業工作時,能夠密切地跟上各種最新技術的發展;過去更從每週收到至少 100 封來自企業人資的面試邀請,到現在每週只會收到約 5 封類似信件。雖然知道這是因為自己在職場上的角色變了,但是隨著年紀增長,也曾擔心自己會被淘汰或取代。在這個資訊發達、進步快速的世界,其實不管哪個行業都會有相似的焦慮。
回到你的問題,正因為世界如此多變,所以我反而不覺得在專業技術上,有什麼「必須」具備的能力。例如過去架網站,通常必須自行購買或是租用實體伺服器,熟悉網路技術是必要的;然而隨著雲端服務普及,現在更重要的是學會如何使用雲端工具設置和調整伺服器。由此可知,產業變化必然會發生,我們能做的是接受世界上有許多自己不能控制的變因,同時保持著開放的心態,不害怕學習新的事物。心態上,我建議你不要把「軟體工程師」當作一個絕對不能放棄、或是必須放棄的身份。實務上,我建議你可以採取以下策略:
一、盤點技能,找出你的「不對稱優勢」,培養軟體工程以外的專業和經驗
企業僱用一位軟體工程師,看重的是其產業經驗與企業需求的契合度,如果只會寫程式,可取代性將會非常高。例如,平時就會經營社群平臺、很瞭解平臺廣告的設計和演算法機制的工程師,在相關領域中就比其他沒有經驗的工程師更有優勢。又比如,一位擅長專案管理的工程師,在技術複雜度極高、一般專案經理無法參與的專案中,就能成為很好的助力。
身為職涯教練,我的第一堂課就是請學員盤點過去的工作、生活經歷和興趣,找出他們的「不對稱優勢」。以我自己為例,由於我的工作經驗多是在新創公司一人身兼多職,樣樣都通但沒有一樣精,在強調每個人都要有一項技術強項的工程領域,有時會遭到批評。然而,盤點自己學生時期喜歡創作的興趣、新創的工作背景,以及各種一人開發產品的經驗,我發現自己的獨特優勢,便在於「樣樣都通」,所以能夠與不同部門溝通、整合各種意見;同時因為具備技術背景,也能針對技術問題提供專業意見。將這兩項專長結合,讓我成為一位適合服務早期新創的 CTO 顧問,以及以「一人公司」型態創業者的工程師。
對於我的客戶而言,擁有「不對稱優勢」的我,超越了只有某項技術強的軟體工程師。當然,這些優勢並非保證成功的王牌,我仍需要透過大量的工作經驗和學習累積,繼續保持優勢。
我建議你可以從過去做過的工作(如曾經在金融業工作過)、興趣(如對某技術特別有熱情鑽研)和天賦(除了寫程式之外,你的一些人格特質讓你特別擅長某個類型的工作)等三方面探索你的強項。這些強項可以是硬實力(如會計、外語能力)、軟實力(如溝通、協調能力),或者無法短時間累積的專業經驗。
有時學員會忽略一些「看似沒用的能力」,比如說因為喜愛旅遊,很會排行程,或者熱愛看 YouTube,熟悉影片行銷手法等。像我喜歡滑 YouTube、Facebook、Instagram 等社群媒體,思考這些影片和文章的商業模式──我想知道為什麼網紅能夠讓人手滑刷卡買單、為什麼他們能夠吸引很多人觀看他們的影片、大家想要從這些影片上得到什麼……等等,這些都幫助我在經營自媒體時,懂得思考如何以自身的專業服務市場上的需求。
二、與其盲目追求新技術,不如了解其使用情境和原因
在技術日新月異的時代,每天都有新的工具、語言和框架誕生,這些技術的更新速度快得令人喘不過氣,但你得明白:技術只是解決問題的手段,重點在於解決問題。因此遇到新技術,與其馬上學起來,不如花時間弄懂「使用情境和原因」,瞭解它的發展背景與特點;如此一來,若在工作中遇到適用情境,就能多一個選項。
另外,針對平常工作中大量使用的技術,我會保持一定的敏感度;而沒有用或較少用的部分,則是使用「沉浸式學習」,透過電子報、Podcast、與人交流等方式,略知其技術趨勢,若想深入鑽研,才會多花時間蒐集資料。如果是重要的趨勢,出現的頻率會很高,但是也不需要因此就急著跳進「學習」的步驟,而是應該思考為什麼要學習這個新的技術,不要為學而學。有時新技術還不成熟,使用反而存在較高風險,並非解決問題的首選。這是我的作法,提供給你參考。
三、打好基礎,並且保持好奇心
許多人在進入軟體產業的時候,接觸的是框架和工具,並非程式語言和基礎電腦/網路知識,所以反而會被綁住,只能一直追求新流行的框架和工具。但是,不管是框架或工具,它都還是建立在基礎電腦/網路知識上面,這也是為什麼學校仍然在教計算機概論、演算法和基礎網路知識。新的框架和工具往往是為了服務特定目的誕生,功能不如基礎工具靈活,也比較難客製化,這時候還是要有好的基礎,才能夠幫助你把工具用得更靈活。
此外,框架和工具雖帶來便利,卻也經常讓人過度依賴、失去好奇心,遇到問題時,如果框架不能解決就覺得無解。其實若具備基礎知識,自己解決問題也是一種解法。遇到程式錯誤的時候,熟知基礎電腦/網路知識,可以幫助我們更快速釐清問題,避免陷入瞎忙。同時,好奇心也讓我們自己想到更多可能性,不論是研究更好的解法、花時間解決問題的根源,或是自行研發適合某種情境所需的技術。
四、擴展人脈,建立口碑,踏出舒適圈
作為一位技術顧問,矽谷有許多比我聰明、有經驗的技術大神,那麼,為什麼客戶還是選擇和我合作呢?其實,很多時候僅僅是因為客戶「信任」我。創業之後,我發覺信任是比經驗、技術還要更重要的「貨幣」。當有人願意為你的工作能力背書,絕對強過一紙履歷。這不只是對創業者的建議,也可套用在一般求職──來自應徵企業的推薦人,往往能讓你的履歷更容易被考慮。
除了藉由客戶評價建立口碑,在公司內獲得不同部門同事的信賴,也有意想不到的好處。過去在企業服務時,我曾以初階工程師身份,獲得工程師部門「最優秀工程師」的獎項。探究背後原因,便是由於我經常向客服及行銷部門請教來自客戶的真實反饋,讓我在執行專案時,更懂得思考使用者需求、即時和專案經理溝通,避免專案上可能會遇到的風險,也因而贏得了跨部門的肯定。
不管對內還是對外,我都持續透過助人來建立自己的口碑和信任。這點聽起來很難,其實有時候只是舉手之勞,像是幫不會寫程式的人看看簡單的程式碼、處理簡單的電腦問題、提供產業相關的經驗等,包括現在透過《換日線》和自媒體分享個人經驗,也是一種累積口碑的方式。
希望以上的答案能夠幫助到你,也祝福你未來事業一帆風順、心想事成!
【延伸閱讀】
●你是「工程師」還是「碼農」?矽谷科技業工程師的自我修煉
●想出國工作,就別再為自己找藉口──難的不只是環境,更在下定決心
※本文由換日線授權刊登,未經同意禁止轉載