Skip to main content

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.

References