Video thumbnail for I wish I knew this before becoming a software engineer

軟體工程師必知!8 大迷思破解:AI、薪資、工作生活平衡等

Summary

Language:

Quick Abstract

科技業瞬息萬變,軟體開發者的未來看似充滿不確定性。很多人說AI會搶走所有工作、編碼已死等,但真相如何?

快速重點

  • AI不會取代工程師,只是工具,複雜問題仍需人解決。

  • 高薪不代表工作與生活失衡,工作環境和薪資無必然關聯。

  • 軟體工程師就業市場未死,未來仍有增長空間。

  • 日常工作不像影片呈現的那麼美好,有壓力和困難。

  • 工作目標不總是創造最高品質軟體,有時需考慮速度和商業需求。

  • 多數時間非從零開始建構,要熟悉舊程式碼、修bug等。

  • 前端不比後端容易,各有難度。

  • 做軟體工程師不一定要有天賦,團隊合作和態度更重要。

AI 會讓工程師過時?

科技業的軟體開發領域發展迅速,未來充滿不確定性。有人聲稱 AI 將奪走所有工作,編碼已死,一切都在被外包。馬克·扎克伯格曾說今年年底 Meta 的所有中級工程師都將被 AI 取代,但他也是在元宇宙上投入相當於一家財富 500 強公司總值,卻只有不到一千用戶的人。

那些對 AI 取代工程師最為高調和自信的人,要麼從 AI 熱潮中受益,要麼有產品要賣給你。這種看法只對公司有利,因為它在工程師中製造了恐懼,讓雇主在就業市場上更有優勢。

實際上,有多年經驗的軟體工程師知道,AI 只是一種工具,可以自動化一些重複性任務,但不能代替人思考。AI 善於解決定義明確的特定問題,能快速製作原型和構建相對簡單的應用程序。然而,構建軟體最困難的部分往往是將模糊的業務目標和客戶問題分解成具體步驟,並融入現有的遺留代碼庫。AI 越接手繁瑣工作,軟體工程師就越需要進行這種複雜的問題解決。

AI 確實會對就業市場產生影響,它提高了對初級工程師的要求。但目前許多被吹捧為可取代軟體工程師的 AI 編碼工具尚未達到預期。

高薪意味著糟糕的工作與生活平衡?

在職業生涯中,作者發現薪水越高,工作環境越好。有人認為在大型科技公司工作薪水高但工作時間長,然而作者經驗並非如此。工作與生活的平衡因團隊和公司而異,與薪水沒有直接關係。一些網頁開發機構支付低於市場的工資,卻有最糟糕的工作與生活平衡。

要了解工作文化和環境,直接與在職員工交談或查看評論是不錯的方法,但都不是絕對可靠的。此外,作者推薦 HubSpot 的免費拖放式網站構建器,它提供超過 100 個高品質免費主題,可完全自定義,且主題具有移動友好性和專業外觀。該工具還內置 AI 工具,能快速創建令人驚豔的個人網站,並可免費添加自定義域名。

軟體工程師的就業市場已死?

進入計算機科學領域不再是輕鬆賺錢的途徑,好工作競爭激烈。但這並非一個垂死的領域,美國勞工統計局估計,2023 年至 2033 年軟體工作崗位將增加 17%,遠高於所有職業 4% 的基準。世界經濟論壇的未來就業報告也將軟體開發人員列為 2030 年第三大增長職業。

雖然未來充滿不確定性,如貿易戰、關稅和全球經濟衰退,以及 AI 可能帶來的影響,但目前科技職位空缺自 2023 年 11 月的低點以來已增長 43%,且仍在上升。作者身邊找工作的人最終都找到了,只是花了更多時間。

日常生活就像“一日生活”視頻?

一些“一日生活”視頻展示 20 多歲的軟體工程師在豪華的科技辦公室工作,有免費食物,10 點上班,開幾個會就下班,年薪 25 萬美元。這些視頻可能讓人羨慕,但並不典型。內容創作者為了吸引流量,傾向於呈現令人嚮往的生活方式。

實際上,軟體工程師可能需要凌晨 3 點起床處理緊急情況,應對來自項目經理的被動攻擊性電子郵件,或因單元測試不通過且無人幫助而感到壓力。

主要目標總是創建最高品質的軟體?

在學校,我們被教導主要目標是編寫最好的代碼。但進入職場後,主要目標是用軟體解決業務問題,而不一定是編寫最好的代碼。有時為了速度,可能需要犧牲品質。

例如,在初創公司,花數月甚至數年構建最優化、面向未來的解決方案,卻發現產品沒有需求,是最糟糕的事情。在投資時間構建更強大、面向未來的代碼之前,花幾天或幾周製作一個快速原型來查看是否有需求更有意義。

當然,品質很重要,技術債最終也會成為一個大問題,但公司有時需要在短期內節省資金,比如即將耗盡資金或需要比競爭對手更快地將產品推向市場,此時速度會被放在比品質更高的優先級。

總是要從頭開始構建?

在計算機科學課程或編碼培訓營中,課程圍繞算法、軟體工程或數學展開,可能讓人以為軟體工程師的大部分時間都在從頭開始構建酷炫的新功能或實現漂亮的界面。

但事實是,大多數時候加入新公司,不會從頭開始一個項目,而是被分配到一個大型遺留代碼庫,大部分時間都在熟悉它、修復錯誤或更新依賴項。如果不是這些工作,可能在進行代碼審查或閱讀文檔。作為初級或中級工程師,大約一半的時間實際上花在編寫代碼上,且隨著職業生涯的發展,這一比例會變小。

前端比後端容易?

這主要是後端工程師為了把關“真正的工程師”概念而傳播的謬論。作者曾在前端和後端都工作過,認為不能一概而論。

作者最近參與了一個類似 Squarespace 的 WYSIWYG 網站構建器的 UI 團隊,這比他做過的任何後端工作都要複雜得多。例如,構建一個讓用戶構建可重用組件(如頁腳)的功能,需要考慮大量的事情和變量,如用戶執行撤銷/重做操作時會發生什麼,未保存的更改和版本控制如何處理,如何使其向後兼容,如何讓用戶清楚地知道他們正在編輯可重用組件而不是普通組件,以及如何使其易於非技術人員使用和理解。

前端開發還需要考慮大量的環境,如不同的屏幕尺寸、設備和瀏覽器。雖然前端 Web 開發對初學者來說可能更容易上手,但總體上並不比後端工作更簡單或要求更低。

成為軟體工程師需要有天賦?

作者希望自己沒有花那麼多時間擔心自己是否有能力在科技行業工作。看到同事或同學比自己更快地理解某些概念,就會開始質疑自己是否有足夠的天賦跟上。

作者認為,要獲得並保持一份普通的軟體工作,不需要太多的天賦。當然,如果想在大型科技公司工作,需要能夠在壓力下在有限的時間內解決編碼挑戰,這需要對解決邏輯問題有一定的興趣或傾向。但作者看到升職最多的人並不是那些在業餘時間編寫編譯器的天才。

一旦達到基本的技術技能水平,更重要的是與他人合作的能力以及在周五與同事一起出去喝一杯的意願。

作者希望這些內容能對讀者有所幫助,並歡迎讀者分享哪些觀點引起了共鳴,哪些不同意。如果喜歡這篇文章,可以看看作者幾個月前關於科技行業最大謊言的文章。

Was this summary helpful?

Quick Actions

Watch on YouTube

Summarize a New YouTube Video

Enter a YouTube video URL below to get a quick summary and key takeaways.