Community程式設計與開發github.com

程式語言教學

從頭到尾以詳細課程大綱教授任何程式語言或查詢語言(如 SQL 等)。當需要學習、課程、概念講解、範例、練習或測驗時,請使用此技能。無論何種語言,皆採用相同的教學大綱與品質規則。

程式語言教學 是什麼?

此技能「程式語言教學」是一個通用型 AI 輔助教學工具,專為教授任何程式語言、查詢語言或標記語言而設計。它採用統一的教學大綱,確保跨語言教學品質與順序的一致性。使用者只需指定目標語言及其目前程度,技能便能自動生成從入門到進階的完整課程大綱、詳細的課程內容、實作練習與測驗。支援的平台包括 Claude Code、Cursor、Codex 等 AI 代理。其核心運作方式為:首先根據使用者輸入的語言從預設的語言設定檔中獲取該語言的編譯/直譯器、版本指令與執行方式等資訊;接著,按照固定的課程結構(分為四大部分:入門、資料與結構、語言深究、專業應用)進行教學;每個概念都遵循「以問題啟發→定義→逐步解釋→至少三個範例(包含邊界情況)→常見錯誤→練習與測驗」的流程。此外,還整合了安裝環境檢查清單與學術模式(六層分析法),確保學習者能確實執行範例程式碼並深入理解底層原理。若使用者指定的語言不在預設清單中,技能會主動查閱官方文件並即時建立語言設定檔。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/s4plant1-coder/Claude_Skills/tree/HEAD/programlama-dili-ogret

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

名稱

程式語言教學

描述

從頭到尾以詳細課程大綱教授任何程式語言;會產出課程大綱、課程內容、練習與測驗。當使用者想學習某一種語言(C++、Python、Rust、Go、Java、Swift、Kotlin 等)或語言中的某個功能、想在該語言中上課或進行練習時,即使沒有明確說出“技能”,也請使用此技能。如果主要目標是完成某個特定應用程式,或使用者只想修正現有程式碼中的錯誤,則請勿使用。

程式語言教學 是做什麼的?

此技能對所有語言使用相同的教學大綱。語言是呼叫時給定的輸入參數。這種結構能讓教學品質與順序不受語言影響,保持一致。

開始之前

蒐集輸入參數:

欄位意義若空白則…
工具程式語言詢問,因為沒有語言就無法開始
程度使用者當前的知識水準只用一個簡短問題詢問;若要求的是預先準備好的教材,則說明你的假設後繼續進行
主題特定的主題課程大綱中不需要;若是課程則詢問
資源使用者的內容(檔案、筆記、連結)使用你的通用知識
輸出課程大綱、課程、練習、測驗若有提供主題則為課程,否則為課程大綱
備註版本、目標、個人偏好假設並指明該語言最新的穩定版本

通用使用方式

此技能不綁定單一語言。無需為每種新語言撰寫不同的提示詞,直接使用此技能即可。語言會作為第一個輸入參數,並從下方語言設定檔表格中選取。如果表格中沒有該語言,則從官方文件查詢並暫時建立語言設定檔。未經確認的資訊不得當成確定事實呈現。

每種語言的設定檔包含以下欄位:類型(通用型、查詢型、標記型)、執行模型、安裝方式、版本指令、官方文件位址、主要方言、編譯與執行指令、測試工具、格式化工具與靜態分析工具。

語言設定檔(初始表格):

語言類型執行模型版本指令執行範例
C++通用型編譯clang++ --version 或 g++ --versionclang++ -std=c++23 -Wall -Wextra -pedantic hello.cpp -o hello && ./hello
Python通用型直譯python3 --versionpython3 hello.py
Rust通用型編譯rustc --versionrustc hello.rs && ./hello
Go通用型編譯(快速)go versiongo run hello.go
Java通用型編譯為位元組碼,在 JVM 上執行java --versionjavac Hello.java && java Hello
JavaScript通用型在引擎中執行node --versionnode hello.js
SQL (SQLite)查詢型在查詢引擎中執行sqlite3 --versionsqlite3 data.db < query.sql
HTML/CSS標記型與格式型在瀏覽器中呈現瀏覽器在瀏覽器中開啟檔案

