專題特輯

2021.04.21 | 16419次觀看

「我還能寫幾年程式?」軟體工程師的中年焦慮

你身邊有沒有大齡工程師?或者你自己就是?在軟體界,每隔幾年就會有新技術出現,很難只靠一招吃到老,加上寫程式需要專注力、眼力、體力,中年工程師的下一步該何去何從?

文/Larry Chien

在社群網站上看到一篇名為《人到中年的程序员,请提前准备好Plan B》的文章,文中有發表了一些看法。看完之後有些感觸,原本想發在臉書上面,寫著寫著覺得字數有點多,乾脆趁機寫篇文章記錄下來。

不知道在看文章的你是職場上的技術大神、還是像我一樣對自己未來感到迷惘的小小工程師。在此我們就先不分資訊和軟體有什麼差別,都統稱叫軟體工程師(相較於土木、建築等等的工程師)。

各位不訪可以想想,自己身邊是否有那種年過 40,以前是軟體工程師但現在已經轉做其他工作的人?再想想有沒有工作十幾二十幾年,依然是做技術職的軟體工程師?兩者的數量有多少的差距?

為什麼是「軟體工程師」的中年焦慮,不是「工程師」的中年焦慮?

文章中提到,因為在軟體的世界裡:

  1. 員工的市場價值取決於其與雇主相關的技術方面經驗。
  2. 軟體工程每隔十年就會有一次重大的技術變革,而過往的經驗在變動之後並沒有其等同年資的經驗優勢存在。
  3. 技術的轉變不會完全否定資深技術人員的技能,但確實為應屆畢業生創造更公平的競爭環境。

而其中「為應屆畢業生創造更公平的競爭環境」可以說是在軟體產業裡面的兩面刃。

為何創造更公平的競爭環境是優點?

對新加入的工程師而言,只要踏在新推出的技術浪頭上,就有辦法快速地站穩自己的腳步,打出一片天下。而且不論何時,只要有心、肯下功夫就有辦法做到。縱使上一次的技術變革沒有掌握機會,只要下次的變革來臨時,仍有機會再次洗牌。

那為何創造更公平的競爭環境是缺點?

必須承認,這個缺點是相對的,如果只是選擇想要掌握一項技術就安穩一輩子的話,那麼創造更公平的競爭環境的確會是一項缺點。

意味著必須不斷地學習精進,否則會的技術一旦過時,連帶會影響到自己的職涯發展。這樣的環境就如同逆水行舟,不進則退。

舉例來說:網頁的非同步載入

以前我們在看網頁的時候,只要點了某個連結,網頁就一定會有跳轉,畫面一定會變白然後再跑出東西。現在我們可以看到 GMAIL、Facebook 這樣的網站,點了連結以後會看到想看的資訊,關掉以後還可以維持原本頁面上看到的東西,而且畫面都不會有整個變白的情況。

這種「非同步載入網頁」的方式在網站一開始發明的時候並不存在,亦或者說技術沒有這麼的完善,所以沒有在一開始就廣泛被使用。


軟體、硬體工程師的「根源」不同

文章裡面有一點是沒有提起的,那就是:軟體工程和硬體工程仰賴的「根源」不同,也可以說是「基礎知識」的不同。

你可能會覺得:這不是廢話嗎?一個是學計算機概論,一個是學物理化學啊。沒錯!我想說的就是這個層面上的不同。

想像一下,如果今天 E=MC² 會每十年修改一次會發生什麼事?

很難想像吧?物理和化學追求的是世界運行的真理、方式,探究的是亙古不變的現象和根源。從古至今縱使會有理論被打破,但並不會在短時間內頻繁發生劇烈變化,起碼我們可以相信十年、二十年以後,重力加速度會跟我們以前國中學的一樣,是 9.8 m/s²。

但軟體工程不一樣,每隔一段時間就會出現 Best Practice 或是新的程式語言。

以前沒有物件導向的概念,更沒有 MVC 這種架構。也沒有什麼 Golang、 MongoDB、React……。每隔十年甚至五年,就會有一個新的技術或是框架出現,這也是造成軟體工程師焦慮的原因之一,技術推出的速度太快,我的小船都快翻了,還要叫我往前進?


身為軟體工程師,我該怎麼辦?

保持學習的心

這很老掉牙,超級老掉牙。我知道我知道,但就是很容易說到做不到呀(舉手承認)。

身為軟體工程師的我們,要認清我們絕大多數人是沒有辦法靠一種程式語言吃飯吃到老的(好吧,C 跟 C++ 可能可以)。相反地,我們可以做的反而是不要被程式語言綁架。理解各項技術是要解決什麼樣特定的問題、各種程式架構有什麼樣的優缺點、有什麼樣的服務可以加快我們的開發……。

倘若今天有一項新的程式語言出現了,或是新的框架被發表了,可以花點時間去了解這些新玩意是什麼?也許在工作上我們用不到這些新玩意,但過去的經驗還有知識,可以幫助我們減少未來職涯選擇上的風險。想想看十年前跟現在要找會 jQuery 的職缺數量差了多少就知道了。

或者,為自己的轉職鋪路

善用自己的邏輯能力跟程式背景,找找自己能夠做哪些其他類型的工作。前面提到的文章有建議可以嘗試顧問類工作,或者是做一些管理職的工作。

但也必須要有一個心理準備:這些工作都是要面對人。以前唸書時,教授就對我們諄諄教誨:程式問題都不是問題,有問題的都是人。要能夠把人的問題處理好,會是工程師轉換跑道的一大挑戰。

(延伸閱讀:為什麼工程師講的話,別人都聽不懂?


其實軟體工程師的焦慮不用到中年就會有了,我們自小接收的資訊就是告訴我們:找個好工作,然後待個十年八年,最好是穩定的大企業……blablabla。這個問題可以回到自己職涯選擇的層面來思考,自己想要的職涯是什麼樣子的?想要從工作中獲得什麼東西?所以最終、最初的問題應該是:

你想要用一年的經驗度過接下來的幾十年,還是讓每一年的經驗都有其價值?

獻給每個閱讀文章的你。

(原文標題:為什麼只有軟體工程師會有中年焦慮?


推薦閱讀: