What should I learn after Python basics?
Not a framework. The four things that separate writing Python from being trusted with it are reading a traceback, handling the specific failure you expected, writing a test that fails first, and loading a real imperfect file without lying about what you skipped. Roughly seven hours, and they unlock everything else.
A ten-minute check across 17 Python skills that reports per skill, so what comes out is a list of what to skip rather than a score.
Find out which of these you haveThe honest answer is not a framework
Almost every version of this question gets answered with a name — Django, pandas, FastAPI, "learn a framework". That answer is popular because it is easy to give and it sounds like a plan, and it is usually wrong at this point, because a framework does not fix any of the things that are actually still missing.
What is missing after the basics is not more surface area. It is the handful of skills that turn code that runs on your machine into code somebody else can rely on — and those are the same four regardless of whether you are heading for web, data or scripting.
The four, in the order the graph puts them
These are not arbitrary. Each one has the earlier ones as a hard prerequisite in our own skill graph, which is why the order is not a matter of preference — you cannot handle an exception well without first being able to read the traceback that told you which one to handle.
- Reading a traceback — one hour. Locate the cause of a failure and say which line is at fault. It has no prerequisites at all and almost nobody teaches it deliberately.
- Exceptions — two hours. Handle the specific failure you expected without hiding the ones you did not. The gap between this and a bare `except` is most of what "production code" means at this level.
- Writing tests — two and a half hours. Write a test that fails for the right reason *before* the code is fixed. This is the one that changes how you work rather than what you know, and one library covers it.[^pytest]
- Structured data — two and a half hours. Load a real, imperfect file and produce a summary that states what it skipped. Real files are broken; the skill is being honest about it in the output.
The one that is not on the list and should be
Mutable default arguments. One hour, and it is the clearest example of the kind of thing that separates the two groups: a function that quietly shares one list between every call that omitted the argument. It is not hard, it is not obscure, and it is invisible until it costs you an afternoon.
Its prerequisites are defining functions and understanding names and references, and that second one is the interesting half: it is about a model of what a name is rather than about syntax you can demonstrate on a slide. Our course treats it as a `core` skill with its own can-do statement — predict whether a change through one name is visible through another — and of 17 skills, it is the one whose absence explains the most downstream confusion.
Then pick a direction, and only then
Once those five hold, the framework question becomes answerable, because it stops being "what should I learn" and becomes "what am I trying to build". Data work goes towards pandas and SQL; web work towards a framework and HTTP; automation towards files, paths and scheduling. Let a formatter handle style rather than arguing about it.4
If the answer is data, the ordering is worth knowing: SQL is 47 hours against Python's 30, it is the thing most analysis jobs actually ask for, and it is genuinely independent — you can do it in parallel rather than after. The official tutorial and the standard library index remain the two best free references for everything else.12
Sources, and what each is worth
Questions that come with this one
Should I learn pandas or SQL first?
SQL, if you have to choose. It is asked for more often, it is 47 hours end to end, and the ideas transfer into pandas afterwards more cleanly than they transfer the other way.
Do I need to learn object-oriented programming next?
Not next. Classes make sense once you have written enough functions to feel the thing they solve. Learned before that, they become a shape you apply to everything rather than a tool you reach for.
How do I know I have actually finished the basics?
When you can write a function with a clear signature that returns rather than prints, predict what a condition does when the value is zero or empty, and read a traceback without guessing. Those three are the line.
Is it worth learning a framework to get a job?
Eventually, and not instead of the four above. A framework you can use but cannot debug is the state that interviews are unusually good at finding.
Put this into practice
Reading about how to learn is the easy half. Tell us what you are actually trying to get good at, and we will build the path — the skills in the order they depend on each other, and marked work to prove you got there.
Build my path