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.