Python Complete Foundation
Learn Python properly, from your first line of code to writing programs you would not be embarrassed to show an employer.
Most Python tutorials teach you syntax and stop. You finish knowing what a for loop looks like but with no idea how to structure a program, handle an error sensibly, or write something a teammate could read.
This course goes further. You will write real programs from the second module, make the mistakes deliberately so you recognise them later, and finish able to build a small command-line application from scratch with tests around it.
Every lesson has something to type. Reading about Python does not make you a programmer — the practice at the end of each lesson is the part that matters.
Who this is for
- Complete beginners with no programming background
- Students who have learnt some Python in college but cannot yet build anything on their own
- Anyone joining our Full-Stack track who needs Python before Django
What you need first
- A computer with at least 4 GB RAM running Windows, macOS or Linux
- A reliable internet connection for the initial setup
- No prior programming experience required
Tools you will use
By the end you can
- Read and write Python confidently, including the parts beginners usually avoid
- Choose the right data structure for a problem instead of using lists for everything
- Structure a program across multiple files and modules
- Handle errors deliberately rather than letting programs crash
- Read and write files, and work with JSON and CSV data
- Write classes when they help and avoid them when they do not
- Write tests with pytest and understand why they save you time
- Set up a virtual environment and manage dependencies like a professional
11 modules, 63 lessons
Work through these in order. Each lesson is short enough to finish in one sitting and ends with something to build, not a quiz.
- 1
Getting Started
Get Python running on your machine and understand what is actually happening when you run a program.
- 2
Variables and Data Types
The building blocks. Strings, numbers, booleans, and why type matters more than beginners expect.
- 3
Control Flow
Making decisions and repeating work — the point where a script becomes a program.
- 4
Data Structures
Lists, dictionaries, tuples and sets — and how to pick the right one instead of defaulting to a list.
- Lists: creating, indexing, slicing25 min
- List methods you will actually use20 min
- Dictionaries: the workhorse of Python25 min
- Tuples and when immutability helps15 min
- Sets and fast membership testing15 min
- Nested structures and working with real-world data25 min
- List and dictionary comprehensions25 min
- Choosing the right structure: a decision guide20 min
- 5
Functions
Writing reusable code, and understanding scope — the concept that trips up most self-taught beginners.
- Defining and calling functions20 min
- Arguments: positional, keyword and default25 min
- Return values, and functions that return nothing15 min
- Scope: local, global, and why your variable is not changing25 min
- *args and **kwargs20 min
- Docstrings and type hints20 min
- Practice: refactoring a messy script into functions30 min
- 6
Errors and Debugging
Reading a traceback, handling failure deliberately, and finding bugs without guessing.
- 7
Files and Data
Reading and writing real data — the point where your programs start being useful.
- 8
Modules, Packages and Environments
Splitting code across files, using other people’s code, and keeping projects isolated.
- 9
Object-Oriented Python
Classes explained without the jargon — including when you should not use them.
- Why classes exist, explained with a real problemComing soon
- Defining a class, __init__ and selfComing soon
- Methods, attributes and encapsulationComing soon
- Inheritance and compositionComing soon
- Dunder methods: making your objects behave like built-insComing soon
- Dataclasses: less boilerplateComing soon
- When a function is the better answerComing soon
- 10
Testing and Code Quality
Writing tests, formatting code, and the habits that separate a hobbyist from a professional.
- Why tests save you time, with a worked exampleComing soon
- pytest: writing your first testsComing soon
- Arrange, act, assert and good test namesComing soon
- Formatting and linting with RuffComing soon
- Git basics for a Python projectComing soon
- 11
Capstone Project
Build a complete command-line application from scratch, with tests and a README.
- The brief: an expense trackerComing soon
- Planning before you codeComing soon
- Building it step by stepComing soon
- Adding testsComing soon
- Polish, README and publishing to GitHubComing soon
Learning this with a mentor is faster
Our internship programme is free and fully remote. You get this curriculum, real project work, and code review from working developers.