Skip to content

Learn how software and AI systems work by reading and building them.

Structured courses with annotated code, diagrams and exercises. Free, in English, with the interface in English and Bahasa Indonesia.

cart.ts
type Item = { name: string; price: number; quantity: number };const cart: Item[] = [  { name: "Notebook", price: 15000, quantity: 2 },  { name: "Pen", price: 5000, quantity: 0 },  { name: "Bag", price: 120000, quantity: 1 },];const lines = cart.filter((item) => item.quantity > 0);1const subtotals = lines.map((item) => item.price * item.quantity);2const total = subtotals.reduce((sum, value) => sum + value, 0);3console.log(total); // 150000
  1. filter keeps the items for which the function returns true. Out goes the pen.
  2. map turns each item into something new: here, a number.
  3. reduce walks the list once and carries a running value forward. Starting at 0 keeps the result a number even for an empty cart.
From the lesson “Arrays and objects”

Two beginner courses, one per track. Read them in either order.

See all courses
  • Software Engineering

    JavaScript & TypeScript Foundations

    Learn the parts of JavaScript you use every day, then add TypeScript so your editor catches mistakes before your users do. Ends with a small typed project.

    Level
    Beginner
    Time
    10 lessons, 2 h 16 min
    Languages
    English
  • AI EngineeringIn progress

    Generative AI Fundamentals

    How language models produce text, what tokens and context are, how to prompt well, and where these systems fall short. No maths degree required.

    Level
    Beginner
    Time
    4 lessons, 33 min
    Languages
    English

Two tracks

Concept, code, build

  1. Concept

    Each lesson explains one idea in plain language, with the why and the trade-offs in the margin.

  2. Code

    Annotated examples you can run, and short exercises with solutions to check yourself.

  3. Build

    Courses end with a small project that puts the pieces together into something real.