看板 Soft_Job 關於我們 聯絡資訊
※ 引述《gigayaya (gigayaya)》之銘言: : 3.多去學習知識,不論是經典的CS知識或是最新和AI有關的知識 這幾天想到一個例子表達我的觀點,想分享給大家或許能更好理解我想表達的XD 主要是想表達軟體工程師仍然存在且需要有知識,以及AI時代工作型態的轉變 (ps.這只是一個展示概念的思想實驗例子,希望大家不要對內容太認真) --- 想像一個場景:今天你去一家公司應徵軟體工程師,你坐在會議室中 對面面試官給你一台筆電請你現場做live coding面試,你看到畫面中的文字題目如下: Q: 目標為生產一個function解決以下問題-> 有一串數字,規則是「後面的數 = 前面兩個相加」: 第1個: 0 第2個: 1 第3個: 0+1 = 1 第4個: 1+1 = 2 第5個: 1+2 = 3 第6個: 2+3 = 5 第7個: 3+5 = 8 其中第1個數字固定為0,第2個數字固定為1 給予你一個input數字,請你回傳那個位置的數字是多少 約束/規則: 1. 給你的數字範圍為2~1000正整數 2. 你只能寫prompt給AI,AI的輸出即為你的答案,你不能手動修改AI回答的內容 3. 使用的prompt文字越少分數越高 4. 跟AI溝通的次數越少分數越高 5. 程式語言為python (其實這不重要,舉例而已) 6. 只能使用我們提供的AI 7. 我們保證我們的AI沒有任何的隨機性 (意思就是保證存在方法拿到滿分) 8. 我們已經測試過我們的AI可以產生出最好的答案 (跟上一則同意思) 9. AI只會回傳程式碼不會聊天 --- 然後面試官手上的正確答案是這樣: ``` def fib(n: int): a, b = 0, 1 for _ in range(n-1): a, b = b, a + b return a ``` 我們先假設這就是這世界上最好的答案,忽略一下變數名稱,錯誤處理之類的小問題 面試官會將你的答案跟他手上的黃金答案對比,跟答案長的越相同分數越高 --- 那在這個情況中你要如何獲得高分,意思就是你要如何達成只用最少的prompt就能 產生出面試官手上的正確答案呢? 要能達成這件事情,我覺得你至少需要掌握以下幾點: 1.你知道這是一個費式數列問題,所以你跟AI溝通的時候不需要把完整的題目複製貼上, 可以只用四個文字表達你的需求 2.你知道用for loop實作費式數列問題比遞迴好,因為時間複雜度比較低 3.你知道用兩個變數而不是一個list儲存內容比較好,因為佔用的空間更少 4.你知道如何用最少的字告訴AI你的需求以及設定邊界等等的技巧高品質地完成任務 我們先假設2,3點AI還沒有被訓練這些資料,那如果AI能寫出這樣的code的話一定是 你prompt要求的 所以如果你的答案被判定為高分的話: 1. 你的CS知識 2. prompt engineering知識(AI使用技巧) 肯定都不差 (舉例結束) --- 所以我想表達的意思是: 有了AI之後工程師的任務從『自己用手將腦袋中的code敲到檔案裡面』變為-> 『告訴AI你腦袋中的code然後生產出來』 並且通常來說,在同樣完成任務的前提下,後者花的物理時間會比前者少很多 (或至少你可以同時平行開許多AI agent去做許多事) 所以工程師的知識以及經驗還是有用的,因為你至少要知道你要產生什麼,你頭腦中還是 有一個roadmap 並且隨著問題的複雜度越高,你就需要越多的AI engineering技巧 於是你從實作function開始外包給AI去寫並且你去review,之後是一個class,然後是 一個component,一個module,一個library,一個framework,最後是一個產品 但你都知道你在幹嘛,想像你每一輪都在做那個面試,只是你被要求的目標越來越高 至於這樣子要幹麻?為什麼要這樣做?這樣做對工程師有什麼好處? 我會在之後的另外一篇文章中比較詳細的闡述我的想法(如果沒拖稿的話XD --- 最後AI會不會可能想得比我還好?這的確是有可能,所以在正式工作中你可以在決定 內容之前先跟AI多討論,確定好你覺得沒問題後再實作 但你說會不會連一開始第一個問題,第一個方向,人類給出來就是錯的比AI差? 哈哈哈我覺得這好像就上升到哲學問題了,我暫時也沒有完全肯定答案 但我目前的信念是: 如果要設計給人用的產品,那最後只有人類懂得人類的需求能夠滿足人類 --
mmmmO:靠 害我嚇到想說啥時有po文07/26 01:40
mmmmmO:嫩 我比你長一點07/26 01:42
Ommmmm:靠北喔07/26 01:43
mmmmmO:6907/26 01:51
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.108.32 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1777132390.A.B7F.html
zys: 我覺的這樣用ai並不能最大化 應該要把它當成一個一起協作的 04/26 00:02
zys: 人 而不要對他加太多限制 因為你說要讓ai把腦中的code實作出 04/26 00:02
zys: 來 應該是把腦中的想法實作出來 04/26 00:02
有道理 但我覺得每個人對 想法/code 的邊界可能都不太一樣 我覺得單純只有很high level的想法(例如:幫我實作一個Facebook)就跟我想表達的不太 一樣,這樣好像變單純的許願 我覺得作為軟體工程師你還是必須對你的prompt有一個具體的形狀,然後這個形狀是因 為你是人或是軟體工程師,你了解你們產品的需求,你了解有什麼trade off,所以你的 想法是這樣子 這也是我覺得目前junior跟senior在使用AI的方式上會有不同的地方 但這不是我文章想要著重的地方 先寫code是希望能夠先避免這種情況,先把條件寫嚴格一點
weiman0702: 我看完簽名檔就忘了你說啥 04/26 00:04
dani1992: 這個最佳標準是什麼? 04/26 00:30
dani1992: 最低複雜度,那應該用公式解 04/26 00:31
dani1992: 好理解,我覺得遞迴比迴圈好,有tail optimizaiton下 04/26 00:32
dani1992: 複雜度也一樣 04/26 00:33
所以說先不要糾結在那個答案上啦XD 我的意思是: 你知道code怎麼寫(或是大概),你要用AI去寫出來而不是你手動敲 這樣可以省時間,省下來的時間可以去用在更多需要思考的地方 至於你要怎麼達成這件事情,除了本來就要有的CS知識以外還需要使用AI的知識
dani1992: 要更快更精準還有矩陣快速冪跟fast doubling 04/26 00:40
dani1992: 恩 我覺得在這個例子上不需要CS知識,知道產品需求比較 04/26 00:52
dani1992: 重要,知道需求那空間時間複雜度都交給AI即可 04/26 00:54
dani1992: 你有假設AI沒有訓練這點,但大部分情況都是相反吧 04/26 00:58
dani1992: 工程師知道的比AI少,所以同樣自作主張縮減題目不一定 04/26 00:59
dani1992: 比較好 04/26 00:59
wulouise: 工程師最需要的是問對的問題,也沒錯 04/26 00:59
MoonCode: 04/26 01:18
ku72: 坦白說 我自己應該不會這樣招募工程師 目前看到的是 AI在這 04/26 01:25
ku72: 種單一低複雜度的問題上 都能夠很快的給出答案 現在需要的是 04/26 01:25
ku72: 工程師能有足夠大的邏輯窗口 來幫AI寫出的東西做減法 邏輯能 04/26 01:26
ku72: 力 全局觀察能力 整理歸納能力 ... 在後AI時代才是被需要的 04/26 01:26
ku72: 能在AI產出的一大堆代碼內 找出那些是不必要的 那些是可以合 04/26 01:26
ku72: 併的 那些該開放 那些該封閉 等等 04/26 01:26
這個簡單問題只是舉例啦... 你今天可以把這個問題的複雜度上升到例如寫一個IG 如果今天一個工程師可以只用prompt就寫出一個IG,那他除了扎實的CS知識之外肯定也 了解許多AI工程技巧 包含到你說的如何不寫出多餘的code,如何偵錯,如何讓AI長時間運行...等等 這部分就是 prompt -> context -> harness engineering 目前這幾年大家研究的方向
viper9709: 舊時代的知識@@... 04/26 01:54
我覺得的確從2025開始software development就進入新時代了 不過為了避免有人反感,已修改文字 ※ 編輯: gigayaya (1.163.108.32 臺灣), 04/26/2026 03:01:57