How to learn Python from scratch: a staged path and how to choose a Python course
To learn Python from scratch, move through four stages: language fundamentals, data structures and files, libraries and APIs, and then one applied branch such as data, automation or web. With about 6 to 8 hours a week, writing useful scripts on your own takes 8 to 12 weeks, and feeling comfortable in one branch takes 4 to 6 months. A good Python course has exercises in every module, uses a recent version of Python 3 and includes projects that go beyond copying code.
Why Python is a good first language, and when it is not
Python reads almost like pseudocode, ships with a broad standard library and works for very different jobs: data analysis, scripts that remove manual tasks, backends and machine learning. That makes it a good first language, because what you learn in the first weeks stays useful once you pick a specialty. At TintoDev our default backend is Node.js, and even so we tell people coming from finance, operations or research to start with Python: that is where the data tooling and a large share of AI material live.
It is not the best choice if your concrete goal is building web interfaces or mobile apps; JavaScript or TypeScript get you to a visible result sooner. You also do not need advanced maths to start. Basic logic is enough until you reach machine learning, and at that point it is worth reviewing statistics and linear algebra before opening your first model.
A staged path with rough timelines
The timelines below assume 6 to 8 hours of study a week, with real practice and not just videos. If you have half that time, double the weeks; if you study full time you can compress them, although understanding needs a few days of rest between topics. None of these numbers is a promise: people who already coded in another language move faster, and repeating a stage is normal.
What we do recommend is not moving to the next stage until you can solve the previous one’s exercises without help. Watching a topic explained is not the same as being able to use it, and the gap shows up exactly when the code gets harder. A simple test: close the course, open an empty file and write from memory a small program that uses what you covered that week.
- Stage 1, weeks 1 to 4: installation, variables, types, conditionals, loops and functions.
- Stage 2, weeks 5 to 8: lists, dictionaries, files, error handling, modules and virtual environments.
- Stage 3, weeks 9 to 12: basic classes, third-party libraries with pip and consuming APIs with JSON.
- Stage 4, weeks 13 to 24: one branch in depth, with two or three projects of your own.
Fundamentals you should not skip
The temptation is to jump straight to pandas or an AI framework because that is what shows up on social media. The problem arrives a few weeks later: the sample code runs, but when you need to change it you cannot tell what a list comprehension does, why a dictionary raises KeyError or what it means for a function to modify an object it received. Those details account for a large share of the bugs you will debug for years.
Also spend time on tools that courses tend to skim: the terminal, virtual environments with venv, Git to keep versions, and the habit of reading the full error message before searching for it. Knowing how to read a traceback from the bottom up saves more hours than any syntax shortcut. And get used from day one to writing code someone else can read, with clear names and short functions.
Pick one branch after the fundamentals
Python is very broad and nobody learns “all of Python”. After stage 3 it pays to choose a direction based on what you want to do with the language, because each branch has its own libraries and its own way of working. You can switch later without losing what you learned; what does not work is studying all four at once for months without finishing a single project.
- Data analysis: pandas, charts, notebooks and some SQL, which nearly always comes along.
- Automation: Excel and CSV files, HTTP requests, scheduled jobs and email.
- Web and APIs: a framework such as Django or FastAPI, databases and basic deployment.
- Machine learning: statistics, scikit-learn and, later on, neural networks.
Concrete practice projects
One project is worth more than three finished courses if it solves something you care about. The best starter projects are small, use real data and produce a result you can show. Keep each one in a repository with a README that explains what it does and how to run it: over time that repository says more about your level than a certificate when someone reviews your work.
- A script that sorts your downloads folder by file type and date.
- A reader for bank statements in CSV that sums spending by category and month.
- A program that queries a public weather or exchange-rate API and stores the history.
- An analysis of an open dataset from your city, with three written conclusions.
- A small FastAPI service that stores a to-do list in a database.
Common mistakes when learning Python
People who give up rarely do so for lack of ability; it is usually a study strategy that does not work. These are the patterns that come up most often when someone says they have been learning Python for months and still do not feel able to write their own program from an empty file.
Most of them share one root: confusing the feeling of understanding with the ability to do. A well-explained video leaves the impression that a topic is clear, and that impression collapses in front of the first empty file. That is why we suggest measuring progress by finished programs rather than hours of lessons, and going back to a topic whenever a project shows it is still shaky.
- Stacking courses without building anything outside them.
- Copying the code from the video instead of typing it and breaking it on purpose.
- Asking an AI assistant for the full solution before trying: it is useful to explain an error, not to skip the exercise.
- Installing libraries globally and mixing versions without virtual environments.
- Studying with Python 2 material or libraries whose usage has since changed.
How to choose a Python course
There are many Python courses and quality varies a lot. Before buying, open the full curriculum and the preview lessons: that is where you see whether the course explains the why or just dictates code. Check the last update date and that it uses a recent version of Python 3. Read the newest reviews, not only the average rating, because they reflect the current state of the content.
- Curriculum: it should cover stages 1 and 2 properly before moving on to specialised libraries.
- Language: if the course is not in your first language, check the page for subtitles you can follow.
- Freshness: a recent update date and current library versions.
- Exercises: challenges at the end of each module, with the solution explained.
Python’s limits worth knowing
Python is slow at raw computation compared with compiled languages; data libraries make up for it because they run C code underneath. It is not the natural tool for mobile apps or in-browser interfaces. And on large projects, dynamic typing forces you to be disciplined with tests and type hints. None of that disqualifies it as a first language, but knowing it saves frustration when a task does not fit.
Nor should you think of Python as the only language you will use. In practice, almost any Python job ends up touching SQL to query data, some terminal work to deploy and, if there is an interface, JavaScript. Learning a first language properly makes the second one much easier, because the underlying concepts repeat even when the syntax changes.
| Stage | Weeks | What you learn | Project to close the stage |
|---|---|---|---|
| 1. Fundamentals | 1 to 4 | Variables, types, conditionals, loops and functions | Number-guessing game with input validation |
| 2. Structures and files | 5 to 8 | Lists, dictionaries, files, errors and virtual environments | Downloads folder organiser |
| 3. Libraries and APIs | 9 to 12 | Classes, pip, HTTP requests and JSON | Exchange-rate history from a public API |
| 4. Chosen branch | 13 to 24 | Data, automation, web or machine learning in depth | Two or three projects of your own in a public repository |
Where the courses are
Frequently asked questions
How long does it take to learn Python from scratch?
With 6 to 8 hours a week, 8 to 12 weeks to write useful scripts on your own and 4 to 6 months to feel comfortable in one branch. If you study fewer hours, the timeline stretches accordingly. What speeds things up most is not watching more lessons but solving exercises without help.
Do I need maths to learn Python?
Not to start: high-school logic is enough for the fundamentals, automation and web work. If you are aiming at machine learning, it is worth reviewing statistics, probability and basic linear algebra. You can do that in parallel while you finish the early stages.
Can I learn Python with free resources only?
Yes, the official documentation and plenty of free tutorials cover the fundamentals. What a paid course usually adds is structure, graded exercises and a guided project. If you already have the discipline to build your own path, it is not essential.
What should I learn after Python?
SQL, almost always, because every branch ends up reading from or writing to a database. Git as well, if you are not fluent with it yet. After that it depends on the branch: statistics for data, a web framework for backend work or an automation tool such as n8n for processes.
Does a Python course in English work if my English is limited?
It can, if it has subtitles you can follow and the code is clearly visible on screen. Code is the same in any language; the hard part is the conceptual explanations. For stage 1 a course in your own language usually works better, while for advanced topics English material tends to be more current.
Some links in TintoDev Academy are affiliate links. If you make a purchase through them, TintoDev may earn a commission at no additional cost to you.