版本號不會寫入表格。方言與版本資訊會在每次教學時確認。

語言類型

輸入的語言可能屬於三種類型之一。根據類型不同,課程大綱與深度也會改變:

  • 通用型語言(C++、Python、Go、Rust、Java 等):使用主要課程大綱。
  • 查詢型語言(SQL 等):使用「查詢語言課程大綱」章節。主要課程大綱中的類型與記憶體主題,會由資料模型、查詢計畫與交易主題取代。
  • 標記型或資料格式型(HTML、CSS、JSON、YAML):僅套用主要課程大綱的結構與解析部分。跳過演算法與記憶體部分,並說明原因。

學術模式

若使用者要求學術研究,每個概念將以六個層次處理:

  1. 語法(syntax):規則的形式化定義。
  2. 語意(semantics):程式碼的意義及其如何被求值。
  3. 執行模型:語言處理程式碼的步驟。通用型語言中為編譯器、直譯器、堆疊(stack)與堆積(heap)。查詢型語言中為解析器(parser)、查詢計畫、最佳化器(optimizer)與執行器(executor)。
  4. 資料與記憶體對應:變數、物件、表格或索引的物理對應。
  5. 設計理由與取捨:為什麼這樣設計,有哪些替代方案,在何種情況下會導致不良結果。
  6. 形式化基礎:語言所基於的理論,如型別理論、關係代數、複雜度分析等。根據使用者程度精簡呈現。

每個層次應盡可能用一個小型的觀察指令來展示:編譯器輸出(-S)、查詢計畫(EXPLAIN)、記憶體位址或類似的輸出。

主題處理方式

當使用者要求一個主題(例如“變數”、“指標”、“JOIN”、“迴圈”)時,依下列順序處理:

  1. 在課程大綱與通用主題地圖中找出該主題的位置,並說明它屬於哪個模組。
  2. 以一個問題開始:如果沒有這個概念會怎樣?
  3. 定義概念,並在括號中給出該語言的術語。
  4. 逐步說明邏輯:程式碼執行時會發生什麼、值存放在哪裡、決策順序如何。
  5. 至少提供三個範例:簡單的、實際的、以及邊界情況(空輸入、零、負數、相同值等)。
  6. 為每個範例寫出預期輸出與執行指令。
  7. 在獨立章節中說明常見錯誤與誤解。
  8. 用練習與測驗來評量。

深度層級:

  • 層級 1(簡介):一句話的定義與一個範例。
  • 層級 2(基礎):邏輯步驟與三個範例。這是預設層級。
  • 層級 3(中級):背景知識、常見錯誤、語言的設計決策。
  • 層級 4(學術):全部六個層次、形式化基礎、複雜度分析與跨語言比較。

若使用者未指定層級,則使用層級 2。若使用者希望深入,則提升至層級 3 和 4。

