0.7 學習路線圖

以下是 Level 0 全書 8 個單元的結構和依賴關係:

課程是線性的,請依照下面的順序學習,後面的單元會用到前面的觀念:

  • 第零單元:開始之前(你現在在這裡)— 課程定位、前置知識、心態準備
  • 第一單元:寫出你的第一支程式 — 工具、編輯器、Hello World、基本輸入輸出
  • 第二單元:資料型態與運算intlong long、運算式、整數溢位
  • 第三單元:條件判斷if/elsebool、邏輯運算子、變數範圍(scope)
  • 第四單元:迴圈whilefordo-whilebreak/continue、巢狀迴圈、TLE
  • 第五單元:線上評測系統(完整版) — OJ 介紹、判定結果、各大平台、讀題技巧
  • 第六單元:陣列 — 一維 / 多維陣列、const、MLE
  • 第七單元:函式 — 定義、回傳值、參數、pass by value

學習路線說明

  • 線性設計:後面的單元依賴前面的知識(例如第三單元需要第二單元的變數和運算)
  • 第五單元的特殊位置:OJ 介紹放在第四單元後,是因為到這時你已經寫過能跑的程式,對 OJ 的各種判定結果(AC、WA、TLE、MLE)會有實際體驗
  • 第六、七單元:陣列與函式是程式語言裡最基礎也最核心的兩個工具,幾乎之後每一支程式都會用到,先把它們學熟

大概要花多少時間?

每個人的節奏不同,但給你一個參考。本書(語法班,單元 1-7)對應的課後練習,光是「基礎題」就有 100 題上下,再加上每個單元的閱讀和進階練習:

  • 整體:在每週投入約 3 到 5 小時的前提下,走完單元 1-7 大約需要 2 到 4 個月
  • 每個單元:大約 1 到 2 週
  • 每一道基礎題:剛開始時,含閱讀、思考、打字、除錯,一題可能要花你 15 到 30 分鐘——這很正常,越往後你會越快。

不用跟別人比速度。重點是每一題都真的自己想過、自己打過、自己 debug 過,而不是趕進度。慢慢來,比較快。

你即將寫的第一支程式

來看一眼第一單元結尾你會寫的程式長什麼樣子:

#include <iostream>
using namespace std;
int main() {
    int A, B;
    cin >> A >> B;
    cout << A + B << endl;
    return 0;
}

這支程式做的事:讀入兩個整數,輸出它們的和。看不懂沒關係,第一單元會逐行解釋。