本文同時發表在我的博客:
?????? 程序員的 35 歲危機?我想也許出路在這里…… | 阿森的知識圖譜
作為一名 90 后程序員,我非常喜歡自己的工作,也喜歡研究各類計算機技術。
然而,我總聽到這樣的言論:“互聯網行業,35 歲以后就會失業了”。例如:35歲,我失業了
不論是父母還是朋友,或是自媒體,常常都認為程序員是吃年輕飯,年紀大了以后必然會被淘汰。而我在閱讀了一些文章之后,發現其實背后還是認知問題。
這篇文章,我會嘗試結合社會現狀,拆解和分析這個觀點,然后,提出一個對于程序員可能的破局方法。
開發者的焦慮?
我也算是計算機從業者,之前和朋友創過業,雖然不是互聯網領域,但也帶過團隊,從事過產品設計、開發和運營。我也有很多程序員朋友,我承認,焦慮情緒確實是普遍存在的。
我想,焦慮情緒是以下三個方面導致的:
第一,程序員輸出結果的程序化以及自動化替代。 程序員的工作結果是代碼、程序和文檔,而程序的開發是項目制一次性的。當一個項目結束,程序穩定運行之后,后期迭代便不再需要那么多開發工作了。
最近的一部電影《逆行人生》講的就是這個故事。程序員徐錚給公司的人力部門開發了計算人效的軟件,開發完成后,軟件戲劇性地計算出自己是人效最低的員工,于是他被辭退了。“我被我自己開發的程序辭退”十分具有現實諷刺意味。
對此,我認為背后深層的底層邏輯是:軟件一旦完成,脫離開發者,便是獨立的個體了,開發者對此沒有掌控能力。另外,大語言模型處理文本和語言的能力很強,非常適合處理代碼,以后會有越來越多的編碼工作被 AI 替代。
第二,技術的更新換代一直在加速。 在計算機領域,技術的更新迭代一直非常快。
10年前技術和現在流行的已大不相同。就從編程語言來說,適合系統級開發的 Rust,前端開發的 Next.js 和 TailwindCSS 框架,服務器后端開發的 go,都是近幾年才流行的。而 AI 神經網絡算法在 2018 年左右爆火,幾乎完全重塑了計算機行業的格局。
第三,工作性質的內向性。 MBTI 是這幾年流行的性格測試工具,大多數程序員在 MBTI 測試中基本都是 I 人,我自己也不例外(INTJ)。
很多程序員在工作中不知不覺形成了內向的處理問題的方法,久而久之,容易陷入“技術陷阱”,認為只要能把技術問題處理好,就是一名合格的軟件工程師。于是,很多程序員逐漸喪失了與人溝通和影響他人的能力,成為了 Nerd(書呆子)。
然而,在 AI 逐漸成為主流的社會里,人和人之間的關系比單純的技術更加重要。因為技術問題大部分可用 AI 解決,但是對人需求的洞察永遠不行。AI 賦能的一定是產品經理而不是程序員,內向的程序員無疑會輸掉這場競爭。
AI 時代的全棧工程師,程序員的出路?
那么程序員該怎么應對變化呢?我想也許一種方法,要成為這樣的人,可以從以下幾個方向努力:
?? 首先是跨領域的終身學習。 程序員本身就是一個終身學習的崗位,很多人覺得焦慮、壓力大,而我并不這樣認為。
終身學習一定是今后的生存法則,程序員將非常適應。只是對于我們來說,除了學習單純的開發技術之外,還應該熟悉計算機數學基礎(離散數學、統計學)和文史哲社會經典(社會學、心理學、經濟學)。前者用于扎實基礎,后者則用于洞察人性。
???? 其次,保持一定的外向性,努力成為產品經理。 吳軍說過:“最頂級的程序員,一定是好的產品經理”,我深以為然。計算機一定是為人服務的,AI 也是。離開了人的需求,什么也不是。
然而,我認識的大部分程序員都明顯缺乏這樣的意識,認為產品就應該是產品經理設計好的,自己只要解決技術問題就行。這樣下去,技術和產品意識割裂開來,這樣的人在計算機領域一定走不遠。
?? 最后,永遠有自己的秘密項目。保持敏銳度。 秘密項目可以是一個博客站,也可以是一些自己感興趣的小項目。因為這可以保持自己對世界的敏感度和好奇心。對生活的熱情也從此而來。這是把一件事情做好的動力。
AI 時代,程序員想要有所成就,就一定要 “擊穿”自己的領域。計算機的背后是離散數學,前面是用戶需求。頂級的程序員,一定是 能夠用數學方法來直擊用戶痛點的人 ,而寫代碼不過是中間的手段而已,并不是那么很重要。
這樣的程序員,我稱之為“ AI 時代的全棧工程師 ”。
全棧,不僅僅意味著各種各樣的技術棧都了如指掌,也意味著對人的洞察和數學基礎足夠扎實。隨著 AI 的到來,編程語言之間的學習鴻溝將變淺,編程的門檻也會逐漸降低。AI 一定是利好全棧工程師的。
具體的做法
有了以上的方法論,那我們實際應該怎么做呢?以下是我的建議將從硬知識和軟技能的角度出發,說說具體的應對措施:
首先是硬技能,分為三個部分。
- 第一是先進技術 ,包括 AI 知識,新的開發方法論和新的編程語言。程序寫得好,還是程序員的基礎。
- 第二是數學能力 ,當下機器學習的爆火,讓我感到程序員的數學基礎越來越重要,數學不好連很多算法論文都看不懂。不管技術再如何演變,萬變不離其宗,計算機的核心總是算法。
- 第三是社會學知識,找幾本經濟學,心理學,運籌學和人文歷史的好書看看,不用太難,通識就行。
很好的一本數學書,可以慢慢看
然后是軟能力,也分成三個部分。
- 首先是思考,整理的習慣。程序員一定要有自己的筆記系統,這樣才能保證學習到的知識是可以積累的,避免撿芝麻掉西瓜的情況。時常整理筆記,寫寫文章,看到自己的成長,也是很有趣的。
- 然后是好奇心。要做好一件事情,一定要對自己的領域感興趣并且有熱情。要做好程序員,那么就一定要對計算機感興趣,如果只是覺得程序員的薪水還不錯,當了程序員混口飯吃,那我建議還是換個賽道看看,也許會有不錯的發展。
- 最后是溝通和領導力,多和人打打交道,多想想做一件事對方的感受和最好的處理辦法。嘗試運用一下“社會工程學”。別以為理工男不善于和人打交道,其實與人溝通是一個工程學問題,理工男其實有很大優勢。
成為一個懂技術,會寫代碼的產品經理,我想是程序員在 AI 時代的必備生存法則。
總結
以上是我對程序員職業的思考,總的來說,就是找好目標,持續精進。這些,也是我個人努力的方向。很多地方,我自己做的也還不夠。
AI 時代,程序員的工作的確出現了一些變化,在新時代,我們應該有新的方法去利用和應對。
話說回來,變化將是今后社會的常態,希望以上的思考能對程序員朋友們有價值。
最終,個人觀點,僅供參考。 ??