你的AI助手 – ChatGPT

可能大家已經聽過ChatGPT,或者已經在使用中;這次我想分享一下最近使用ChatGPT後的一些想法;
文章整理了一些ChatGPT在開發工作能幫助的地方,也說說ChatGPT未能協助的部份;有興趣的朋友,請繼續閱讀了;

日常工作上的問題

作為一個Developer,每個項目和每天都有不同的事情要處理和面對;最新的AI軟件 – ChatGPT,確實是對開發中不同的工作帶來了很多便利,但是有某些工作,還是需要我們自己努力解決的。

以下是一些開發者日常的工作範疇:

  • 設計解決方案
  • 了解文檔
  • 編寫代碼
  • 解決代碼/編譯問題

以下的篇幅,會根據我個人經驗(即是我的主觀想法),說明 AI (主要是ChatGPT) 是怎樣幫助我們。

ChatGPT大概的原理

在詳細討論ChatGPT在不同工作如何幫助我們之前,先說說ChatGPT(Transformer模型)大概的原理;

ChatGPT是基於預先訓練好的語言模型來理解和回復大家的問題;而且所謂“回覆”,就是根據輸入的文本信息自動地生成合適的答案;

簡單來說,就是ChatGPT能把不同的文字(詞語/字句)組合出一個答案;而這個答案基於AI本身的大數據來說,是最正確(也是少錯誤的)。

所以ChatGPT的答案雖然基於一定的固有知識(本身數據庫或你提供的),但是也有一定的隨機性,而且你知而他不知道的東西,ChatGPT是沒有辦法把相關答案生成出來的。

例如:問 AI “請問我今年多少歲?”,AI的答案是:

ChatGPT簡單使用原則

基於ChatGPT的原理,大概的使用原則是要把你的問題/指令,分為以下3類:

  • 可以相信ChatGPT的回覆
  • 需要核實ChatGPT的回覆
  • 不用考慮ChatGPT的回覆

“可以相信ChatGPT” 的問題:

  • 代碼例子
  • 解決方案
  • 改寫文本
  • 編寫文本大綱及初稿
  • 數學計算
  • 簡單Debug
  • 翻譯

“需要核實ChatGPT” 的問題:

  • 歷史或新聞資訊
  • 複雜的Debug
  • 非主流軟件的解決方案或代碼
  • 對於ChatGPT來說“太新”的軟件平台或代碼

“不用考慮ChatGPT” 的問題:

  • 涉及私人資訊的問題
  • 難於描述的問題

當然,以上的每類的工作,是隨著你對ChatGPT prompt的技巧和ChatGPT的版本會有所變化。

以下來,會分享一些不同層面的工作,ChatGPT怎樣或能否幫助我。

設計解決方案

在設計解決方案,ChatGPT某程度上能幫助你分析,提供一些基本的建議。
例如:

  • 開發一個網站的主要步驟?
  • 開發網站有那些方案?
  • 有那些可以整合ReactJS的遊戲框架?
  • Postman 有什麼更好的 alternative?

但當你希望開發的東西,你自己還未夠清楚相關需求,或者是ChatGPT未曾遇上的問題,又或者答案的內容很多或變數很大;

這些情況下,ChatGPT就很難給你滿意的答案,
例如:

  • 使用ReactJS開發一個款類似Space Invader的遊戲,相關的工作清單是什麼?

簡單總結:建議使用ChatGPT幫助來設計你的解決方案,尤其在摸索和研究的階段

了解文檔

至於ChatGPT是否能幫助你了解文檔?大家可以玩玩以下例子

例子:

我覺得ChatGPT對我們了解文檔是有一定的幫助,因為幫助你”科普“一些文檔作者假設你已經知道的背景知識,也可以提供一些文檔沒有包含或 不夠完整的代碼示範。

但是,我覺得我們也需要認真看一次文檔,因為ChatGPT不能幫助大家找出文檔的細節,相反,他只會把細節過濾,讓你的相關擇要。

簡單總結:建議使用ChatGPT幫助,但不能依賴。

編寫代碼

編寫代碼的工作,對於我和我的同學來說,其實已經大量使用,當遇上不懂寫的邏輯,其實都直接問ChatGPT如何編寫。而ChatGPT能夠提供一些不錯建議。

以下是一些例子:

  • PHP: Please write me a tree traverse function in PHP
  • Unity or C#: ShuffleList in unity with generic type
  • Javascript: how to generate an array of different combinations from 1 to 8

當然一些很專門或很複雜的代碼,還說需要我來開發;

簡單總結:建議多用ChatGPT來提升工作效率

解決代碼/編譯問題

至於Debug和解決編譯問題,我覺得ChatGPT也能幫助,但是能幫的不太多;
一些主流問題,例如優化,ChatGPT能提供一些建議,又或者找出一段代碼內的Bug;

但是Debug本身的工作,就是需要開發者對問題情景有一定了解,才能找出問題根源的位置;
由於chatGPT不能獲得你項目的整體資訊,他就不可能給你一個正確答案了;所以Debug項工作,你一定會比ChatGPT更好。

至於解決編譯問題,ChatGPT的效果就不太好了;例如我使用Xcode編譯時候出現的build error,我問ChatGPT後,ChatGPT能提供一些資訊,但這些資訊未必能爲我的問題對症下藥,反而Stackoverflow的討論相對有幫助,

簡單總結:

  • 主流問題:建議使用ChatGPT幫助,很多時候會有滿意答案
  • 邏輯錯誤:考自己用自身的Debug工具 (或問ChatGPT有那些Debug技巧/工具)
  • 編譯問題:可以一問,但很多時候需要自己解決

總結

總括而言,ChatGPT的強項是知識廣博,而且為你篩選出最合適的答案;你可以當他是一名博士生;

而作為使用者,我們的強處就是創意,整合和運用;這些能力是ChatGPT未能做到的。所以,我們如能了解ChatGPT並好好指導他,你的工作表現就能有一定提升了。

這個情況其實類似Senior Developer和Junior Developer的關係。在一個項目中,Senior是最了解大局,而且能制定方向的人,而Junior就是主要負責執行。而某程度上,使用ChatGPT就讓你多了一個Junior Developer為你工作;但是,是否能好好運用他,就是你的管理技巧了。

另外要留意ChatGPT和Google有所不同,就算他不懂,也會盡量給你一些答案,有些youtuber會說他會像人一樣,會"作大",你也許會看到有些沒意思或錯誤的答案,所以使用時,也留意需要Fact Check。

大家如果想和我討論相關的主題,或有事請教,可透過Facebook和Twitter聯繫我;

另外,請加入我的FB專頁,有新文章發布時,大家就能立即知道了。
Facebook 專頁連結:https://www.facebook.com/kencoder1024
Twitter連結:https://twitter.com/kenlakoo

參考

  1. 圖片來源:UnsplashPexels

發表留言

在WordPress.com寫網誌.

向上 ↑