Skip to content

00 - Introduction

What this session is

A 10-minute read. No code yet. The point is to set expectations honestly so you can decide if this path is for you.

What you're going to build, eventually

Programming is not a thing you watch - it's a thing you do. By the end of this path, you'll have done all of these:

  • Written and run small programs that print, calculate, and make decisions.
  • Built a little command-line script that takes input and produces output.
  • Written tests for your own code and watched them pass and fail.
  • Cloned an open-source Python project off the internet, browsed its code, run its tests, and understood roughly what it does.
  • Submitted a small fix to one of those open-source projects as a real pull request.

That last point is the goal. Everything else is preparation.

The deal we're making

A few things you should know about how this path works:

It's slow on purpose. Most beginner Python tutorials drop you into "build a Flask app" by page three. That works for some people. For most, it leaves them able to copy code without understanding it. This path is the opposite: one concept per page, with time to actually internalize each one.

It assumes nothing. If a word appears that you haven't seen, it'll be defined right there. No glossary lookups. No "see chapter 12."

It does the work where the work is. Some pages are short because the concept is small. Some are long because the concept is hard. We don't pad.

You have to type the code. Reading code without typing it has roughly the same effect as reading sheet music without playing it. Type every example, even when you "get it" from reading.

You will be confused. Often. Especially in the first month. That's normal. Programming is unusual in how often you feel stuck - the trick is not to panic when it happens. Re-read the page. Run the code. Change one thing and see what changes. Confusion is not a sign you're bad at this; it's a sign you're doing it.

What you need to start

  • A computer. Any operating system works.
  • A text editor. VS Code is free, multi-platform, and what I'd suggest unless you already love something else.
  • A terminal. (On macOS it's the Terminal app. On Windows it's PowerShell or the Windows Terminal app. On Linux you already know.)
  • ~5 hours per week. Less is fine; the path just takes longer.
  • A specific notebook or text file where you can write down questions as they come up. You'll have lots. Writing them down lets you keep going past them; when you come back you can answer them with what you've since learned.

What you do NOT need

  • Math beyond basic arithmetic. Programming uses arithmetic; it's not "advanced math."
  • A computer-science degree, or any plan to get one.
  • A "gift" for computers. There is no such thing. People who seem to "just get it" have spent more hours doing it than you have. That's all.
  • To know any other programming language first. Python is a fine first language - arguably the best.

How long this realistically takes

The honest answer: 4 to 6 months at 5 focused hours per week, to get to the "submit a pull request" goal.

If you have less time, take longer. If you have more time, take less. The path doesn't expire.

I cannot make the time go faster. Nobody can. The thing that takes weeks is not "absorbing information" - it's your brain getting used to a new way of thinking. That happens at biology speed, not internet speed.

What success looks like at the end

You'll be able to:

  • Open a Python file you've never seen and read it like a recipe - knowing what each piece does.
  • Open a project on GitHub written in Python and tell me, in two paragraphs, what it does and how.
  • Find a small bug or missing feature in such a project and fix it.
  • Submit that fix as a pull request that follows the project's conventions.

You will not be able to:

  • Build a self-driving car. (Not in 6 months. Maybe ever - that's its own multi-year career.)
  • Win Kaggle competitions. (Different skill, mostly orthogonal.)
  • Tell people you're a "senior Python engineer." (That takes years of doing the work after this path ends.)

What you will have: the foundation to keep going.

One last thing before we start

If at any point a page feels too dense, stop and re-read it. If you re-read it and it's still too dense, that's a bug in the page - note it, skip forward, and come back. The path is alive; it gets fixed when readers say "this part lost me."

Ready? Next: Setup →

Comments