JAVASCRIPT
先學「程式怎麼活起來」
最適合直接看到 event、DOM、API、state 改變。你按按鈕、改資料、送 request,都能立即看到結果。
PROGRAMMING CORE
先不要急著背 JavaScript、C++、TypeScript、Kotlin 的語法。它們都是把「你想讓電腦做的規則」寫成某種 source code,差別在於誰讀這些 source、什麼時候檢查、最後在哪個 runtime 執行。
看任何語言都固定問:誰讀 source?誰真正執行?input 是什麼?state 怎麼變?output / side effect 是什麼?錯誤會在哪一層被發現?
JAVASCRIPT
最適合直接看到 event、DOM、API、state 改變。你按按鈕、改資料、送 request,都能立即看到結果。
C++
C++ 讓 compiler、executable、process、reference、pointer 這些底層概念變得可見。它不是因為 Web 一定要用 C++,而是用來補 execution / memory mental model。
TYPESCRIPT
TypeScript 的重點不是多寫冒號,而是在 build / development 階段提早發現型別與資料形狀不一致。最後通常仍輸出 JavaScript 給 Browser / Node 執行。
KOTLIN
你仍然會遇到 value、type、if、function、collection、async;只是語法、型別系統與 runtime 不同。Android 再加上 lifecycle、permission、UI state。
| 共同問題 | JavaScript | C++ | TypeScript | Kotlin |
|---|---|---|---|---|
| 變數 | let / const | int x | let x: number | val / var |
| 條件 | if | if | if | if / when |
| 函式 | function | return type + function | JS function + types | fun |
| 集合 | Array / Object | vector / struct / class | Array / typed object | List / Map / data class |
| 主要檢查時點 | 很多錯誤到 runtime 才出現 | 大量 compile-time 檢查 | type check + JavaScript runtime | compile-time + runtime |
| 這條線主要要學什麼 | 資料流、DOM、event、async | compile、memory、reference | contracts、narrowing、tooling | null safety、coroutine、Android |
因為 Browser 能馬上讓你看到 state、event、DOM、network,最適合建立「程式正在做什麼」的直覺。
當你已經懂 function / array,再看 reference、pointer、stack/heap 才不會只剩符號。
先有 JavaScript runtime 基礎,才知道 TypeScript 解的是 build-time 問題、React 解的是 UI state / rendering 問題。
不是因為 Kotlin 比 JavaScript「更進階」,而是它服務不同 runtime 與平台。
看到陌生 code 時,你能說出 execution order、data shape、state change、function contract、failure evidence;這些能力能跨語言搬運。語法只是表達方式。