針對具 C/C++ 基礎的大學畢業生,設計 3 週、6 課次的 C# 密集訓練計畫,核心原則:以類別為核心、業務驅動、架構優先、工具精通。淘汰率目標 < 30%,達標可直接參與專案開發。
訓練參數
| 項目 | 設定 |
|------|------|
| **對象** | 大學計算機相關本科畢業、C 基礎、部分懂 Java、英文較弱 |
| **時長** | 3 週,每週二、五晚 7:00-9:00 (每次 2 小時) |
| **總課次** | 6 次 |
| **目標** | 能跟隨資深工程師協同編碼、理解架構、獨立實作功能模組 |
| **工具** | VS 2005 + 離線 MSDN + C# Language Spec + 《Beginning C# Objects》中文版 |
核心教學原則
- 拋棄語言導向教學:不按語法逐章講,一切以 Class 為核心
- 三不原則:
- 不為學語言而學語法
- 不為學控件而堆控件
- 不為做網頁而學 ASP.NET
- 業務驅動:從第一天起分析實際業務,訓練資料抽象能力
- 架構服從:學習 UML/Design Pattern,先抽象類別再寫代碼,養成「拿到任務→分析架構→實作」習慣
六課次技術分配
第 1 課:工具鏈與類別核心 (2hr)
- VS 2005 IDE 核心操作:專案結構、偵錯、IntelliSense、重構
- MSDN 離線版導航:索引、搜尋、類別庫瀏覽、範例代碼
- C# Language Specification 閱讀法:Grammar Productions、遞歸下降解析思維
- 類別核心成員:欄位、屬性、方法、事件、索引子、運算子、建構函式、解構函式
第 2 課:實戰小任務 - 從分析到組件 (2hr)
- 給定小型業務需求 (如:圖書借閱、員工請假)
- 學員先繪製類別圖:類別、關係、屬性、方法、介面
- C# 實作核心領域模型:封裝、繼承、多型、介面、委派+事件
- 編譯為 Class Library (DLL),理解組件部署
- **必包含元素**:類別、欄位、屬性、方法、委派/事件、繼承、多型
第 3 課:C# 與外部世界互動 (2hr)
- P/Invoke:呼叫 Win32 API、C++ DLL
- GDI+:自定繪圖、列印、報表
- XML / Regex:設定檔、資料交換、驗證、解析
- Web 演進史:靜態 HTML → Client Script → CGI → Web Server → ASP.NET
- 理解請求-回應、無狀態、PostBack、ViewState、生命週期
第 4 課:資料存取與第二任務 (2hr)
- ADO.NET 核心:Connection、Command、DataReader、DataAdapter、DataSet
- SQL Server 連線、參數化查詢、交易、預存程序
- 第二任務:含資料存取的業務 (如:訂單管理)
- 架構分析 → 實作資料層 (DAL) → 編譯驗證
第 5 課:三層架構與 MVC 實戰 (2hr)
- 三層:Presentation (WinForm/WebForm) - Business (BLL) - Data (DAL)
- MVC 理念:Model-View-Controller 職責分離
- Web Service (ASMX/WCF) 暴露業務邏輯
- 實作:先完成 DAL + BLL,再分別做 WinForm 與 WebForm 表現層
第 6 課:專案實戰複盤與驗收 (2hr)
- 分析公司現有專案:需求 → 架構 → 實作 → 部署 → 維運
- 總結 3 週學習:類別設計、架構模式、工具鏈、除錯、部署
- 驗收考試:給定新需求,限時完成架構分析 + 核心代碼實作
學生必備四大導航能力
| 能力 | 說明 | 訓練方式 |
|------|------|----------|
| **文檔導航** | Language Spec 中 Grammar Productions 快速跳躍、遞歸展開 | 第 1 課實作練習:給定語法規則,手寫解析流程 |
| **MSDN 導航** | 從搜尋/索引 → 類別 → 相關類別 → 返回主類別,進退自如 | 每課指定 MSDN 閱讀任務,限時找到特定資訊 |
| **代碼導航** | 多檔案中快速定位類別/成員宣告/定義、跨作用域跳躍 | VS「轉至定義」、「尋找所有參考」、「呼叫階層」實戰 |
| **網路搜尋** | 技術問題關鍵字提煉、優質社群識別 (StackOverflow, GitHub, 部落格) | 提供精選資源清單、實戰搜尋練習 |
進度監控與淘汰機制
- 每課次結束:隨機抽查學員代碼、口頭問答
- 第 3 課後:中間評估,未達標者加強輔導或勸退
- 第 6 課:驗收考試,綜合評分 < 60 分列為淘汰
- 導師制:每位資深工程師帶 2-3 位學員,每日 Code Review
常見誤區與修正
| 誤區 | 修正策略 |
|------|----------|
| 背誦語法卻不會建模 | 強制先畫類別圖,再寫代碼;Code Review 重點查架構 |
| 習慣複製貼上修修補補 | 禁止複製貼上,要求手寫核心邏輯;引導理解原理 |
| 遇到錯誤只會試錯 | 教授系統性偵錯:斷點、呼叫堆疊、即時運算、輸出視窗 |
| 不看英文文檔 | 強制使用英文 MSDN,配合翻譯工具,建立技術英文詞彙表 |
成果預期
- ✅ 理解物件導向核心:封裝、繼承、多型、介面、委派
- ✅ 能獨立完成:領域建模 → 類別實作 → 單元測試 → 組件編譯
- ✅ 熟練使用:VS 偵錯、重構、MSDN、原始碼控制 (TFS/Git)
- ✅ 具備:資料庫程式設計、三層架構、Web Service 基礎
- ✅ 擁有:技術文檔導航、問題搜尋、持續學習的自主能力
此方案經實戰驗證,能在極短時間內將具基礎的畢業生轉化為合格的 C# 初級工程師。關鍵在於架構優先、工具精通、實戰導向三大支柱,而非語法堆砌。