聽說這年頭只要會寫程式就不愁沒工作,且待遇還很不錯,小木頭跟小閃光兩人吵著要學程式,沒辦法,身為老司機只得撥些時間指導一下。(謎之聲:分明是你在整天推坑吧?)

之前兩人上過程式夏令營之類的課程,學過一點 C/C++ 跟 Python 但沒再深入,那這次要學什麼程式語言入門呢?想了想,JavaScript 有瀏覽器就能跑,能繪圖又有互動介面,還能拿現成網頁來惡搞,較容易引發興趣。加上 JavaScript 生態系完整,有強大的開發工具、F12 偵錯工具支援,而 JavaScript 這幾年通吃前後端遍地開花,未來行走江湖用得到的地方可多了,想想是不錯的選擇,那就別再用 C 畫聖誔樹或算 BMI 了,直接學 JavaScript 體驗程式開發是怎麼一回事,反正變數、函式、迴圈、if 條件、偵錯手法這些概念,不管用什麼語言都是一樣的,能引起興趣領略其中樂趣更重要。

我訂了一個簡單練習題 - 使用 HTML5 Canvas 畫布,畫一個撞邊會反彈的球,反彈時加亂數微調移動方向。過程能學到變數、if 條件、亂數、想演算法解題、重複程式提取成函式、console.log 偵錯... 等實用技巧,蠻有趣的。(還順便展示用 git 做版控的好處,正確觀念要從小建立)。最後兩人都有完成作品,我也手癢寫了自己的版本,搞出一場家庭黑客松,哈!

過程有個小插曲,幫小閃光看程式時,發現她的 VSCode 「聰慧」過人,居然猜到我想寫的程式碼是什麼,提示在下方,按 Tab 自動填完,就像前幾天介紹的 VS2022 IntelliCode 及 Github Copilot 一樣。

我問她是不是裝了什麼外掛,她說昨天查網路查到的,有人說很好用她就裝了! XD 就醬,跟女兒 Pair Programming 也能學到新東西 - 一個跨 IDE 支援多種程式語言的 AI 程式碼自動完成套件,Tabnine

Tabnine 支援 VSCode、VS、IntelliJ、Sublime、PyCharm、Rider、PhpStorm、Vim、Eclipse... 等 IDE,程式語言則涵蓋 C/C++、C#、HTML、Java、JavaScript、Python、Ruby、Rust、TypeScript... 幾乎能想到的都有。完整清單

Tabnine 有分 Free 及 Team 版,差別在 Free 版基於開源程式碼訓練的 AI 模型,而 Team 版的 AI 模型更豐富,且可依據團隊程式碼進行優化,提供完全貼合需求及標準的程式碼建議。

跟 IntelliCode 一樣,Tabnine 也是在本機運行,程式碼不會上傳外流,但可選擇開啟雲端模式,利用伺服器端 GPU 資源使用深度學習模型,但基本上雲端不保留程式碼。若不允許上傳,也是有自建伺服器的方案。

小試了一下,Tabnine 對 C# 的支援也還行,但精準度不如 JavaScript。我的理解是 AI 模型的精準度取決用於訓練學習的程式碼數量,JavaScript 開源程式的數量比 C# 多,見多識廣,能提供的建議自然更到位。但以 Tabnine 提供的自動完成,還是能省去不少打字時間,開發工具箱再添順手工具一件。

【參考資料】

Introduce to the AI code completation extension fo VSCode - Tabnine.


Comments

# by mason

Github也推出了github copilot, 不過要申請preview 可能還在preview, 用上去的suggestion還是不太靠得住就是

# by Huang

未來只要說功能,程式碼就自動寫好,而且寫的比你好

# by HH

Copilot 現在申請都直接給過,功能比 tabnine 強大很多,GitHub 有太多 code 可以 train model 了;但要注意一下在學習階段個人認為用 AI 工具不太好

# by Xiaoeyun

Copilot 對於知名語言Js有如神助,但對于Rust這類冷門的語言,幾乎沒用XD,自己實測 Copilot,他會基於自己代碼,但是在重構時,由於他是基於前方前面程式碼,所以他給的建議會很尷尬

Post a comment