Software Learning Lab

PROGRAMMING CORE

程式語言到底在做什麼?

先不要急著背 JavaScript、C++、TypeScript、Kotlin 的語法。它們都是把「你想讓電腦做的規則」寫成某種 source code,差別在於誰讀這些 source、什麼時候檢查、最後在哪個 runtime 執行。

先抓住共同骨架

1 · Source code你寫的 if、loop、function、class
2 · Parser / Compiler / Tooling先判斷語法,可能再做 type check / compile
3 · RuntimeBrowser、Node、Native process、Android Runtime
4 · State / Memory變數、object、stack、heap、UI state
5 · Side effect畫面、檔案、network、database、console

看任何語言都固定問:誰讀 source?誰真正執行?input 是什麼?state 怎麼變?output / side effect 是什麼?錯誤會在哪一層被發現?

四種語言在這個網站裡各自負責什麼?

JAVASCRIPT

先學「程式怎麼活起來」

最適合直接看到 event、DOM、API、state 改變。你按按鈕、改資料、送 request,都能立即看到結果。

.js source→ Browser / Node→ UI / API / data
進 JavaScript Course Overview →

C++

看清楚「編譯、型別、記憶體」

C++ 讓 compiler、executable、process、reference、pointer 這些底層概念變得可見。它不是因為 Web 一定要用 C++,而是用來補 execution / memory mental model。

.cpp source→ compiler/linker→ executable→ OS process
進 C++ Course Overview →

TYPESCRIPT

在 JavaScript 前面加一層「可檢查的契約」

TypeScript 的重點不是多寫冒號,而是在 build / development 階段提早發現型別與資料形狀不一致。最後通常仍輸出 JavaScript 給 Browser / Node 執行。

.ts source→ type check / emit→ JavaScript→ Browser / Node
進 TypeScript Course Overview →

KOTLIN

把同樣的程式觀念搬到 Android / JVM 世界

你仍然會遇到 value、type、if、function、collection、async;只是語法、型別系統與 runtime 不同。Android 再加上 lifecycle、permission、UI state。

.kt source→ compiler→ JVM / Android bytecode→ Android runtime
進 Kotlin / Android Course Overview →

不要把語言名字當成四套完全不同知識

共同問題JavaScriptC++TypeScriptKotlin
變數let / constint xlet x: numberval / var
條件ifififif / when
函式functionreturn type + functionJS function + typesfun
集合Array / Objectvector / struct / classArray / typed objectList / Map / data class
主要檢查時點很多錯誤到 runtime 才出現大量 compile-time 檢查type check + JavaScript runtimecompile-time + runtime
這條線主要要學什麼資料流、DOM、event、asynccompile、memory、referencecontracts、narrowing、toolingnull safety、coroutine、Android

真正建議的順序

STEP 1

先把 JavaScript 36–43 學完整

因為 Browser 能馬上讓你看到 state、event、DOM、network,最適合建立「程式正在做什麼」的直覺。

STEP 2

再用 C++ 補 compile / memory

當你已經懂 function / array,再看 reference、pointer、stack/heap 才不會只剩符號。

STEP 3

再進 TypeScript / React

先有 JavaScript runtime 基礎,才知道 TypeScript 解的是 build-time 問題、React 解的是 UI state / rendering 問題。

STEP 4

Kotlin / Android 放在 mobile 需求出現時

不是因為 Kotlin 比 JavaScript「更進階」,而是它服務不同 runtime 與平台。

你真正要追求的不是「會幾種語言」

看到陌生 code 時,你能說出 execution order、data shape、state change、function contract、failure evidence;這些能力能跨語言搬運。語法只是表達方式。