Just My Life & My Work

StackOverflow 殞落

從學生時期就開始搜尋到 StackOverflow 來解決程式上的問題,對這個平台很是感激與讚賞,如今因為 AI 浪潮席捲而來,使得它被工程師們訪問的次數隨著時間推移而遞減。主要是因為 AI 可以即時回答問題啊~

.

此文發表是為了紀念它,希望它能夠趁勢轉型。😉

關於貢獻

實際上,我在 StackOverflow 幾乎沒有貢獻,為什麼呢?因為我想要回覆問題,卻被奇怪的門檻給限制住,導致這 15 年來,我只能讀 (Read) 而不能寫 (Write)。唯一我有貢獻的地方,大概是註冊、收藏、訪問吧!🙃

儘管我無法在 StackOverflow 貢獻己力,然而我有建立自己的部落格,會將值得傳承的知識技術給記錄下來,有許多工程師們因為我的隨手筆記收穫良多,私底下會傳訊息感謝我。☺️

其他人意見

曾經的 Stack Overflow,是程式開發者的聖地。遇到問題時,我們習慣透過 Google 找答案,點開一個又一個 Stack Overflow 頁面,雖然有時候答案分散,或者因為關鍵字與英文表達不夠精準而找不到真正的解答,但至少它是一個可靠的知識來源。

然而,AI 的崛起徹底改變了這個習慣。現在,我只要輸入中文或簡單的關鍵字,AI 就能立刻生成一個看似完整的答案,不用再像以前那樣層層挖掘。這確實方便,但也有一個隱憂——AI 的知識基礎,很大一部分正是來自 Stack Overflow。如果這個平台的內容持續減少,AI 的「養分」也會隨之枯竭。

更重要的是,AI 並非萬無一失。它常常一本正經地給出錯誤答案,有些錯誤甚至一看就知道,但 AI 卻信誓旦旦地說那是對的。這提醒我們:AI 可以輔助,但絕不能成為唯一依賴。

許多人以為 Stack Overflow 的最大敵人是 AI,但事實上,它真正的對手是 Reddit
一部分使用者的確因為 AI 解答了技術性問題而離開,但更多人其實流向了 Reddit。許多原本在 Stack Overflow 上高產的技術大牛,如今都轉戰 Reddit,經營自己的 sub 社群。

不過,Stack Overflow 與 Reddit 都面臨相似的挑戰:管理員爭議。無論是封禁、杯葛,還是內部矛盾,都使社群氛圍受到衝擊。另一方面,也有些人乾脆轉型成訂閱制的部落客,透過收費確保討論品質與留言的真誠。至於 Quora,則刻意走另一條路——它更像是一個「主觀經驗分享平台」,反而降低了事實性答案的比重。

每當 AI 出現「鬼打牆」的時候,我就會想起過去的 Stack Overflow。
只是現在,如果我真的需要答案,我會優先去 GitHub 或 Reddit,而不會再回頭尋找 Stack Overflow。

那麼,開發者的未來在哪裡?

如果 Stack Overflow 最終式微,我們可能會走向三種情境:

  1. AI 補位:AI 成為第一線答題者,但需要更多高品質資料來源來持續進化。
  2. 分散社群化:開發者轉向 GitHub、Reddit 或專屬 Discord 社群,依靠小型圈子取代大平台。
  3. 專業知識商業化:更多專家轉型為付費部落客或課程作者,透過訂閱與知識付費維持品質。

Stack Overflow 的殞落,或許並不是知識的終結,而是開發者社群的再分化。未來我們或許不會再有一個「唯一的大廣場」,而是依靠 AI + 小型專業社群 + 知識付費 三者並存,去維持技術交流的活力。

解決問題

如今,我解決問題的主要方式,往往是透過 ChatGPT 這類 AI 平台來詢問。大多數情況下,我都能得到可行的解答,甚至還會獲得一些延伸議題。也就是說,AI 不僅能幫我處理眼前的問題,還能帶領我學習更深入的知識與技術。

當然,我們或許曾經以為 AI 已經非常強大,但實際上它的解答並不總是能直接運作,這也顯示出 AI 仍有難以克服的限制。這種情況有點像工程師在不同電腦上建立開發環境時的經驗:每個人遇到的問題都不盡相同,沒辦法用完全相同的方法來解決。因為其中牽涉到硬體規格、作業系統、軟體版本等差異,所以沒有萬能的解法。

真正能走得更遠的工程師,不是把 AI 當作唯一答案,而是懂得驗證、比對,並追問背後的原理。

如何正確使用 AI 解決問題?

