Developer pillar · Module 1 of 6

Programming fundamentals

Every language has its own syntax, but the underlying concepts are universal. Master these, and learning new languages becomes much easier.

← Back to Developer Fundamentals Training

Controls stack visual kit

Reusable icons and a telemetry-to-audit diagram aligned to our fundamentals and operational guides.

Governance evidence

Use for control statements that cite ISO/IEC 42001 clause 6.3 change management, EU AI Act Articles 62–75, and SOC 2 trust service criteria.

Secure supply chain

Pair with SBOM, provenance, and intake guidance that references SPDX or CycloneDX formats, SLSA Level 3 attestations, and NIST SSDF tasks PS.3/PO.4.

Telemetry & evaluations

Highlight logging of prompts, responses, refusal rates, and safety filters alongside adversarial evaluation suites from NIST AI RMF playbooks or UK AISI guidance.

Assurance & resilience

Use for incident response and assurance artefacts that must meet OMB M-24-10 24-hour notifications, CIRCIA’s 72-hour clocks, and serious-incident duties under the EU AI Act.

Signals Controls Evidence Audit
  • Signals: prompt traces, supplier advisories, and safety filter activations streamed into monitoring.
  • Controls: guardrails, change review, SBOM validation, and access enforcement tied to AI lifecycle gates.
  • Evidence: runbooks that capture artefacts for ISO/IEC 42001 management reviews and SOC 2 narratives.
  • Audit: regulator-facing packets that satisfy EU AI Act post-market monitoring, OMB M-24-10, and CIRCIA timelines.

1.1 The core concepts

These building blocks appear in virtually every programming language:

  • Variables. Named containers for data. name = "Alice" stores a string. count = 42 stores a number. Think of them as labelled boxes.
  • Data types. What kind of data: strings (text), numbers (integers and floats), booleans (true/false), arrays (lists), objects (key-value pairs).
  • Control flow. Making decisions: if/else statements, switch cases. “If this is true, do that. Otherwise, do something else.”
  • Loops. Repeating actions: for loops (run N times), while loops (run until condition is false). “Do this 100 times” or “keep going until we’re done.”
  • Functions. Reusable chunks of code. Define once, call many times. Functions take inputs (parameters), do something, and return outputs. Essential for organisation.

1.2 Programming paradigms

Different ways of thinking about and organising code:

Procedural

Step-by-step instructions. Do this, then this, then this. C is the classic example. Simple and direct, but can get messy in large programs.

Object-oriented (OOP)

Organise code around “objects” that combine data and behaviour. A Car object has properties (colour, speed) and methods (start, stop). Java, Python, and C# are OOP languages.

Functional

Focus on pure functions and immutable data. Avoid side effects. Makes code predictable and testable. Haskell is purely functional; JavaScript and Python support functional styles.

Reality

Most modern languages support multiple paradigms. You’ll mix and match. The best developers are fluent in different styles and pick the right tool for each job.

💡 The honest truth

Programming is a skill you learn by doing, not reading. You can read about swimming forever, but you won’t learn until you get in the water. Same with code. Build things. Break things. The learning happens in the struggle.

Free resources to learn