近期面試了一位自動化測試工程師,而我的習慣,是會以一個貼近實務的題目作為考題,請人選用程式解決,這次是請他將API的Response做解析,並取得我要的資料內容。
人選說他有帶自己的電腦來,想直接上手寫。我覺得沒有不妥,比起上白板更有效率,就等他開好電腦,打開VS Code。
接著他開始寫註解,我剛開始覺得這個習慣不錯,接著發現他有安裝Copilot,畫面上跳出了一條條的Auto Completion,他都不假思索地按下Tab,幾乎是一出現就按,彷彿他的專注只為了抓住Completion出現的一瞬間,當Copilot沒有任何輸出後,他直接執行了腳本,沒有做任何的檢查,然後得到了錯誤,少了一些模組,然後告訴我說有問題不能跑了。
我大為震撼以及腦袋空白。
讓我震撼的是他在面試過程中這麼的Vibe沈浸,讓我空白的是我不知道接下來該如何進行,我究竟是考人選還是考Copilot還是考人選對Copilot的應用呢?權衡之下,我選擇了後者,但是結果不好。
履歷上寫著人選具有一年的Python的工作經驗,應該具備Python基礎,但以下狀況讓我深思許久:
- 面對Terminal上的錯誤,他能夠把英文翻譯成中文,但不知道造成問題的根源是什麼
- 唯一手寫的一行程式碼 “key” != None ,短短幾個字就有三個問題: 不知如何從dict中取值,字串和dict結構的不理解,以及應該用is not None。
- 使用的是自己的電腦,自己創的檔案,但是在執行腳本時,卻分不清自己在使用哪個Python環境及路徑對應關係。
最終,我們仍然走完了所有考題,都是經過大量的引導和協助他解決錯誤才得以完成。
這個經歷讓我思考了很長一段時間,Vibe Coding或用AI寫程式究竟是真的能夠幫助到我們,抑或是一種商業行銷的手段呢?
對於AI廠商來說,越多人使用AI才能夠賺更多的錢,除了原本有經驗的Senior之外,把 Junior和不會寫程式的人拉進來市場也變得更大,但可能也造成了一些斷層。
對於我而言,我認為AI確實能夠幫助到我們寫程式,這是毋庸置疑的,身為一位Python熟練工,AI產出的程式碼能夠評斷好壞,甚至能夠給出較佳的Prompt,很多我們稱為「手刻」或是造輪子的部分,AI都能夠幫我們處理掉,也能夠對於我們的疑問給出解法,是一個極為稱職的助手。
但面對一個沒有程式基礎的人,使用AI又會是什麼樣子呢?
Prompt A:
用Python找出日期在2022年之前入職的女生但是沒有發給員工證的人
Prompt B:
先請求 https://exmaple.com/api/employee 取得員工資料,其中的date是入職日、gender是性別、card是boolean代表是否有發給員工證。
請以python寫出腳本,解析此API得返回值,篩選出條件為以下的所有資料:
1. 2022年之前入職(包含2022年)
2. 性別值為female
3. card值為true
列出每一筆的詳細資料並統計數量
注意到兩個Prmpt的差異了嗎? 第一個Prompt則是隨心所致的Vibe,沒有考慮到場景的描述和解決問題的關鍵點。第二個Prompt是在對問題及程式結構充分理解的情況下所寫出的,基本上是能一次過的。
最終,我得到的結論是,人選是特例。說是結論,不如說是期望,期望我遇到的只是在AI智慧浪潮下選擇完全依賴AI的那群人中的一位。
很多人對AI的誤解,就是能夠直接提供給你答案,或是產生可愛的照片給你。但這些的前提下,是你需要提供正確且詳細的資訊給他,否則剩下的內容他會幫你填空。舉個照片生成的例子:
Prompt A: 生成一張可愛的圖片
Prompt B: 生成一張圖片,並遵循以下條件: 1. 吉卜力畫風, 2. 青青草地, 3. 藍天白雲, 4. 兔子、狗、貓、鹿
生成一張圖片不難,難的是內容有哪一些,如果你只說一張可愛的圖片,你可能會得到小嬰兒?兔子?奇幻動物?廣泛性的結果,但如果你能限縮主題或是讓他依照指令做事,能夠提升更大的效率。
在AI時代下,Prompt, Credit, Token是重大的成本,能用最少的成本產出結果的人,不一定能搶佔先機,但我會說他是運用AI的人。我們要避免依賴AI和被AI局限,具體該怎麼做呢?
答案很多,很多AI達人也給出了意見,而我的答案比較簡單。
像往常一樣生活,該吃飯吃飯,該唸書唸書,該工作工作,該遊玩遊玩
很多人對AI的焦慮是人腦打不贏電腦,電腦儲備了全世界的知識,我應該不需要再學習了,像是:
- 語言,AI翻譯正確率極高,翻譯眼鏡和耳機都推出了
- 繪圖,AI產圖品質比人畫的還好,吉卜力都能畫了
- 寫作,AI寫文案已經不是新鮮事了,甚至都有作家用AI寫書了
- 族繁不及備載
AI應該是 「學習」 的鷹架 Scaffolder,而不是不學習的藉口,如果因為AI能力強大到可以取代掉人類,就選擇不去精進這塊,那不就是立即性的被AI取代?豈不矛盾?所有腦力活都被AI做掉,人類就退居體力活的行列?是不是忘了機器人呢?這樣推論下去,人類的生存空間確實有限。
但我們都不想要變成這樣。
AI 確實能自動化許多重複性的工作,能與 AI 合作、善用 AI 工具來放大效能的人,才是駕馭AI的人。
舉個最貼近的例子:
- 在沒有網路的年代,所有的知識都是靠書本,資訊傳遞靠郵寄;
- 網路初期靠搜尋引擎,找到最具可信度的內容,後期則是靠群眾智慧,堆積內容和批判內容
- AI時代的知識都靠問,AI甚至會幫你主動搜尋驗證。
注意到了嗎?我們獲取知識(資訊)的效率幾乎已經到了極限值了,而我們的生活,則應該因為AI的來到,而更有效率。
- 該吃飯吃飯,節省等待時間、吃得更聰明營養
- 該唸書唸書,問題直接被解答,節省等待老師的時間,產出直接獲得批改
- 該工作工作,AI即使做掉大部分的事,我們還是能夠監管生產結果,繁複重複性的事情可以交給AI處理。
- 該遊玩遊玩,聽歌讓AI更快找到你喜歡的,遊戲加入AI更具挑戰,興趣創作都能當你的小助手
有AI,生活就該有變化? 大家推薦Vibe Coding,不代表著你也得這樣做,AI應該協助你而不是改變你,與其跟隨大家看AI能做什麼,不如看看你能與AI一起做什麼。
Just be it, Just do it