最近正在進行期中考題的出題,並且在設計大語言模型這門選修課和資料結構這門必修課的作業的時候,我一直在想一個核心的問題:同學們需要什麼樣的能力,讓他們在畢業之後可以用來當作面對如今變化多端的業界的武器?程式設計師會被AI時代淘汰嗎?
忘記之前在哪裡看過,未來程式設計師的Coding能力,將會更需要強化的是「閱讀code」的能力。如果大部分繁瑣的coding都能透過AI幫忙解決了,那麼剩下的就是要如何刪改、應用,並且將code寫漂亮、寫好在自己的開發案中。
所以,儘管作業本身有難度,但是在不限於可以使用ChatGPT等大語言模型工具的狀態下,挑戰一下同學們的極限吧。
之所以看到這篇文章,剛好在隨意聽podcast的時候,聽到了「ITトリオの日常」這個節目講到了這篇文章。雖然我沒仔細聽podcast內討論的內容,不過這篇文章大致上是在說「當chatGPT出現了之後,寫程式的人是否會遭到取代」這類的話題。這篇文章來自於O'REILLY的技術部落格文章,在刊登的時候也引發了網路上IT界的一番討論。而主題也正好和我最近思考的問題有關,所以我就去查了原文來看。
我的看法有蠻多跟這篇文章有共鳴也蠻相近的,文章提到了用LLMs來寫程式:
There’s even a new buzzword for this: CHOP, or “chat-oriented programming.” The rise of advanced reasoning models is beginning to demonstrate AI that can generate even complex programs with a high-level prompt explaining the task to be accomplished.
而實際上在業界的時候,當一個人要處理一個專案的時候,使用LLMs來寫程式可以幫忙處理很多問題。在POC階段或是專案開發的早期階段,在團隊員工數不足、規模不大的時候,一個人可能得要負責從前端寫到後端,可能會涉及同時必須要寫不同程式語言的情形。人腦有限,一個人實在難以同時精熟多個語言,手寫所有的code幾乎不可能,可是有了LLMs服務,可以快速大量製造程式碼,尤其是針對自己比較不熟的語言時,真的大大提升了效率。而我覺得更驚人的效果是出現在寫像是html這樣的標記語言的時候,人腦很難編輯、掌握所有的code,可是有了LLMs的輔助,可以很快速地完成這種會有大量重複的code的情境。
而關於程式設計師會不會被取代的問題,作者不認為會如此。
更可以說,因為AI工具的出現,我們會需要更多的程式設計師。只是,我也同意,更多的程式設計師的工作,將會是整合型的,他們必須要會整合各種API,各種服務進入到企業/組織所提供的單一服務/產品當中。
All kinds of deep and powerful functionality was made available via simple APIs. Yet this explosion of internet sites and the network protocols and APIs connecting them ended up creating the need for more programmers.
The human programmers are their managers. There are now hundreds of thousands of programmers doing this kind of supervisory work.
原文提到,儘管還是會有一些工程師他們會寫編譯器、會寫很底層的程式與軟體,也有一些工程師,會寫一些framework或library,可是更多的工程師,是利用這些工具,發展出更多元的服務。這也是如今,Python會變得更流行的原因,它的開發速度快、可用資源多等等,面對現今的這個整合型程式設計的時代來看,它更符合時代的需求。
此外,其實這也涉及了團隊規模的問題,目前已經有非常多現成的服務,都已經被一個非常巨大的規模所建立起來,我們作為普通的企業、普通的個人,實在難以跟那些超大公司如Google, Amazon, Meta等等公司匹敵,而既然他們已經有大量收集、訓練過的資料,將他們的服務串連過來為己所用,其實也是相當合乎成本的。如何整合服務,提供更好用的工具,也會是未來的一個商機和發展方向。
就像有了Windows之後,人類已經習慣了使用圖形化的界面組成的電腦作業系統。而程式語言本身也持續的在演進當中,當寫程式這件事情越來越能貼近人類語言的同時,也就會有越來越多人會寫程式。正如現在會使用電腦的人數,絕對也比20年前(2005年)還要多一樣。
The fact that “programming” is getting closer and closer to human language, that our machines can understand us rather than us having to speak to them in their native tongue of 0s and 1s, or some specialized programming language pidgin, should be cause for celebration.
所以回到出作業和考題的思考上,我想重要的事情也就是在於讓同學可以挑戰做一些更需要人類加工的內容,例如,
諸如此類等等,而作為資訊管理學系的學生,我想從這些角度來思考學寫程式的這件事情,應該也算是很貼近於這個時代的需求吧。