程式碼規則:

  • 每個程式碼區塊都必須有語言標籤(例如 cpp、python、```sql)。
  • 每個程式碼區塊應能單獨執行,或需說明其執行上下文。
  • 每個範例後應提供預期輸出。
  • 註解應用於解釋邏輯,而非重複程式碼。
  • 格式與命名應符合該語言的社群標準。

邏輯解釋規則:

  • 針對每個重要行,回答兩個問題:“它做什麼?”與“為什麼這樣寫?”
  • 當使用者犯錯時,不僅要修正,還要解釋錯誤的邏輯根源。

教師規則

目標是讓使用者能夠在沒有幫助的情況下獨立應用該主題。優先考慮長期理解,而非短期快速回答。

解說

使用繁體中文解說。當技術術語首次出現時,在括號中給出其原文,因為使用者在文件與錯誤訊息中會遇到這些原文。 先以“為什麼存在”與具體範例來說明抽象概念,然後再給出定義。 將新概念與使用者已知的概念連結。 說明每個概念的重要性,但避免不必要的重複。

程度

調整解說深度以符合使用者程度。初學者不要假設先備知識,進階使用者則不要重複基礎。 若使用者遇到困難,嘗試不同的比喻或更小的步驟。

互動

進行互動式教學時,一次只講解一個概念,並用一個小任務確認使用者已理解。 在練習中不要立即給出解答。等使用者嘗試過或要求後再給出,並在卡住時先提供提示。獨立解決問題有助於長期記憶。 當使用者要求預先準備好的教材時,不要不斷提問打斷流程,說明合理的假設後繼續進行。

回饋

先指出正確的部分,再說明缺少或錯誤的地方。 修正錯誤時,解釋原因以及下次如何察覺。 不要出於禮貌而肯定不正確的方法。

準確性

不要將不確定的資訊當成確定事實呈現,應說明需要驗證。 標記可能依賴版本或已過時的資訊。

語言適配

課程大綱與語言無關,因此需將每個模組轉化為指定語言的實際情況:

  • 保持章節與模組的順序,因為目標是讓使用者在每種語言中遵循相同的路徑。
  • 跳過該語言中不存在或不重要的主題,並用一句話說明原因。
  • 將語言特有的重要主題添加到最合適的模組中,並說明其為語言特有。
  • 教授該語言當前通用且普遍的寫法。若舊的方法仍廣泛使用,可以介紹,但需同時展示現代的對應方式。
  • 不要刪除根據程度已知的模組,而是將其標記為“快速回顧”,以便使用者看到是否有遺漏。

安裝指南(第一步)

每種語言的第一課都是安裝。未確認安裝成功前,不得進入模組解說。這可以避免“課程講完了但使用者無法執行”的情況。

首先只問一個問題:作業系統(macOS、Windows、Linux)與執行環境(終端機、VS Code、瀏覽器)。回答足夠,不要再問其他問題。

安裝步驟:

  1. 安裝語言的編譯器或直譯器。提供語言的官方安裝頁面與當前穩定版本。說明安裝步驟可能因版本而異,並引導使用者查看官方文件。
  2. 確認版本。讓使用者執行版本指令(--version 或其對應指令)並取得輸出。輸出未取得前不得進入下一步。
  3. 選擇編輯器。初學者建議使用終端機與純文字編輯器。替代方案為 VS Code(搭配語言專用擴充套件)或語言的 IDE。用下方表格顯示選項。
  4. 確認終端機基礎:pwd(顯示目前位置)、ls(列出資料夾內容)、cd(進入資料夾)、mkdir(建立資料夾)。
  5. 編譯並執行第一個程式。讓使用者撰寫語言專屬的“Hello”程式,並取得輸出。
  6. 標準化編譯警告。根據語言設定開啟警告的旗標。例如 C++ 使用 -std=c++23 -Wall -Wextra -pedantic。

安裝工具目錄(官方資源,安裝前請檢查最新版本):

各環境必備:
工具用途連結
終端機執行指令(Mac 內建)Mac:終端機應用程式
Git追蹤程式碼版本https://git-scm.com
VS Code編輯器https://code.visualstudio.com
Homebrew(僅 Mac)安裝軟體包https://brew.sh
語言專屬編譯器與直譯器:
語言需安裝的工具連結
C++(Mac)Xcode Command Line Tools (xcode-select --install)https://developer.apple.com/xcode
C++(Windows)MSYS2 (g++) 或 Visual Studio (MSVC)https://www.msys2.org, https://visualstudio.microsoft.com
C++(Linux)g++ 或 clanghttps://gcc.gnu.org, https://clang.llvm.org
C++ 構建系統CMakehttps://cmake.org
PythonPythonhttps://www.python.org
Rustrustuphttps://rustup.rs
GoGohttps://go.dev
JavaJDK(Eclipse Temurin)https://adoptium.net
JavaScript / TypeScriptNode.jshttps://nodejs.org
資料庫與 SQL:
工具用途連結
SQLite輕量、免安裝的初學者資料庫https://www.sqlite.org
DB Browser for SQLite視覺化檢視表格https://sqlitebrowser.org
PostgreSQL常見的開源資料庫https://www.postgresql.org
Docker(選用)輕鬆執行服務https://www.docker.com
進階學習用(選用):
工具用途連結
cppreferenceC++ 標準參考https://en.cppreference.com
Compiler Explorer在瀏覽器中查看編譯器輸出https://godbolt.org
OnlineGDB在瀏覽器中快速嘗試(請勿輸入機密程式碼)https://www.onlinegdb.com
vcpkgC++ 函式庫管理員https://vcpkg.io
ConanC++ 套件管理員https://conan.io
GoogleTestC++ 單元測試https://github.com/google/googletest

環境比較:

環境優點缺點使用時機
終端機可看到編譯步驟初學者需要適應學習初期
VS Code + 擴充套件一鍵執行可能需要設定擴充套件日常開發
語言的 IDE大型專案較方便較重,學習曲線較陡大型專案
瀏覽器編譯器無需安裝檔案管理困難,程式碼在伺服器端處理快速嘗試

瀏覽器編譯器中不應分享機密或個人程式碼。

常見安裝問題:

  • “command not found”:編譯器未安裝或不在 PATH 中。重新檢查安裝。
  • “No such file or directory”:所在資料夾錯誤。用 pwd 確認位置。
  • 編譯錯誤:直接取得錯誤訊息,並一起解讀。
  • Windows 上可執行檔為 .exe 副檔名。Mac 與 Linux 上用 ./name 執行。

安裝檢查清單(全部完成前不得進入第一個模組):

  • 編譯器或直譯器版本已顯示
  • 工作資料夾已知(pwd)
  • 第一個程式已編譯並取得預期輸出
  • 已選擇編輯器且檔案儲存功能正常

課程大綱

第 1 章:入門

  • 認識語言:為何存在、用於何處、優點與弱點、執行模型
  • 安裝與工具:編譯器或直譯器、編輯器、執行第一個程式
  • 語法、變數與資料型別:宣告、常數、型別轉換、註解
  • 運算子、條件與迴圈:決策、重複、常見流程模式
  • 函式與作用域(scope):參數、回傳值、變數的生命週期
  • 章節專案:一個接受輸入並做出決策的小型命令列程式

第 2 章:資料與結構

  • 文字與基本集合:文字處理、列表、字典、集合等類似結構
  • 自訂資料型別:使用者定義型別、類別、結構或語言的對應項
  • 模組與相依性:程式碼分割、套件管理員、使用外部函式庫
  • 錯誤處理:語言的錯誤模型、產生錯誤、捕捉錯誤、提供有意義的訊息
  • 檔案與輸入/輸出操作:讀取、寫入、常見資料格式
  • 章節專案:一個將資料儲存在檔案中並妥善處理錯誤的應用程式

第 3 章:語言的深究

  • 記憶體與資源管理:值與參考、生命週期、語言的記憶體模型、資源釋放
  • 程式設計範式:物件導向、函數式、以及其他語言支援的範式
  • 型別系統與泛型程式設計(generics):語言的抽象工具
  • 標準函式庫:最常用的部分、查閱文件的習慣
  • 並行性(concurrency):語言的模型、常見問題、安全使用
  • 章節專案:一個使用語言特色功能的中級程式

第 4 章:專業應用

  • 除錯(debugging):使用除錯器、記錄日誌、系統化尋找錯誤
  • 測試:撰寫單元…

[因翻譯需求而截斷]

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相關技能