After this lesson, you will be able to: Compare programming languages along the dimensions that matter (compiled vs interpreted, statically vs dynamically typed, memory model) and pick a language for a given problem.
Programming Languages is a parent track. Each sub-track teaches ONE language at a professional level. Pick by your goal: get a job (JS/TS/Python/SQL), grow into systems work (C/C++), or work in the Microsoft stack (C#).
This is a free introductory lesson. No purchase required.
Compiled (C, C++, Go, Rust): source → machine code ahead of time. Fast at runtime; no runtime dependency. Interpreted (Python, Ruby, JavaScript classic): source executed by a runtime VM. Slower; faster to iterate. JIT-compiled (Java, C#, modern JS engines): compiled to bytecode then optimized at runtime. Middle ground. TypeScript is special: compiled to JavaScript (no runtime types).
Statically typed (TS, C, C++, C#, Java, Go, Rust): types known at compile time. Catches errors early; better tooling. Dynamically typed (Python, Ruby, JS classic): types checked at runtime. Faster to prototype; more runtime bugs. Gradual typing (Python with type hints + mypy, JS with JSDoc + checkJs): start dynamic, add types as the code matures.
Job market depth: Python + JS/TS + SQL cover 80% of postings. Web frontend / full-stack: TS + React + Node. Data + ML + scripting: Python. Backend / scale: Python, TS, Go, Java, C#. Systems / embedded / games: C, C++, Rust. Microsoft enterprise / Unity games: C#. Database fluency: SQL is universal, every backend engineer needs it.