AI 是一個強大的工具,但它不應該被視為「唯一答案」。正確的做法是:

  1. 把 AI 當助理,而不是權威 —— 它可以提供思路、範例與方向,但最終的驗證仍需要工程師自己動手實測。
  2. 交叉比對 —— 若 AI 的解法有疑慮,可以同時查閱官方文件、社群論壇或 GitHub Issue 進行比對。
  3. 深入理解 —— 不要只停留在「能跑」的程式碼,而是要追問「為什麼能跑」。這樣才是真正學到東西。

唯有這樣,我們才能在享受 AI 所帶來的高效率的同時,仍然保有工程師最寶貴的能力:獨立思考與解決問題的判斷力。

撰寫程式

在寫程式的過程中,我也逐漸開始接受並使用 Copilot 協作。由於主要開發 Flutter App,我選擇使用 Visual Studio Code,它內建 Copilot 功能,會在程式出現「議題」時主動跳出建議,協助我找到更好的解法。像是當我輸入幾個字時,它能推測我下一行可能要寫的內容,提供程式碼範例區塊,甚至自動生成註解。

未來我計畫進一步提升 Copilot 的使用率,以優化我所撰寫的程式碼,甚至嘗試透過下指令,讓它直接產生符合我需求的程式碼。

此外,我也想挑戰一些人類難以單獨完成的目標,例如:分析整個程式檔案的功能、理解專案中各檔案之間的關聯、協助優化程式架構設計等。我希望 Copilot 不僅能透過文字描述,還能繪製功能之間的關係圖。甚至未來能結合設計圖稿,自動生成對應的程式碼。

Junior 與 Senior

許多人擔心軟體工程師會被 AI 取代。這確實有可能發生,但這種恐慌往往忽略了人類與 AI 的本質差異。雖然 AI 的能力正在快速追趕人類,但在某些面向上,仍難以完全替代經驗累積所帶來的價值。

就目前的情況來看,Junior 工程師被取代的風險,遠高於 Senior 工程師。因為軟體開發不只是單純的「寫程式」,更需要理解軟體運作的底層原理。一位經驗成熟的工程師,往往能培養出一種「sense」——在面對表面問題時,能迅速直覺地定位可能的根源。這種直覺,有時候比 AI 的推理更為可靠。若再善用 AI 工具輔助,Senior 工程師不僅能更快找到解決方案,效率與產能甚至會進一步提升。

可以預期,未來會有更多程式碼由 AI 產生。但即使如此,AI 所寫的程式碼也很難完全符合需求,仍需要工程師進行調整與修正。這正是 Junior 工程師的弱點所在:他們在閱讀程式碼時,往往難以看出問題所在,甚至改動 A 的同時,不自覺地影響到 B,導致在維護舊程式碼時「有看沒有懂」。

那麼,Junior 該怎麼辦?

在 AI 時代,Junior 想要提升自己的價值,就必須從單純「會寫程式」進化到「能理解系統」。

  • 多讀程式碼:不只寫新的,還要嘗試維護舊的,學會看懂不同人風格的程式。
  • 理解原理:不只是 Copy/Paste 解法,而是去追根究柢,知道為什麼這段程式能動。
  • 善用 AI,而不是依賴 AI:把 AI 當作工具,而不是答案。學會用 AI 提速,但最終決定還是要靠自己判斷。
  • 建立系統性思維:試著從架構角度看問題,而不是只盯著某一行程式。

當 Junior 能夠逐步建立這些能力,就能從「容易被取代」的位置,慢慢走向「不可取代」的價值區域。

AI 協作影響統計

StackOverflow 2024 做了詳盡問卷,共有超過 60000+ 相關人員參與,然後統計所有填答的資料,可作為未來職涯參考。

透過以上統計圖表,可以得知 AI 在軟體工程專案中的重要性越來越大,絕大多數的人認為可提升工作效率,而且正逐步在非寫程式環節採用 AI 流程。

一半工程、一半管理

由於我現在的角色是領導 App Team,工作內容佔比大概一半工程一半管理。

事實上,我還是喜歡親自動手實作專案與研發產品,專案/產品範疇大的話,免不了需要與其他工程師合作,此時管理職位就顯得重要,這一部分我持續學習進行中。

除了一部分工作分配給團隊成員實踐外,一部分想要引進 AI 工具來進行,像是進行 Code Review、優化 Performance 等等。

結語

擁抱改變吧~就如同過去只用純文字編輯器(Editor)在寫程式,現在改用功能眾多整合開發環境工具(IDE)在開發軟體,未來將進階整合智慧助理(AI Agent)協助完成專案。每一次工具大變革,都能帶來工作效率與成果產能大躍進。

近幾年 AI 演變進化如此迅速,讓我興奮且迫不及待地想要運用在工作與生活之中,而這篇文章也有 AI 協助我撰寫。😎

.

參考:

隨意留個言吧:)~

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

標籤雲