Learning track

Programming

Programming does not finish at the end of a course; it settles in by building small things and breaking them. AI has shortened the path, though not in the way it is advertised: writing code got cheap and reading code got expensive.

  • 14 lessons
  • Free, no signup

Five stages, from nothing to a program that works

No background neededA program that really works
  1. Foundation

    What a program is and how code runs

    The first two lessons of this path. Without them the rest is memorising, not understanding.

  2. Start

    One language, and the first program that works

    Which language matters less than you think; not swapping it every fortnight matters more.

  3. Structure

    Variables, conditions, loops, functions

    The four things that repeat in every language. After them a second language takes days, not months.

  4. Real work

    Data, Git and APIs

    Where a program turns from a one-person file into something that talks to the rest of the world.

  5. Getting good

    Debugging and working with AI

    The fastest part of the path, provided you have genuinely walked the four before it.

These stages have an order but no timetable. Someone writing code for half an hour every day gets ahead of someone doing six hours at the weekend, and no stage can be passed without writing code.

The path, step by step

Lessons are ordered so each stands on the previous one. You can also jump in anywhere.

  1. 1What programming actually isProgramming means writing a list of instructions that a computer follows in that order and exactly as written, without guessing what you meant. The real work is not the writing: it is turning something vague in your head into sentences that leave no room for interpretation.Beginner
  2. 2How code actually runsThe code you write is only text, and a processor does not read text; before anything can happen it has to be translated into a form the machine can execute. Languages differ in when that translation happens and where its result is kept, and most of the confusing errors come from exactly that difference.Beginner
  3. 3Which programming language should you learn?Pick your first language from what you want to build, not from a popularity list: PHP and JavaScript for websites and freelance work, Python for data and AI, Kotlin and Swift or Flutter for mobile. The second language comes far faster than the first, so this decision matters less than it feels.Beginner
  4. 4Python for beginnersYou install Python from python.org, make a file ending in py, and run it with one command in a terminal. By the end of this lesson you will have written a real program that measures the length of a text, and you will know how to read a Python error from the bottom up.Beginner
  5. 5Variables and data typesA variable is a name you give a value so that you can call it up later, and the type of that value decides what can be done with it: numbers add, strings join, and adding one to the other raises an error. The hardest data type bugs are not the ones that raise an error; they are the ones that pass quietly and print a wrong number.Beginner
  6. 6Conditions and loopsA condition is a yes or no question a program asks itself at a fork, and a loop is work that repeats for as long as some condition holds. Almost every program you will ever write is a combination of those two, and the hardest bugs land exactly where they meet.Beginner
  7. 7What a function isA function means gathering a few lines of code in one place, giving them a name, and from then on calling that name instead of repeating the lines. Its real value is not saving typing; it is that every decision made inside it now lives in exactly one place.Beginner
  8. 8Data structures, at working levelA data structure is the shape you keep several things in together, and choosing one is really choosing which question about that data gets a fast answer later. The three shapes that cover ninety percent of everyday work are the list, the dictionary and the set, and what separates them is not what they store but what they find cheaply.Beginner
  9. 9Git and GitHub, from the beginningGit is a program on your own computer that, whenever you tell it to, keeps a dated snapshot of your project along with a note, and later lets you return to any of those snapshots. GitHub is one of the places you can keep a copy of that history; git itself works perfectly with no internet and no account.Beginner
  10. 10Databases and SQL, the basicsA database is a program that keeps your data in tables of rows and columns and lets several programs read from it and write to it at the same time without ruining each other's work. SQL is the language you use to say what you want: <code>SELECT</code> to read, <code>INSERT</code> to add and <code>UPDATE</code> to change.Beginner
  11. 11What an API isAn API is the contract two programs talk through: one sends a request in an agreed shape and the other returns a response in an agreed shape, without either needing to know how the other works inside. Almost anything on the web whose button you press and that brings data from somewhere else has an API behind it.Beginner
  12. 12How to debugDebugging means shrinking "it is broken" step by step until you reach one line; the fix itself usually takes seconds, and what takes time is getting to that line. What makes the shrinking possible is neither a tool nor experience, but a reliable repro: until you can produce the failure whenever you want, every change you make is a guess.Beginner
  13. 13Coding with AIToday models write code that runs, but code that runs is not the same as code that is right, and the gap between the two is what stays with you. The professional move is not asking better questions; it is arranging a workflow where every piece of code is small, reviewable and tested before it reaches the main branch.Intermediate
  14. 14Vibe coding: the upside and the risks<dfn>Vibe coding</dfn> means building software from prompts and not reading the code that comes out; you look at the result, say it again differently if it is not what you wanted, and the code stays a black box. For a prototype, an internal tool or learning, that is a good trade; for anything with real users and real data, you pay the cost somewhere else, usually later.Intermediate
A half-built white glass machine on a black bench with scattered red and green parts and a cracked earlier attempt

The order of these lessons is a choice and it is worth stating why. Most Persian courses start with installing Python and printing a sentence, and three weeks later the learner is stuck on something nobody taught them: reading an error message. So we start with what a program actually is and what route your code travels before it reaches the processor, and only then move to a language and its syntax.

The goal of this path is not a job, it is a capability: being able to hand a repetitive task to a computer, read someone else's code, and know which layer to look at when something stops working. If you go looking for work afterwards there is a route for that, but this path does not promise it and nobody honest should.

One thing course advertising leaves out: plenty of people who come to programming actually want a website or one simple tool, and do not need to become programmers at all. If a website is what you want, the web design path is shorter and more direct. This one is for someone who wants to understand what happens underneath.

Real follow-up questions

Do I need to be good at maths to program?

For most work, no. What is genuinely needed is the patience to follow a logical chain: if this, then that. Serious maths becomes necessary when you move into graphics, cryptography or machine learning, and on that day you will know which part of it to read.

With AI around, is it still worth learning to program?

Yes, but the reason has changed. You used to learn so you could write code; now you learn so you can read the code you are handed, judge it and take responsibility for it. Someone without that accepts any output and then cannot say why it does not work.

How long until I can get paid work from programming?

Any number we give you is a guess, so we will not give one. What can be said is this: clients want work you have done, not a course certificate, and the smallest tool you built for a real person is worth more than ten hours of video. Build that tool early so you find out sooner where you stand.

This path is written for someone who wants to build it themselves. If what you need is a working piece of software and you do not have the time to build it, see the app development service page