Fundamentals · Lesson 1 of 94

Welcome and course overview

Watch this lesson

View full playlist ↗

Read the lesson

What you'll learn

Concept

Welcome. I'm glad you're here, and I mean that in a specific way: you have decided to learn something that will change what you can do, and most people never take that step. Whatever brought you here, a career change, a project you cannot get out of your head, curiosity, or a job that quietly needs more than spreadsheets, this course was built for exactly that starting point.

Welcome and course overview: You, today → One lesson a day → Small programs → Real projects → Production-ready developer
Welcome and course overview · Figure 1 · Open for full size

Let me set one thing straight before anything else. You do not need to be good at math, you do not need a computer science degree, and you do not need to be a particular kind of person. Programming is a craft. Like any craft it rewards practice over talent, and the practice here is small and daily. If you can follow a recipe and notice when something went wrong, you have everything this course requires.

You need You do not need
A computer you can install software on A computer science degree
Patience with error messages Math beyond arithmetic
Twenty minutes a day Any previous programming

Here is where you are going. By the end you will read and write idiomatic Python, structure a real project, test it, package it, and work on a codebase that other people depend on. Not toy code: the kind that a team would let you ship. A year from now you may be automating your own work, building a product, or sitting in your first developer job, and the path there starts with the very ordinary lessons ahead.

Welcome and course overview: Read code → Write code → Structure a project → Test it → Package it → Ship it
Welcome and course overview · Figure 2 · Open for full size

Why Python? Because it is the language most people can actually get things done in. It runs the back ends of large websites, the data pipelines behind machine learning, the scripts that keep servers healthy, and the automation that saves an office a week of clicking. It is the default language for AI work in 2026, it is in the top three languages employers ask for, and it reads almost like English, which means your early mistakes are easy to see and easy to fix.

Welcome and course overview: Web back ends → Data and machine learning → AI applications → Automation and scripting → DevOps and infrastructure
Welcome and course overview · Figure 3 · Open for full size

The course has four levels. Each one ends with a project that puts the level's ideas to work, and every project is something you can show to another person.

Welcome and course overview: Fundamentals → Beginner → Advanced → Expert → Production-ready
Welcome and course overview · Figure 4 · Open for full size

Here is what each level gives you, and roughly how long it takes if you do one lesson a day.

Level You come out able to Lessons
Fundamentals Write small programs with variables, loops, functions 21
Beginner Organize code into files, objects, and classes, handle real data 28
Advanced Write idiomatic, typed, tested Python 22
Expert Ship, package, secure, and maintain production code 19

Every lesson has the same shape, so you always know where you are: what you will learn, the idea in plain words, real code with its real output, one exercise, the mistakes people make, and a short recap. The code you see was actually run, and the output shown is what it printed. Nothing is faked.

Welcome and course overview: What you'll learn → Concept → Code + real output → Try it yourself → Common mistakes → Recap
Welcome and course overview · Figure 5 · Open for full size

To get the most out of it, work in this order. Watch or read a lesson once without touching the keyboard. Then type the code yourself, run it, and compare your output with the lesson's. Then do the exercise before looking at anything else. One lesson a day is a good pace: fast enough to keep momentum, slow enough that each idea has a night to settle. If a lesson feels easy, do the exercise anyway and add one twist of your own.

Welcome and course overview: Watch or read once → Type the code yourself → Run it and compare output → Do the exercise → Next lesson tomorrow
Welcome and course overview · Figure 6 · Open for full size

You will also make mistakes, constantly, and that is the point. Every SyntaxError, NameError, and TypeError in this course is one you will meet again in real work, and a whole lesson is dedicated to reading a Traceback calmly. Treat a red traceback as information, not as a verdict.

Code

You do not need to understand this yet. It is here so you can see where you are heading: a small, readable piece of Python that a team could ship. By the Advanced level every line of it will make sense.

# preview.py
from dataclasses import dataclass


@dataclass
class Expense:
    description: str
    amount: float


def total(expenses: list[Expense]) -> float:
    return sum(e.amount for e in expenses)


bills = [Expense("rent", 950.0), Expense("internet", 40.0)]
print(f"{len(bills)} expenses, total {total(bills):.2f}")
Output
2 expenses, total 990.00

Try it yourself

Decide, right now, what you want to build by the end of this course. It can be tiny: a script that renames your photos, a tool that tracks your spending, a bot that posts a daily reminder. Write it down in one sentence and keep it near your keyboard. Every time a lesson feels abstract, ask how it moves you toward that sentence.

Common mistakes

What's next

You know where you are going and why, and you know you can get there. The next step is practical: getting Python installed, choosing an editor, and running your very first program.

Course overview