平台上有許多軟體工程師的職缺,往往有著非常優渥的薪資待遇,但在這個環境下的競爭也是非常激烈的。每隔幾年就會有新的技術變革,必須要時時更新與學習,面對年齡增長與逐年增加的後起之秀,資深工程師們該擁有怎樣的心態來面對呢?
(本文經 Larry Chien 授權轉載,原文標題為 〈為什麼只有軟體工程師會有中年焦慮?〉)
我在社群網站上看到一篇名為《人到中年的程序员,请提前准备好Plan B》的文章,文中有發表了一些看法。看完之後有些感觸,原本想發在臉書上面,寫著寫著覺得字數有點多,乾脆趁機寫篇文章記錄下來。
不知道在看文章的你是職場上的技術大神、像我一樣對自己未來感到迷惘的小小工程師、抑或是偶然路過的 Medium 愛好者。在此我們就先不分資訊和軟體有什麼差別,都統稱叫軟體工程師(相較於土木、建築等等的工程師)。
各位不妨可以想想,自己身邊是否有那種年過 40,以前是軟體工程師但現在已經轉做其他工作的人?再想想有沒有工作十幾二十幾年,依然是做技術職的軟體工程師?兩者的數量有多少的差距?
為什麼是「軟體工程師」的中年焦慮,不是「工程師」的中年焦慮
文章中有說到,是因為在軟體的世界裡:
1. 員工的市場價值取決於其與雇主相關的技術方面經驗。
2. 軟體工程每隔十年就會有一次重大的技術變革,而過往的經驗在變動之後並沒有其等同年資的經驗優勢存在。
3. 技術的轉變不會完全否定資深技術人員的技能,但確實為應屆畢業生創造更公平的競爭環境。
「為應屆畢業生創造更公平的競爭環境」可以說是在軟體產業裡面的兩面刃。
為何創造更公平的競爭環境是優點?
對新加入的工程師而言,只要踏在新推出的技術浪頭上,就有辦法快速地站穩自己的腳步,打出一片天下。而且不論何時,只要有心、肯下功夫就有辦法做到。
縱使上一次的技術變革沒有掌握機會,下次變革來臨時,仍有機會再次洗牌。
那為何創造更公平的競爭環境是缺點?
必須承認,這個缺點是相對的,如果只是選擇想要掌握一項技術就安穩一輩子的話,那麼創造更公平的競爭環境的確會是一項缺點。
因為表示必須要不斷的學習精進,不然會的技術一但過時,連帶的就會影響到自己的職涯發展。這樣的環境就如同逆水行舟,不進則退。
以前我們在看網頁的時候,只要點了某個連結,網頁就一定會有跳轉,畫面一定會變白然後再跑出東西。
現在我們可以看到 GMAIL、Facebook 這樣的網站,點了連結以後會看到想看的資訊,關掉以後還可以維持原本頁面上看到的東西。而且畫面都不會有整個變白的情況。這種「非同步載入網頁」的方式在網站一開始發明的時候並不存在,亦或者說技術沒有這麼的完善,所以沒有在一開始就廣泛被使用。
軟體、硬體工程師的「根源」不同
我覺得那篇文章裡面有一點是沒有提起的,那就是:軟體工程和硬體工程仰賴的「根源」不同。也可以說是「基礎知識」的不同。
你可能會覺得:這不是廢話嗎?一個是學計算機概論,一個是學物理化學啊。沒錯!我想說的就是這個層面上的不同。
想像一下,如果今天 E=MC² 會每十年修改一次會發生什麼事?
很難想像吧?物理和化學追求的是世界運行的真理、方式,探究的是亙古不變的現象和根源。從古至今縱使會有理論被打破,但並不會在短時間內頻繁發生劇烈變化,起碼我們可以相信十年、二十年以後,重力加速度會跟我們以前國中學的一樣,是 9.8 m/s²。但軟體工程不一樣,
每隔一段時間就會出現 Best Practice 或是新的程式語言。
以前沒有物件導向的概念,更沒有 MVC 這種架構。也沒有什麼 Golang、 MongoDB、React……。每隔十年甚至五年,就會有一個新的技術或是框架出現,這也是造成軟體工程師焦慮的原因之一,技術推出的速度太快,我的小船都快翻了,還要叫我往前進?
那我身為軟體工程師,該怎麼辦?
保持學習的心!
這很老掉牙,超級老掉牙。我知道,但就是很容易說到做不到呀(舉手承認)。
身為軟體工程師的我們,要認清我們絕大多數人是沒有辦法靠一種程式語言吃飯吃到老的(好吧,C 跟 C++ 可能可以)。相反地,我們可以做的反而是不要被程式語言綁架。理解各項技術是要解決什麼樣特定的問題、各種程式架構有什麼樣的優缺點、有什麼樣的服務可以加快我們的開發……。
倘若今天有一項新的程式語言出現了,或是新的框架被發表了,可以花點時間去了解這些新玩意是什麼?也許在工作上我們用不到這些新玩意,但過去的經驗還有知識,可以幫助我們減少未來職涯選擇上的風險。想想看十年前跟現在要找會 jQuery 的職缺數量差了多少就知道了。
或者,為自己的轉職鋪路
善用自己的邏輯能力跟程式背景,找找自己能夠做哪些其他類型的工作。前面提到的文章有建議可以嘗試顧問類工作,或者是做一些管理職的工作。
但也必須要有一個心理準備:這些工作都是要面對人。以前唸書時,教授就對我們諄諄教誨:程式問題都不是問題,有問題的都是人。
要能夠把人的問題處理好,會是工程師轉換跑道的一大挑戰。
結語
其實軟體工程師的焦慮不用到中年就會有了,我們自小接收的資訊就是告訴我們:找個好工作,然後待個十年八年,最好是穩定的大企業……blablabla。這個問題可以回到自己職涯選擇的層面來思考,自己想要的職涯是什麼樣子的?想要從工作中獲得什麼東西?所以最終、最初的問題應該是:
你想要用一年的經驗度過接下來的幾十年,還是讓每一年的經驗都有其價值?
獻給每個閱讀文章的你,共勉之 (延伸閱讀:大齡工程師的看法)
身為軟體工程師,想增加自己的競爭力嗎?
(職涯文章呈現多元觀點,歡迎來信投稿、交流:[email protected])