Programming essentials
Overview
Programming is the practice of precisely describing computation: data, control flow, abstractions, and interfaces that machines (and other humans) can follow. Most mainstream languages share the same building blocks—types, functions, modules, and memory or runtime models—even when syntax differs.
How topics connect
Key concepts (checklist)
Data types — boolean, int, float, char, strings
Data structures — arrays, objects, linked lists, hash maps
Constants — immutable bindings where the language allows
Logical operations — equals, greater than, less than, AND, OR, ternary, nullish coalescing
Arithmetic — sum, subtract, multiply, divide, modulo
Branching — switch / case / break / default
Loops — for, while, do…while
Functions — parameters, return values, closures (language-dependent)
OOP — namespaces, classes, attributes and methods, access modifiers, constructors, encapsulation (get/set), inheritance, polymorphism, abstraction, interfaces, iterators
Built-ins — string, array, and object helpers provided by the standard library
Sample: same idea in two languages
// JavaScript — first-class functions + array methods
const prices = [12, 7, 21];
const withTax = prices.map((p) => p * 1.1);
console.log(withTax.reduce((a, b) => a + b, 0));
# Python — list comprehensions + sum
prices = [12, 7, 21]
with_tax = [p * 1.1 for p in prices]
print(sum(with_tax))
History & paradigms
- History — From machine/assembly code to high-level languages, managed runtimes, and browser-based platforms.
- Paradigms — Imperative, object-oriented, functional, logic, and concurrent models—often mixed in real codebases.