
Lecture overview
Welcome to the course! In this opening lecture we walk through the complete roadmap of what you are going to learn and build. You will see how the course moves from core Python and data libraries, through AI-assisted development and API fundamentals, into three full backend paths (Django, FastAPI and Flask), the frontend stack (HTML, CSS, JavaScript and React), containerisation with Docker, and finally real-world, production-style projects such as an authentication starter kit, a Supabase starter kit, a local LLM web application and a vibe-coded video editor.
What you will learn
Why this matters
Knowing the full map before you start helps you plan your learning time, understand why each topic is introduced when it is, and stay motivated when you reach the more demanding architecture and deployment sections.
Practice task
Write down the two or three outcomes you most want from this course (for example: build a production API, move into a full-stack role, ship an AI-powered product). Revisit this list at the end of every major section to track your progress.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Course Introduction, Vision and getting started. This first section lays the foundation for everything that follows: it sets the architect-level mindset of the course, gets your development environment ready, and gives you a fast but solid refresher of core Python together with the basics of AI-assisted development. It opens this section and sets the direction for the lectures that follow, and prepares you for the next lecture, Architect-level focus, AI first development, what.
Tips for getting the most out of it
Lecture overview
This lecture explains the philosophy behind the course: we are not aiming to make you a Python coder who only writes syntax, but a Python architect who designs systems, makes technology decisions and uses AI tools as a force multiplier. We discuss what AI-first development really means in practice, where AI assistants genuinely help, where they introduce risk, and how an architect stays in control of the code that AI produces.
What you will learn
Why this matters
Employers increasingly expect developers to work productively with AI tools, but they also expect them to catch the mistakes those tools make. An architect-level view lets you use AI for speed while keeping quality, security and maintainability under your control.
Practice task
Think of a small application you would like to build. Write one paragraph describing it as a coder would (features only) and one paragraph describing it as an architect would (components, data flow, risks). Compare the two.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Course Introduction, Vision and getting started. This first section lays the foundation for everything that follows: it sets the architect-level mindset of the course, gets your development environment ready, and gives you a fast but solid refresher of core Python together with the basics of AI-assisted development. It builds directly on the previous lecture, Here is what, we will cover, and prepares you for the next lecture, Python Essentials - Data Types, Variables & Strings.
Tips for getting the most out of it
Lecture overview
We start the Python refresher with the essentials every program relies on: data types, variables and strings. You will work with integers, floats, strings and booleans, see how Python handles dynamic typing and variable reassignment, and explore the most useful string operations such as slicing, formatting with f-strings, and common string methods.
What you will learn
What we do in this lecture
Why this matters
Every web request, database record and API response you handle later in the course is built from these basic types. Clean handling of strings in particular is essential for validation, templating and data processing in Django, FastAPI and Flask.
Practice task
Write a small script that takes a full name and a birth year, cleans up extra spaces and capitalisation, calculates the age, and prints a nicely formatted greeting using an f-string.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Course Introduction, Vision and getting started. This first section lays the foundation for everything that follows: it sets the architect-level mindset of the course, gets your development environment ready, and gives you a fast but solid refresher of core Python together with the basics of AI-assisted development. It builds directly on the previous lecture, Architect-level focus, AI first development, what, and prepares you for the next lecture, Dev Environment and Setup Pycharm.
Tips for getting the most out of it
Lecture overview
In this lecture we set up a professional development environment. You will install Python, install and configure PyCharm, create your first project, choose the correct interpreter, and understand virtual environments so that each project keeps its own dependencies. We also look at a few PyCharm features that save a lot of time, such as run configurations, the integrated terminal and code inspection.
What you will learn
What we do in this lecture
Why this matters
A clean, reproducible environment prevents the classic it-works-on-my-machine problems. The same habits will make it much easier to manage the dependencies of the Django, FastAPI and Flask projects later in the course.
Practice task
Create two separate PyCharm projects, each with its own virtual environment, and install a different package in each. Confirm that the package installed in one project is not visible in the other.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Course Introduction, Vision and getting started. This first section lays the foundation for everything that follows: it sets the architect-level mindset of the course, gets your development environment ready, and gives you a fast but solid refresher of core Python together with the basics of AI-assisted development. It builds directly on the previous lecture, Python Essentials - Data Types, Variables & Strings, and prepares you for the next lecture, Accessing the Practice material.
Tips for getting the most out of it
Lecture overview
Here we cover Python's built-in collections and introduce type hints. You will work with lists, tuples, sets and dictionaries, learn when to use each one, and see practical examples such as grouping data, removing duplicates and building lookup tables. We then add type hints to make your code easier to read, easier for your IDE to check, and easier for AI assistants to understand.
What you will learn
What we do in this lecture
Why this matters
Collections are the backbone of data handling in Python, and type hints are used heavily in modern frameworks, especially FastAPI and Pydantic. Getting comfortable with both now will pay off directly in the backend sections.
Practice task
Given a list of student records (name, subject, score), build a dictionary that maps each subject to a list of scores, then compute the average per subject. Add type hints to every function you write.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Course Introduction, Vision and getting started. This first section lays the foundation for everything that follows: it sets the architect-level mindset of the course, gets your development environment ready, and gives you a fast but solid refresher of core Python together with the basics of AI-assisted development. It builds directly on the previous lecture, Accessing the Practice material, and prepares you for the next lecture, How to open the project files.
Tips for getting the most out of it
Lecture overview
This quick lecture shows you how to open the provided project files in PyCharm so you can run and explore them yourself. You will learn how to open an existing folder as a project, configure the interpreter for it, and run the example files without errors.
What you will learn
Why this matters
You will open many project files throughout the course. Doing it correctly every time avoids interpreter and import errors and lets you focus on learning instead of troubleshooting.
Practice task
Open the project files for this section, run at least two example scripts, and make a small change to each to confirm you can edit and re-run them.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Course Introduction, Vision and getting started. This first section lays the foundation for everything that follows: it sets the architect-level mindset of the course, gets your development environment ready, and gives you a fast but solid refresher of core Python together with the basics of AI-assisted development. It builds directly on the previous lecture, Collections, Type Hints & Practical Examples, and prepares you for the next lecture, Python Operators Fundamentals.
Tips for getting the most out of it
Lecture overview
In this lecture we go through Python's operators in depth. You will use arithmetic, comparison, logical, assignment, membership and identity operators, understand operator precedence, and learn the difference between == and is. We finish with practical examples that combine several operators to express real conditions clearly.
What you will learn
What we do in this lecture
Why this matters
Operators appear in every condition, filter and calculation you will write, from validating form input to filtering database queries. Understanding precedence and short-circuit logic prevents subtle bugs.
Practice task
Write a function that decides whether a user qualifies for a discount based on age, membership status and order value, using a combination of comparison and logical operators. Test it with at least five different inputs.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Course Introduction, Vision and getting started. This first section lays the foundation for everything that follows: it sets the architect-level mindset of the course, gets your development environment ready, and gives you a fast but solid refresher of core Python together with the basics of AI-assisted development. It builds directly on the previous lecture, How to open the project files, and prepares you for the next lecture, Conditionals, Loops & Flow Control.
Tips for getting the most out of it
Lecture overview
Now we control the flow of programs. You will write if, elif and else statements, work with nested conditions, and use for and while loops to repeat work. We cover break, continue and the loop else clause, iterate over collections with enumerate and zip, and discuss how to keep control flow readable as programs grow.
What you will learn
What we do in this lecture
Why this matters
Every view, endpoint and background job you build later relies on clear control flow. Readable branching and looping makes code easier to debug, easier to test and easier for teammates (and AI tools) to extend.
Practice task
Build a simple menu-driven program that keeps asking the user for an action (add item, list items, remove item, quit) until they choose to quit.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Course Introduction, Vision and getting started. This first section lays the foundation for everything that follows: it sets the architect-level mindset of the course, gets your development environment ready, and gives you a fast but solid refresher of core Python together with the basics of AI-assisted development. It builds directly on the previous lecture, Python Operators Fundamentals, and prepares you for the next lecture, Fundamentals of Prompting.
Tips for getting the most out of it
Lecture overview
This lecture introduces the fundamentals of prompting for developers. You will learn why chat-based AI tools can give poor results without context, how IDE-based AI tools that see your project behave differently, and how to write prompts that are specific, constrained and verifiable. We look at the structure of a good coding prompt and common mistakes that lead to incorrect or over-engineered code.
What you will learn
What we do in this lecture
Why this matters
Prompting is now a core developer skill. Good prompts produce code that is closer to what you actually need, and they reduce the time you spend fixing hidden assumptions, such as unexpected third-party dependencies.
Practice task
Pick a small task (for example, parsing a CSV of expenses). Write a vague prompt and a structured prompt for it, run both in your AI tool, and write down three differences in the quality of the results.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Course Introduction, Vision and getting started. This first section lays the foundation for everything that follows: it sets the architect-level mindset of the course, gets your development environment ready, and gives you a fast but solid refresher of core Python together with the basics of AI-assisted development. It builds directly on the previous lecture, Conditionals, Loops & Flow Control, and prepares you for the next lecture, Use cases and Practice.
Tips for getting the most out of it
Lecture overview
In this hands-on lecture we bring together everything from the section by working through practical use cases. You will analyse a requirement before writing any code, then build small programs such as a student report card script and a shopping-cart calculator, using AI assistance where it helps and verifying the result yourself.
What you will learn
What we do in this lecture
Why this matters
Real projects are never a single concept in isolation. Practising how the fundamentals fit together, and how to guide AI towards the right solution, is exactly what you will do in the larger projects later.
Practice task
Extend the report card script so that it also prints the top performer for each subject and flags any student who is below a pass mark.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Course Introduction, Vision and getting started. This first section lays the foundation for everything that follows: it sets the architect-level mindset of the course, gets your development environment ready, and gives you a fast but solid refresher of core Python together with the basics of AI-assisted development. It builds directly on the previous lecture, Fundamentals of Prompting, and prepares you for the next lecture, Test and Improve your python skills.
Tips for getting the most out of it
Lecture overview
Time to check your understanding. In this lecture we go through a set of challenges that test the fundamentals from this section: data types, strings, collections, operators, control flow and prompting. For each challenge, try to solve it yourself first, then watch the walkthrough and compare your approach.
What you will learn
Why this matters
Testing yourself exposes gaps early, before they become blockers in the framework sections. It also builds confidence that you can solve problems without step-by-step guidance.
Practice task
Pause the video at each challenge and write your own solution before continuing. Keep a list of any challenge you could not solve and revisit the related lecture.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Course Introduction, Vision and getting started. This first section lays the foundation for everything that follows: it sets the architect-level mindset of the course, gets your development environment ready, and gives you a fast but solid refresher of core Python together with the basics of AI-assisted development. It builds directly on the previous lecture, Use cases and Practice, and prepares you for the next lecture, How to access the Quizzes directly on IDE.
Tips for getting the most out of it
Lecture overview
This short lecture shows you how to access and run the course quizzes directly inside your IDE. You will see where the quiz files live, how to run them, and how to read the results so that you can test yourself without leaving your coding environment.
What you will learn
Why this matters
Testing yourself inside the same tool you code in keeps practice quick and frictionless, which makes it much more likely that you will actually do it after every section.
Practice task
Open the quiz for this section in your IDE and complete it. Note your score so you can compare it after revisiting the material.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Course Introduction, Vision and getting started. This first section lays the foundation for everything that follows: it sets the architect-level mindset of the course, gets your development environment ready, and gives you a fast but solid refresher of core Python together with the basics of AI-assisted development. It builds directly on the previous lecture, Test and Improve your python skills, and prepares you for the next lecture, Get a JetBrains Free IDE, consider 5 start rating.
Lecture overview
A quick note on tools and feedback. In this lecture you will find out how to get access to a free JetBrains IDE licence so you can use professional tooling throughout the course. We also ask for a small favour: if you are finding the course useful so far, please consider leaving an honest rating, as it really helps other learners discover the course.
Why this matters
Professional tools make learning smoother, and your feedback helps us keep improving the course content.
Where this fits in the course
This lecture belongs to the section Course Introduction, Vision and getting started. This first section lays the foundation for everything that follows: it sets the architect-level mindset of the course, gets your development environment ready, and gives you a fast but solid refresher of core Python together with the basics of AI-assisted development. It builds directly on the previous lecture, How to access the Quizzes directly on IDE, and wraps up the section, so this is the right moment to review your notes and project files before moving on.
Lecture overview
This lecture contains the downloadable project files for the section Course Introduction, Vision and getting started. The archive holds the source code and resources used throughout the section, so you can follow along, compare your work with a known-good version, or jump straight to a working example.
What you will learn
What we do in this lecture
pip install -r requirements.txt where a requirements file is included)Why this matters
Having a working reference version lets you debug faster: when something does not behave as expected, you can compare your code with the finished version instead of guessing.
Practice task
Run the project from the downloaded files and compare it with your own version. Note at least one difference and understand why it was written that way.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Course Introduction, Vision and getting started. This first section lays the foundation for everything that follows: it sets the architect-level mindset of the course, gets your development environment ready, and gives you a fast but solid refresher of core Python together with the basics of AI-assisted development. It comes at the end of the section and gives you the reference code for the lectures from Here is what we will cover to Get a JetBrains Free IDE, consider 5 star rating.
Tips for getting the most out of it
Lecture overview
Before we dive into functions, this lecture shows you where to find the presentation slides and project files for this section and how to use them alongside the videos. You will see how the material is organised per lecture so you can quickly find the code that matches what is on screen.
What you will learn
Why this matters
Having the exact code and slides at hand lets you compare your work with a known-good version whenever something does not behave as expected.
Practice task
Download this section's files, open them in PyCharm and locate the file that matches the next lecture.
Where this fits in the course
This lecture belongs to the section Functions, Methods in Python. This section is about writing reusable logic. You move from scripts that run top to bottom to well-structured functions, learn how Python resolves names and arguments, and pick up functional tools and packages that make code shorter and more modular. It opens this section and sets the direction for the lectures that follow, and prepares you for the next lecture, How to get in touch with us.
Lecture overview
This short lecture explains how to reach us whenever you are stuck or have a question. You will learn the best channels for course questions, how to write a question that gets a fast and useful answer, and where to find community discussions and updates.
What you will learn
Why this matters
Getting unblocked quickly is one of the biggest factors in finishing a course. A well-written question usually gets a solution on the first reply.
Where this fits in the course
This lecture belongs to the section Functions, Methods in Python. This section is about writing reusable logic. You move from scripts that run top to bottom to well-structured functions, learn how Python resolves names and arguments, and pick up functional tools and packages that make code shorter and more modular. It builds directly on the previous lecture, How to access the presentation and Project files, and prepares you for the next lecture, Functions, Scope, Args & Kwargs.
Lecture overview
Functions are the main building blocks of reusable Python code. In this lecture you will define and call functions, pass positional and keyword arguments, set default values, and return results. We then look at scope (local, enclosing, global and built-in) and finish with *args and **kwargs so your functions can accept flexible numbers of arguments.
What you will learn
What we do in this lecture
Why this matters
Frameworks such as Django, FastAPI and Flask are built around functions: views, route handlers, decorators and dependencies all rely on these ideas. Understanding *args and **kwargs in particular makes framework source code much easier to read.
Practice task
Write a function build_profile(name, *skills, **details) that returns a dictionary describing a developer. Call it in at least three different ways and print the results.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Functions, Methods in Python. This section is about writing reusable logic. You move from scripts that run top to bottom to well-structured functions, learn how Python resolves names and arguments, and pick up functional tools and packages that make code shorter and more modular. It builds directly on the previous lecture, How to get in touch with us, and prepares you for the next lecture, Map, Filter, Lambda & Python Packages.
Tips for getting the most out of it
Lecture overview
In this lecture we look at a more functional style of Python and at how code is organised into modules and packages. You will write lambda functions, use map and filter to transform and select data, compare them with list comprehensions, and then create your own modules and packages and import them correctly.
What you will learn
What we do in this lecture
Why this matters
Clean module and package structure is the foundation of every larger project. Functional tools help you write concise data transformations that you will reuse in data processing and API code.
Practice task
Create a package called utils with two modules (text_tools and math_tools). Use map and filter inside them, then import and use both modules from a main script.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Functions, Methods in Python. This section is about writing reusable logic. You move from scripts that run top to bottom to well-structured functions, learn how Python resolves names and arguments, and pick up functional tools and packages that make code shorter and more modular. It builds directly on the previous lecture, Functions, Scope, Args & Kwargs, and prepares you for the next lecture, Practice Use Cases & Prompt Building.
Tips for getting the most out of it
Lecture overview
This is a hands-on practice lecture where we solve realistic problems with functions and learn how to build better prompts for function-level code. You will work through several use cases, write the solution yourself, then use AI to generate an alternative and compare the two critically.
What you will learn
What we do in this lecture
Why this matters
Most AI-assisted coding happens at the function level. Being able to describe a function precisely, and then judge the result, is one of the highest-value skills you can build.
Practice task
Write a prompt asking an AI tool to create a function that validates an email address and a password. Include explicit rules and edge cases in your prompt, then test the result with at least six inputs.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Functions, Methods in Python. This section is about writing reusable logic. You move from scripts that run top to bottom to well-structured functions, learn how Python resolves names and arguments, and pick up functional tools and packages that make code shorter and more modular. It builds directly on the previous lecture, Map, Filter, Lambda & Python Packages, and prepares you for the next lecture, Test your Functions, Methods Skills.
Tips for getting the most out of it
Lecture overview
This lecture tests your understanding of functions, scope, arguments, lambdas, map and filter, and packages. Work through each challenge on your own first, then watch the walkthrough to compare approaches and learn alternative solutions.
What you will learn
Why this matters
Functions are used everywhere in the rest of the course. Confirming that you really understand them now avoids confusion when you meet decorators, views and dependency injection later.
Practice task
Pause at each challenge, solve it in your IDE, and only then watch the solution. Revisit the earlier lectures for any challenge you found difficult.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Functions, Methods in Python. This section is about writing reusable logic. You move from scripts that run top to bottom to well-structured functions, learn how Python resolves names and arguments, and pick up functional tools and packages that make code shorter and more modular. It builds directly on the previous lecture, Practice Use Cases & Prompt Building, and wraps up the section, so this is the right moment to review your notes and project files before moving on.
Tips for getting the most out of it
Lecture overview
This lecture contains the downloadable project files for the section Functions, Methods in Python. The archive holds the source code and resources used throughout the section, so you can follow along, compare your work with a known-good version, or jump straight to a working example.
What you will learn
What we do in this lecture
pip install -r requirements.txt where a requirements file is included)Why this matters
Having a working reference version lets you debug faster: when something does not behave as expected, you can compare your code with the finished version instead of guessing.
Practice task
Run the project from the downloaded files and compare it with your own version. Note at least one difference and understand why it was written that way.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Functions, Methods in Python. This section is about writing reusable logic. You move from scripts that run top to bottom to well-structured functions, learn how Python resolves names and arguments, and pick up functional tools and packages that make code shorter and more modular. It comes at the end of the section and gives you the reference code for the lectures from How to access the presentation and Project files to Test your Functions, Methods Skills.
Tips for getting the most out of it
Lecture overview
A quick reminder before we start object-oriented programming: you can get a free JetBrains IDE licence to use professional tools throughout the course. If the course has been helpful so far, we would also really appreciate an honest rating, as it helps other learners find it.
Why this matters
Good tooling makes OOP much easier to explore, with features such as class hierarchies, go-to-definition and refactoring support.
Where this fits in the course
This lecture belongs to the section Object Oriented Programming (OOP) in Python. This section teaches object-oriented programming the way it is used in real frameworks: classes and objects, inheritance, mixins, special methods, composition and dataclasses. Django models, FastAPI/Pydantic schemas and Flask extensions all rely heavily on these ideas. It opens this section and sets the direction for the lectures that follow, and prepares you for the next lecture, OOP Introduction, Classes, Objects & Naming Conventions.
Lecture overview
This lecture introduces object-oriented programming in Python. You will learn what classes and objects are, define your first class with an __init__ method, add attributes and instance methods, and understand what self really refers to. We also cover Python naming conventions for classes, methods and attributes so your code looks professional from the start.
What you will learn
What we do in this lecture
Why this matters
Every major Python framework is built on classes. Django models, class-based views, Pydantic models in FastAPI and many Flask extensions are all classes, so this is essential groundwork.
Practice task
Create a Book class with title, author and pages attributes and a method that returns a one-line summary. Create three books and print their summaries.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Object Oriented Programming (OOP) in Python. This section teaches object-oriented programming the way it is used in real frameworks: classes and objects, inheritance, mixins, special methods, composition and dataclasses. Django models, FastAPI/Pydantic schemas and Flask extensions all rely heavily on these ideas. It builds directly on the previous lecture, Get a JetBrains Free IDE, consider 5 start rating, and prepares you for the next lecture, Class Methods, Static Methods & Properties.
Tips for getting the most out of it
Lecture overview
Here we go beyond instance methods. You will learn the difference between instance methods, class methods and static methods, when to use each, and how to use class methods as alternative constructors. We then introduce properties, which let you control access to attributes with getters and setters while keeping a clean interface.
What you will learn
What we do in this lecture
Why this matters
Alternative constructors and properties are common patterns in production code and in frameworks. They make APIs of your classes cleaner and help enforce valid data.
Practice task
Create a Temperature class that stores Celsius internally, exposes a fahrenheit property with a setter, and provides a from_fahrenheit class method.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Object Oriented Programming (OOP) in Python. This section teaches object-oriented programming the way it is used in real frameworks: classes and objects, inheritance, mixins, special methods, composition and dataclasses. Django models, FastAPI/Pydantic schemas and Flask extensions all rely heavily on these ideas. It builds directly on the previous lecture, OOP Introduction, Classes, Objects & Naming Conventions, and prepares you for the next lecture, Inheritance & Polymorphism.
Tips for getting the most out of it
Lecture overview
This lecture covers inheritance and polymorphism. You will create parent and child classes, override methods, use super() to extend parent behaviour, and see how polymorphism lets different objects be used through the same interface. We finish with practical guidance on when inheritance helps and when it creates unnecessary coupling.
What you will learn
What we do in this lecture
Why this matters
Frameworks use inheritance extensively. For example, you inherit from models.Model in Django or BaseModel in Pydantic. Understanding what you are inheriting and how overriding works is key to customising framework behaviour safely.
Practice task
Create a Shape base class with an area method, then Circle, Rectangle and Triangle subclasses. Put them in a list and print each area in a single loop.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Object Oriented Programming (OOP) in Python. This section teaches object-oriented programming the way it is used in real frameworks: classes and objects, inheritance, mixins, special methods, composition and dataclasses. Django models, FastAPI/Pydantic schemas and Flask extensions all rely heavily on these ideas. It builds directly on the previous lecture, Class Methods, Static Methods & Properties, and prepares you for the next lecture, Multiple Inheritance, MRO & Mixins.
Tips for getting the most out of it
Lecture overview
Now we look at more advanced inheritance. You will learn how multiple inheritance works in Python, how the Method Resolution Order (MRO) decides which method runs, and how the classic diamond problem is solved. We then use mixins, small focused classes that add reusable behaviour to other classes, which is a pattern you will see constantly in Django.
What you will learn
What we do in this lecture
Why this matters
Django class-based views are built almost entirely from mixins, such as LoginRequiredMixin. Understanding MRO lets you combine them correctly and debug surprising behaviour.
Practice task
Create a TimestampMixin that adds created_at and updated_at handling and a SerializeMixin that adds a to_dict method. Combine both in a Product class and test them.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Object Oriented Programming (OOP) in Python. This section teaches object-oriented programming the way it is used in real frameworks: classes and objects, inheritance, mixins, special methods, composition and dataclasses. Django models, FastAPI/Pydantic schemas and Flask extensions all rely heavily on these ideas. It builds directly on the previous lecture, Inheritance & Polymorphism, and prepares you for the next lecture, Encapsulation & Special Methods.
Tips for getting the most out of it
Lecture overview
This lecture covers encapsulation and Python's special (dunder) methods. You will learn Python's conventions for protected and private attributes, how name mangling works, and how to make your own objects behave like built-in types by implementing methods such as __str__, __repr__, __eq__, __lt__, __len__ and __add__.
What you will learn
What we do in this lecture
Why this matters
Well-encapsulated classes are easier to change safely. Special methods are used everywhere in frameworks; for example, Django uses __str__ to display model instances in the admin panel.
Practice task
Create a Money class with amount and currency. Implement __repr__, __str__, __eq__, __add__ (only for the same currency) and __lt__, then sort a list of Money objects.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Object Oriented Programming (OOP) in Python. This section teaches object-oriented programming the way it is used in real frameworks: classes and objects, inheritance, mixins, special methods, composition and dataclasses. Django models, FastAPI/Pydantic schemas and Flask extensions all rely heavily on these ideas. It builds directly on the previous lecture, Multiple Inheritance, MRO & Mixins, and prepares you for the next lecture, Composition, Abstract Classes & Dataclasses.
Tips for getting the most out of it
Lecture overview
In this lecture we explore three powerful design tools: composition, abstract base classes and dataclasses. You will see why composition (has-a) is often preferred over inheritance (is-a), define abstract classes that enforce an interface using the abc module, and use dataclasses to remove boilerplate from classes that mainly hold data.
What you will learn
What we do in this lecture
Why this matters
These patterns lead to flexible, testable designs. Dataclasses are also a close relative of the Pydantic models you will use in FastAPI, so this lecture prepares you for data validation later.
Practice task
Design a Car that is composed of Engine and Wheel objects, define an abstract Notifier with EmailNotifier and SmsNotifier implementations, and model an Order as a dataclass.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Object Oriented Programming (OOP) in Python. This section teaches object-oriented programming the way it is used in real frameworks: classes and objects, inheritance, mixins, special methods, composition and dataclasses. Django models, FastAPI/Pydantic schemas and Flask extensions all rely heavily on these ideas. It builds directly on the previous lecture, Encapsulation & Special Methods, and prepares you for the next lecture, OOP Use Cases & Practice.
Tips for getting the most out of it
Lecture overview
This practice lecture brings all the OOP concepts together through practical use cases. We model small real-world systems, decide which classes to create, choose between inheritance and composition, and apply encapsulation, special methods and dataclasses in context, using AI assistance where it adds value.
What you will learn
What we do in this lecture
Why this matters
Designing classes from a requirement is exactly what architects do. Practising this on small systems builds the judgement you need for Django models and service layers later.
Practice task
Design a simple ride-booking system (Rider, Driver, Ride, PaymentMethod). Draw the relationships first, then implement the classes and write a script that books and completes a ride.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Object Oriented Programming (OOP) in Python. This section teaches object-oriented programming the way it is used in real frameworks: classes and objects, inheritance, mixins, special methods, composition and dataclasses. Django models, FastAPI/Pydantic schemas and Flask extensions all rely heavily on these ideas. It builds directly on the previous lecture, Composition, Abstract Classes & Dataclasses, and prepares you for the next lecture, Test your Object Oriented Programming (OOP) in Python Skills.
Tips for getting the most out of it
Lecture overview
Test your object-oriented programming skills. This lecture walks through a series of challenges on classes, methods, properties, inheritance, MRO, mixins, special methods, composition and dataclasses. Attempt each one yourself before watching the solution.
What you will learn
Why this matters
OOP concepts appear constantly in the framework sections. Making sure they are solid now makes Django models, class-based views and Pydantic schemas feel familiar instead of confusing.
Practice task
Solve every challenge before watching the answer, and write a short note explaining why the correct solution works.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Object Oriented Programming (OOP) in Python. This section teaches object-oriented programming the way it is used in real frameworks: classes and objects, inheritance, mixins, special methods, composition and dataclasses. Django models, FastAPI/Pydantic schemas and Flask extensions all rely heavily on these ideas. It builds directly on the previous lecture, OOP Use Cases & Practice, and wraps up the section, so this is the right moment to review your notes and project files before moving on.
Tips for getting the most out of it
Lecture overview
This lecture contains the downloadable project files for the section Object Oriented Programming (OOP) in Python. The archive holds the source code and resources used throughout the section, so you can follow along, compare your work with a known-good version, or jump straight to a working example.
What you will learn
What we do in this lecture
pip install -r requirements.txt where a requirements file is included)Why this matters
Having a working reference version lets you debug faster: when something does not behave as expected, you can compare your code with the finished version instead of guessing.
Practice task
Run the project from the downloaded files and compare it with your own version. Note at least one difference and understand why it was written that way.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Object Oriented Programming (OOP) in Python. This section teaches object-oriented programming the way it is used in real frameworks: classes and objects, inheritance, mixins, special methods, composition and dataclasses. Django models, FastAPI/Pydantic schemas and Flask extensions all rely heavily on these ideas. It comes at the end of the section and gives you the reference code for the lectures from Get a JetBrains Free IDE, consider 5 star rating to Test your Object Oriented Programming (OOP) in Python Skills.
Tips for getting the most out of it
Lecture overview
In this lecture we take a short look at DubNext, a real product built with heavy use of vibe coding and AI-assisted development. You will see what the product does, how AI tools accelerated its development, and which decisions still needed a human architect. It is a practical illustration of the approach this course teaches.
What you will learn
Why this matters
Seeing a real product built this way makes the AI-first mindset concrete and shows both the potential and the limits of AI-assisted development.
Practice task
Write down one product idea you could prototype with vibe coding and list the parts where you would still need to make careful architecture decisions yourself.
Where this fits in the course
This lecture belongs to the section Advanced Python Essentials - Exceptions, File IO, Regex & More. This section covers the skills that separate scripts from production-ready code: robust error handling, logging and debugging, file and path handling, structured data formats and regular expressions. It opens this section and sets the direction for the lectures that follow, and prepares you for the next lecture, Advanced Exception Handling & Custom Exceptions.
Lecture overview
This lecture takes error handling beyond the basics. You will review Python's exception hierarchy, use try, except, else and finally properly, catch specific exceptions instead of everything, re-raise and chain exceptions, and design your own custom exception classes that make errors meaningful for your application.
What you will learn
What we do in this lecture
Why this matters
APIs and web apps must fail gracefully and return clear errors. Custom exceptions map naturally to HTTP error responses in Django, FastAPI and Flask, which you will see later in the course.
Practice task
Create InsufficientFundsError and AccountLockedError for a banking module, raise them from a withdraw function, and handle them with user-friendly messages.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Advanced Python Essentials - Exceptions, File IO, Regex & More. This section covers the skills that separate scripts from production-ready code: robust error handling, logging and debugging, file and path handling, structured data formats and regular expressions. It builds directly on the previous lecture, The DubNext Project - The power of Vibe coding, and prepares you for the next lecture, Logging, Debugging & Error Management in Python.
Tips for getting the most out of it
Lecture overview
Here you will learn how professionals find and fix problems. We replace print debugging with Python's logging module, configure log levels, handlers and formatters, and write logs to both the console and a file. We then look at practical debugging strategies, including using the PyCharm debugger with breakpoints and step-through execution.
What you will learn
What we do in this lecture
Why this matters
In production you cannot attach a debugger, so logs are your main source of truth. Good logging habits make deployed Django, FastAPI and Flask applications far easier to support.
Practice task
Add logging to one of your earlier scripts with INFO messages for normal operations and ERROR messages for failures, written to both the console and app.log.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Advanced Python Essentials - Exceptions, File IO, Regex & More. This section covers the skills that separate scripts from production-ready code: robust error handling, logging and debugging, file and path handling, structured data formats and regular expressions. It builds directly on the previous lecture, Advanced Exception Handling & Custom Exceptions, and prepares you for the next lecture, Advanced File IO, Context Managers & Paths.
Tips for getting the most out of it
Lecture overview
This lecture covers working with files and file systems. You will read and write text and binary files, use context managers (the with statement) to handle resources safely, and use pathlib for clean, cross-platform path handling. We also look at the os and shutil modules for creating, moving, copying and deleting files and folders.
What you will learn
What we do in this lecture
Why this matters
Uploading files, storing media, reading configuration and processing logs are all everyday tasks in web applications. Correct resource handling prevents leaks and data corruption.
Practice task
Write a script that scans a Downloads-style folder and moves files into subfolders by extension (images, documents, archives), logging each move.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Advanced Python Essentials - Exceptions, File IO, Regex & More. This section covers the skills that separate scripts from production-ready code: robust error handling, logging and debugging, file and path handling, structured data formats and regular expressions. It builds directly on the previous lecture, Logging, Debugging & Error Management in Python, and prepares you for the next lecture, Structured Data, CSV, JSON & Large Files in Python.
Tips for getting the most out of it
Lecture overview
In this lecture we work with structured data. You will read and write CSV files with the csv module, parse and generate JSON, and learn techniques for processing files that are too large to load into memory at once, such as line-by-line reading and generators. We also look briefly at configuration files and pickle, including its security caveats.
What you will learn
What we do in this lecture
Why this matters
JSON is the language of web APIs, and CSV is the most common data exchange format in business. Handling both efficiently is essential for building REST APIs and data features.
Practice task
Take a CSV of sales records, compute totals per product, and save the result as a nicely formatted JSON file. Make your script work line by line so it could handle millions of rows.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Advanced Python Essentials - Exceptions, File IO, Regex & More. This section covers the skills that separate scripts from production-ready code: robust error handling, logging and debugging, file and path handling, structured data formats and regular expressions. It builds directly on the previous lecture, Advanced File IO, Context Managers & Paths, and prepares you for the next lecture, Regular Expressions in Python.
Tips for getting the most out of it
Lecture overview
This lecture introduces regular expressions in Python. You will learn the core regex syntax, use the re module to search, match, find all occurrences and substitute text, and work with groups to extract structured information from unstructured text. We finish with common validation patterns such as email addresses and phone numbers.
What you will learn
What we do in this lecture
Why this matters
Regex is used for input validation, URL routing (Django uses regex-style path converters), log analysis and data cleaning. A little regex knowledge saves a lot of manual string code.
Practice task
Write a function that extracts all order IDs in the format ORD-12345 and all prices such as 19.99 from a block of email text and returns them as structured data.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Advanced Python Essentials - Exceptions, File IO, Regex & More. This section covers the skills that separate scripts from production-ready code: robust error handling, logging and debugging, file and path handling, structured data formats and regular expressions. It builds directly on the previous lecture, Structured Data, CSV, JSON & Large Files in Python, and prepares you for the next lecture, Advanced Use Cases & Practice.
Tips for getting the most out of it
Lecture overview
This practice lecture combines everything from the section in realistic scenarios. We build small utilities such as a log analyser and a file organiser that use exception handling, logging, file I/O, structured data and regex together, with AI assistance for the repetitive parts.
What you will learn
What we do in this lecture
Why this matters
Small internal tools like these are exactly what developers build every day, and they exercise all the robustness skills needed for production services.
Practice task
Extend the log analyser so it also reports the busiest hour of the day and writes a summary report to a JSON file.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Advanced Python Essentials - Exceptions, File IO, Regex & More. This section covers the skills that separate scripts from production-ready code: robust error handling, logging and debugging, file and path handling, structured data formats and regular expressions. It builds directly on the previous lecture, Regular Expressions in Python, and prepares you for the next lecture, Test your Python Essentials - Exceptions, File IO, Regex skills.
Tips for getting the most out of it
Lecture overview
Test your knowledge of exceptions, logging, file I/O, structured data and regular expressions. Work through each challenge yourself first, then compare your solution with the walkthrough.
What you will learn
Why this matters
These skills make your applications reliable. Confirming them now means fewer mysterious errors when you build real web applications.
Practice task
Solve each challenge in your IDE before watching the solution, and add any weak areas to your revision list.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Advanced Python Essentials - Exceptions, File IO, Regex & More. This section covers the skills that separate scripts from production-ready code: robust error handling, logging and debugging, file and path handling, structured data formats and regular expressions. It builds directly on the previous lecture, Advanced Use Cases & Practice, and wraps up the section, so this is the right moment to review your notes and project files before moving on.
Tips for getting the most out of it
Lecture overview
This lecture contains the downloadable project files for the section Advanced Python Essentials - Exceptions, File IO, Regex & More. The archive holds the source code and resources used throughout the section, so you can follow along, compare your work with a known-good version, or jump straight to a working example.
What you will learn
What we do in this lecture
pip install -r requirements.txt where a requirements file is included)Why this matters
Having a working reference version lets you debug faster: when something does not behave as expected, you can compare your code with the finished version instead of guessing.
Practice task
Run the project from the downloaded files and compare it with your own version. Note at least one difference and understand why it was written that way.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Advanced Python Essentials - Exceptions, File IO, Regex & More. This section covers the skills that separate scripts from production-ready code: robust error handling, logging and debugging, file and path handling, structured data formats and regular expressions. It comes at the end of the section and gives you the reference code for the lectures from The DubNext Project - The power of Vibe coding to Test your Python Essentials - Exceptions, File IO, Regex skills.
Tips for getting the most out of it
Lecture overview
Before we start NumPy, this short lecture shows WisperLocal, a desktop application built with vibe coding. You will see what the app does, how AI tools were used to build it quickly, and what it teaches about shipping small, useful tools with AI assistance.
What you will learn
Why this matters
It shows how the skills in this course combine into real products, and it previews the local-AI ideas you will use later in the Local LLM project.
Where this fits in the course
This lecture belongs to the section NumPy for Data Science in Python. This section introduces NumPy, the numerical foundation of the Python data and AI ecosystem. You will learn to work with arrays efficiently, which prepares you for Pandas, machine learning libraries and AI features in your applications. It opens this section and sets the direction for the lectures that follow, and prepares you for the next lecture, NumPy Fundamentals - Arrays, Creation & Data Types.
Lecture overview
This lecture introduces NumPy and its core object, the ndarray. You will learn why NumPy arrays are faster and more memory-efficient than Python lists, create arrays in several ways, and inspect their shape, number of dimensions, size and data type.
What you will learn
What we do in this lecture
Why this matters
NumPy underpins Pandas, scikit-learn, PyTorch and many AI tools. Understanding arrays makes working with data and model outputs in your web applications much easier.
Practice task
Create a 5x5 array of zeros, a 3x4 array of random integers and an array of 10 evenly spaced values between 0 and 1. Print the shape, dtype and size of each.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section NumPy for Data Science in Python. This section introduces NumPy, the numerical foundation of the Python data and AI ecosystem. You will learn to work with arrays efficiently, which prepares you for Pandas, machine learning libraries and AI features in your applications. It builds directly on the previous lecture, Vide coded Desktop App - WisperLocal, and prepares you for the next lecture, Indexing, Slicing & Iterating in NumPy.
Tips for getting the most out of it
Lecture overview
Here you will learn how to access and navigate data inside NumPy arrays. We cover indexing and slicing in one and several dimensions, boolean and fancy indexing, iterating over arrays, and the important difference between views and copies.
What you will learn
What we do in this lecture
Why this matters
Selecting the right data is the first step in any analysis. The views-versus-copies distinction also prevents confusing bugs where data changes unexpectedly.
Practice task
Given a 2D array of exam scores (students by subjects), select all scores above 80, the scores of the third student, and the average of the last subject.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section NumPy for Data Science in Python. This section introduces NumPy, the numerical foundation of the Python data and AI ecosystem. You will learn to work with arrays efficiently, which prepares you for Pandas, machine learning libraries and AI features in your applications. It builds directly on the previous lecture, NumPy Fundamentals - Arrays, Creation & Data Types, and prepares you for the next lecture, Array Shape Manipulation & Restructuring.
Tips for getting the most out of it
Lecture overview
This lecture is about changing the structure of arrays. You will reshape arrays, flatten and ravel them, transpose matrices, add and remove dimensions, and combine or split arrays with stacking and splitting functions.
What you will learn
What we do in this lecture
Why this matters
Data rarely arrives in the shape you need. Machine learning models and image data in particular require precise shapes, so reshaping is a daily task.
Practice task
Create an array of 24 numbers, reshape it into 4x6, 2x3x4 and 6x4 forms, then stack two of them together and split the result back into parts.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section NumPy for Data Science in Python. This section introduces NumPy, the numerical foundation of the Python data and AI ecosystem. You will learn to work with arrays efficiently, which prepares you for Pandas, machine learning libraries and AI features in your applications. It builds directly on the previous lecture, Indexing, Slicing & Iterating in NumPy, and prepares you for the next lecture, Universal Functions & Broadcasting in NumPy.
Tips for getting the most out of it
Lecture overview
In this lecture you will learn how NumPy performs fast element-wise operations. We cover universal functions (ufuncs), vectorisation instead of Python loops, and broadcasting, the set of rules that lets NumPy combine arrays of different shapes.
What you will learn
What we do in this lecture
Why this matters
Vectorisation is what makes Python fast enough for data and AI work. Thinking in arrays rather than loops leads to shorter, faster and clearer code.
Practice task
Normalise each column of a 100x3 random array so that it has a mean of 0 and a standard deviation of 1, using broadcasting and no explicit loops.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section NumPy for Data Science in Python. This section introduces NumPy, the numerical foundation of the Python data and AI ecosystem. You will learn to work with arrays efficiently, which prepares you for Pandas, machine learning libraries and AI features in your applications. It builds directly on the previous lecture, Array Shape Manipulation & Restructuring, and prepares you for the next lecture, Aggregation, Statistics & Sorting in NumPy.
Tips for getting the most out of it
Lecture overview
This lecture covers summarising and ordering data with NumPy. You will compute sums, means, medians, standard deviations, minimums and maximums, apply them along specific axes, and sort arrays or find the positions of values with sort, argsort, argmax and argmin.
What you will learn
What we do in this lecture
Why this matters
Summary statistics are the first thing you calculate on any dataset, and they are the basis of dashboards and analytics endpoints you might expose from a backend.
Practice task
For a dataset of monthly sales (products by months), find the best month for each product, the best-selling product overall and the average monthly sales.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section NumPy for Data Science in Python. This section introduces NumPy, the numerical foundation of the Python data and AI ecosystem. You will learn to work with arrays efficiently, which prepares you for Pandas, machine learning libraries and AI features in your applications. It builds directly on the previous lecture, Universal Functions & Broadcasting in NumPy, and prepares you for the next lecture, Linear Algebra with NumPy.
Tips for getting the most out of it
Lecture overview
This lecture introduces linear algebra with NumPy. You will perform matrix multiplication, compute dot products, transposes, determinants and inverses, solve systems of linear equations, and get a brief introduction to decompositions used in data science.
What you will learn
What we do in this lecture
Why this matters
Linear algebra is the language of machine learning and AI. Even a basic understanding helps you reason about embeddings, similarity search and model behaviour.
Practice task
Solve the system 2x + 3y = 13 and x - y = -1 with NumPy, then verify the solution by substituting it back.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section NumPy for Data Science in Python. This section introduces NumPy, the numerical foundation of the Python data and AI ecosystem. You will learn to work with arrays efficiently, which prepares you for Pandas, machine learning libraries and AI features in your applications. It builds directly on the previous lecture, Aggregation, Statistics & Sorting in NumPy, and prepares you for the next lecture, Random Sampling & Distributions in NumPy.
Tips for getting the most out of it
Lecture overview
Here you will learn to generate random data with NumPy. We use the modern random Generator API, set seeds for reproducibility, sample from uniform, normal and other distributions, shuffle data and use random sampling for simulations and synthetic test data.
What you will learn
What we do in this lecture
Why this matters
Synthetic data is invaluable for testing APIs and dashboards before real data exists, and random sampling underpins many ML techniques.
Practice task
Simulate 10,000 rolls of two dice and plot or print how often each total appears. Compare the result with the theoretical probabilities.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section NumPy for Data Science in Python. This section introduces NumPy, the numerical foundation of the Python data and AI ecosystem. You will learn to work with arrays efficiently, which prepares you for Pandas, machine learning libraries and AI features in your applications. It builds directly on the previous lecture, Linear Algebra with NumPy, and prepares you for the next lecture, NumPy Use Cases & Practice.
Tips for getting the most out of it
Lecture overview
This practice lecture applies NumPy to realistic problems. We analyse student scores, work with image-like arrays, and perform simple portfolio calculations, combining indexing, reshaping, broadcasting and aggregation.
What you will learn
What we do in this lecture
Why this matters
Practising on realistic problems shows how the separate NumPy tools combine into a complete workflow.
Practice task
Take a small grayscale image represented as a 2D array, crop it, flip it horizontally and increase its brightness without exceeding 255.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section NumPy for Data Science in Python. This section introduces NumPy, the numerical foundation of the Python data and AI ecosystem. You will learn to work with arrays efficiently, which prepares you for Pandas, machine learning libraries and AI features in your applications. It builds directly on the previous lecture, Random Sampling & Distributions in NumPy, and prepares you for the next lecture, Test your NumPy for Data Science in Python Skills.
Tips for getting the most out of it
Lecture overview
Test your NumPy skills. This lecture walks through challenges on array creation, indexing, reshaping, broadcasting, aggregation, linear algebra and random sampling. Solve each challenge first, then compare with the walkthrough.
What you will learn
Why this matters
NumPy knowledge will support your work with Pandas and AI features. Confirming it now avoids confusion later.
Practice task
Solve every challenge before watching the solution and note any topic you need to revisit.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section NumPy for Data Science in Python. This section introduces NumPy, the numerical foundation of the Python data and AI ecosystem. You will learn to work with arrays efficiently, which prepares you for Pandas, machine learning libraries and AI features in your applications. It builds directly on the previous lecture, NumPy Use Cases & Practice, and prepares you for the next lecture, Get in Touch with me on LinkedIn.
Tips for getting the most out of it
Lecture overview
A short lecture on how to connect with me on LinkedIn. I regularly share updates about new courses, AI tools, career tips and projects, and you are welcome to reach out and connect.
Why this matters
Building a professional network is an important part of growing your career as a developer.
Where this fits in the course
This lecture belongs to the section NumPy for Data Science in Python. This section introduces NumPy, the numerical foundation of the Python data and AI ecosystem. You will learn to work with arrays efficiently, which prepares you for Pandas, machine learning libraries and AI features in your applications. It builds directly on the previous lecture, Test your NumPy for Data Science in Python Skills, and wraps up the section, so this is the right moment to review your notes and project files before moving on.
Lecture overview
This lecture contains the downloadable project files for the section NumPy for Data Science in Python. The archive holds the source code and resources used throughout the section, so you can follow along, compare your work with a known-good version, or jump straight to a working example.
What you will learn
What we do in this lecture
pip install -r requirements.txt where a requirements file is included)Why this matters
Having a working reference version lets you debug faster: when something does not behave as expected, you can compare your code with the finished version instead of guessing.
Practice task
Run the project from the downloaded files and compare it with your own version. Note at least one difference and understand why it was written that way.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section NumPy for Data Science in Python. This section introduces NumPy, the numerical foundation of the Python data and AI ecosystem. You will learn to work with arrays efficiently, which prepares you for Pandas, machine learning libraries and AI features in your applications. It comes at the end of the section and gives you the reference code for the lectures from Vibe Coded Desktop App - WhisperLocal to Get in Touch with me on LinkedIn.
Tips for getting the most out of it
Lecture overview
A quick note before we start Pandas: building a course of this size takes a lot of work. If you are enjoying it, please consider leaving an honest rating. It makes a real difference and helps other learners find the course.
Why this matters
Your feedback directly shapes future updates to the course.
Where this fits in the course
This lecture belongs to the section Pandas for Data Science in Python. This section teaches Pandas, the standard Python library for working with tabular data. It builds on NumPy and gives you the tools to load, explore, clean and analyse real datasets, skills you will reuse when building data-driven features and reports. It opens this section and sets the direction for the lectures that follow, and prepares you for the next lecture, Pandas Fundamentals - Series, DataFrames & Basic Operations.
Lecture overview
This lecture introduces the two core Pandas data structures: Series and DataFrame. You will create them from lists, dictionaries and NumPy arrays, inspect them with head, tail, info and describe, and perform basic operations such as adding columns, renaming, sorting and simple calculations.
What you will learn
What we do in this lecture
Why this matters
DataFrames are the most common way to handle tabular data in Python, from quick analysis to preparing data for APIs, reports and machine learning.
Practice task
Create a DataFrame of ten products with name, category, price and stock. Add a stock_value column (price times stock) and sort by it in descending order.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Pandas for Data Science in Python. This section teaches Pandas, the standard Python library for working with tabular data. It builds on NumPy and gives you the tools to load, explore, clean and analyse real datasets, skills you will reuse when building data-driven features and reports. It builds directly on the previous lecture, Difficult to build this, Cosider 5 Star rating, and prepares you for the next lecture, Data IO with Pandas.
Tips for getting the most out of it
Lecture overview
Here you will learn how to get data into and out of Pandas. We read CSV, Excel and JSON files, control options such as separators, headers, column types and dates, perform an initial inspection, and write results back to files in different formats.
What you will learn
What we do in this lecture
Why this matters
Almost every data task starts by loading a file and ends by exporting a result. These are also the building blocks of import and export features in web applications.
Practice task
Load a CSV dataset, parse the date column correctly, keep only the last 30 days of records, and save the result as both CSV and JSON.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Pandas for Data Science in Python. This section teaches Pandas, the standard Python library for working with tabular data. It builds on NumPy and gives you the tools to load, explore, clean and analyse real datasets, skills you will reuse when building data-driven features and reports. It builds directly on the previous lecture, Pandas Fundamentals - Series, DataFrames & Basic Operations, and prepares you for the next lecture, Indexing, Selection & Filtering in Pandas.
Tips for getting the most out of it
Lecture overview
This lecture focuses on selecting exactly the data you need. You will select columns, use loc for label-based selection and iloc for position-based selection, filter rows with boolean conditions, combine conditions, and use helper methods such as isin, between and query.
What you will learn
What we do in this lecture
Why this matters
Filtering and selecting data is the Pandas equivalent of writing database queries. The same thinking applies when you query data through Django ORM or SQLAlchemy later.
Practice task
From a sales dataset, select all orders from two specific regions with a value above 500 in the last quarter, showing only customer, region and value.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Pandas for Data Science in Python. This section teaches Pandas, the standard Python library for working with tabular data. It builds on NumPy and gives you the tools to load, explore, clean and analyse real datasets, skills you will reuse when building data-driven features and reports. It builds directly on the previous lecture, Data IO with Pandas, and prepares you for the next lecture, Data Cleaning & Wrangling in Pandas.
Tips for getting the most out of it
Lecture overview
Real data is messy. In this lecture you will detect and handle missing values, remove duplicates, fix data types, clean text columns, rename and restructure columns, and apply transformations so a dataset becomes reliable enough for analysis or loading into an application.
What you will learn
What we do in this lecture
Why this matters
Bad data leads to wrong reports and broken features. Data cleaning is one of the most common real-world tasks for Python developers working with business data.
Practice task
Take a messy customer dataset with missing emails, duplicated rows and inconsistent country names, clean it, and produce a count of customers per country.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Pandas for Data Science in Python. This section teaches Pandas, the standard Python library for working with tabular data. It builds on NumPy and gives you the tools to load, explore, clean and analyse real datasets, skills you will reuse when building data-driven features and reports. It builds directly on the previous lecture, Indexing, Selection & Filtering in Pandas, and prepares you for the next lecture, Pandas Use Cases & Practice.
Tips for getting the most out of it
Lecture overview
This practice lecture applies Pandas to a complete mini analysis workflow. We load a dataset, explore it, filter and clean it, calculate summaries and export the results, using AI assistance for exploratory questions while verifying every result.
What you will learn
What we do in this lecture
Why this matters
Putting all the steps together is how you build confidence to handle real datasets in your own projects and in data-driven web features.
Practice task
Using a sales dataset, answer three business questions of your choice (for example: best month, top product per region, average basket size) and export the answers to a single Excel file with one sheet per question.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Pandas for Data Science in Python. This section teaches Pandas, the standard Python library for working with tabular data. It builds on NumPy and gives you the tools to load, explore, clean and analyse real datasets, skills you will reuse when building data-driven features and reports. It builds directly on the previous lecture, Data Cleaning & Wrangling in Pandas, and prepares you for the next lecture, Test your Pandas Skills.
Tips for getting the most out of it
Lecture overview
Test your Pandas skills. This lecture covers challenges on DataFrame creation, data loading, selection, filtering, cleaning and aggregation. Try each challenge on your own first, then compare with the walkthrough.
What you will learn
Why this matters
Solid Pandas skills let you handle data confidently in any Python role, whether you are building APIs, dashboards or AI features.
Practice task
Solve each challenge before watching the solution and revisit any lecture where you struggled.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Pandas for Data Science in Python. This section teaches Pandas, the standard Python library for working with tabular data. It builds on NumPy and gives you the tools to load, explore, clean and analyse real datasets, skills you will reuse when building data-driven features and reports. It builds directly on the previous lecture, Pandas Use Cases & Practice, and wraps up the section, so this is the right moment to review your notes and project files before moving on.
Tips for getting the most out of it
Lecture overview
This lecture contains the downloadable project files for the section Pandas for Data Science in Python. The archive holds the source code and resources used throughout the section, so you can follow along, compare your work with a known-good version, or jump straight to a working example.
What you will learn
What we do in this lecture
pip install -r requirements.txt where a requirements file is included)Why this matters
Having a working reference version lets you debug faster: when something does not behave as expected, you can compare your code with the finished version instead of guessing.
Practice task
Run the project from the downloaded files and compare it with your own version. Note at least one difference and understand why it was written that way.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Pandas for Data Science in Python. This section teaches Pandas, the standard Python library for working with tabular data. It comes at the end of the section and gives you the reference code for the lectures from Difficult to build this, Consider 5 Star rating to Test your Pandas Skills.
Tips for getting the most out of it
Lecture overview
This lecture introduces AI-powered development. You will learn what large language models are at a practical level, how chatbots and IDE coding assistants differ, what they are good and bad at, and how to fit them into a professional workflow. We also look at how applications call LLM APIs, which prepares you for the AI projects later in the course.
What you will learn
What we do in this lecture
Why this matters
AI tools are changing how software is built. Understanding how they work helps you use them effectively and build AI features into your own applications.
Practice task
Write a short Python script that sends a question to an LLM API and prints the answer. Store the API key in an environment variable, not in your code.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section AI Tools, LLM Chatbots & Building Applications with AI. This section turns AI into a practical development tool. You learn how LLM chatbots and coding assistants work, how to prompt them for high-quality code, and how to structure projects so that AI-assisted development stays maintainable. It opens this section and sets the direction for the lectures that follow, and prepares you for the next lecture, Mastering Prompting for Code Generation.
Tips for getting the most out of it
Lecture overview
This lecture goes deep into prompting for code generation. You will use prompt templates, few-shot examples, explicit constraints and step-by-step instructions to get better code. We also cover using AI for debugging, refactoring, writing tests and generating documentation, and how to spot hallucinated APIs or unwanted dependencies.
What you will learn
What we do in this lecture
Why this matters
The quality of AI-generated code depends heavily on the prompt. Strong prompting skills save hours of rework and help you avoid problems like unnecessary third-party libraries or API keys sneaking into your project.
Practice task
Create a prompt template you can reuse for generating a Python function with type hints, docstrings, error handling and pytest tests. Try it on two different tasks.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section AI Tools, LLM Chatbots & Building Applications with AI. This section turns AI into a practical development tool. You learn how LLM chatbots and coding assistants work, how to prompt them for high-quality code, and how to structure projects so that AI-assisted development stays maintainable. It builds directly on the previous lecture, Introduction to AI-Powered Development & LLM Chatbots, and prepares you for the next lecture, Project Structure & Best Practices for AI-Assisted Development.
Tips for getting the most out of it
Lecture overview
This lecture shows how to structure projects so that AI-assisted development stays clean and maintainable. You will learn a sensible folder structure, how to separate configuration from code, how to manage dependencies and environment variables, and how clear structure and documentation give AI tools better context.
What you will learn
What we do in this lecture
Why this matters
Good structure is what keeps a project manageable as it grows. It also makes AI tools far more accurate because they can follow existing patterns instead of inventing new ones.
Practice task
Restructure one of your earlier scripts into a proper project with src, tests, a requirements file, a .env.example file and a README.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section AI Tools, LLM Chatbots & Building Applications with AI. This section turns AI into a practical development tool. You learn how LLM chatbots and coding assistants work, how to prompt them for high-quality code, and how to structure projects so that AI-assisted development stays maintainable. It builds directly on the previous lecture, Mastering Prompting for Code Generation, and prepares you for the next lecture, Test yout AI Tools, LLM Chatbots Skills.
Tips for getting the most out of it
Lecture overview
Test your understanding of AI tools, LLM chatbots and prompting for development. This lecture includes practical challenges where you prompt, review and improve AI-generated code.
What you will learn
Why this matters
You will rely on these skills throughout the framework and project sections, so it is worth confirming them now.
Practice task
Complete every challenge, and for each one write down one risk you spotted in the AI output.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section AI Tools, LLM Chatbots & Building Applications with AI. This section turns AI into a practical development tool. You learn how LLM chatbots and coding assistants work, how to prompt them for high-quality code, and how to structure projects so that AI-assisted development stays maintainable. It builds directly on the previous lecture, Project Structure & Best Practices for AI-Assisted Development, and wraps up the section, so this is the right moment to review your notes and project files before moving on.
Tips for getting the most out of it
Lecture overview
This lecture contains the downloadable project files for the section AI Tools, LLM Chatbots & Building Applications with AI. The archive holds the source code and resources used throughout the section, so you can follow along, compare your work with a known-good version, or jump straight to a working example.
What you will learn
What we do in this lecture
pip install -r requirements.txt where a requirements file is included)Why this matters
Having a working reference version lets you debug faster: when something does not behave as expected, you can compare your code with the finished version instead of guessing.
Practice task
Run the project from the downloaded files and compare it with your own version. Note at least one difference and understand why it was written that way.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section AI Tools, LLM Chatbots & Building Applications with AI. This section turns AI into a practical development tool. You learn how LLM chatbots and coding assistants work, how to prompt them for high-quality code, and how to structure projects so that AI-assisted development stays maintainable. It comes at the end of the section and gives you the reference code for the lectures from Introduction to AI-Powered Development & LLM Chatbots to Test your AI Tools, LLM Chatbots Skills.
Tips for getting the most out of it
Lecture overview
This lecture introduces RESTful APIs. You will learn what an API is, what REST stands for, how clients and servers communicate over HTTP, and how resources, endpoints, HTTP methods, status codes and JSON payloads fit together. We also make simple API requests from Python to see it in practice.
What you will learn
What we do in this lecture
Why this matters
Every backend you build in this course, whether with Django, FastAPI or Flask, will expose REST APIs that your React frontend consumes. This lecture provides the vocabulary for everything that follows.
Practice task
Use Python requests to call a free public API (for example a weather or quotes API), print selected fields from the JSON response and handle a failed request gracefully.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section RestFul API Basics. This short section introduces the fundamentals of RESTful APIs, the communication layer between the backends and frontends you will build later in the course. It opens this section and sets the direction for the lectures that follow, and prepares you for the next lecture, Test your RestFul API Skills.
Tips for getting the most out of it
Lecture overview
Test your understanding of RESTful API basics. This lecture covers questions and small challenges on HTTP methods, endpoints, status codes and working with JSON.
What you will learn
Why this matters
A solid grasp of REST makes the backend and frontend sections much easier to follow.
Practice task
Answer each question before watching the explanation, and design the endpoints for a simple to-do API as an extra exercise.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section RestFul API Basics. This short section introduces the fundamentals of RESTful APIs, the communication layer between the backends and frontends you will build later in the course. It builds directly on the previous lecture, RESTful API Basics, and wraps up the section, so this is the right moment to review your notes and project files before moving on.
Tips for getting the most out of it
Lecture overview
A short lecture on how to connect with me on Instagram, where I share quick tips, behind-the-scenes content from course production and updates on new projects.
Why this matters
Following along is an easy way to keep learning between sessions.
Where this fits in the course
This lecture belongs to the section Architecture Design patterns. This section introduces the design patterns and architectural thinking that you will apply when building real applications, and then puts them to work by building a blog application with AI assistance. It opens this section and sets the direction for the lectures that follow, and prepares you for the next lecture, Important Design patterns to explore.
Lecture overview
This lecture introduces the design patterns that matter most for Python developers building real applications. You will learn what design patterns are, why they exist, and explore patterns such as Singleton, Factory, Strategy, Observer, Decorator, Repository and MVC/MVT, with practical Python examples and guidance on when each one helps and when it adds unnecessary complexity.
What you will learn
What we do in this lecture
Why this matters
Patterns give you a shared vocabulary with other developers and help you design systems that are easier to extend and test. They also help you recognise how Django, FastAPI and Flask are structured internally.
Practice task
Implement a payment module using the Strategy pattern with at least two payment methods, and a notification system using the Observer pattern.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Architecture Design patterns. This section introduces the design patterns and architectural thinking that you will apply when building real applications, and then puts them to work by building a blog application with AI assistance. It builds directly on the previous lecture, Get in touch with me on Instagram, and prepares you for the next lecture, Building Blog application using AI.
Tips for getting the most out of it
Lecture overview
In this lecture we put design and prompting skills together by building a blog application with AI assistance. You will plan the features and structure first, then use AI to generate the code step by step, reviewing and correcting it as an architect would. This sets the scene for the framework paths that follow.
What you will learn
What we do in this lecture
Why this matters
This is the workflow you will use in real projects: architecture first, then AI-accelerated implementation, then careful review. It also shows why understanding frameworks matters even when AI writes much of the code.
Practice task
Add a comments feature to the blog using AI assistance. Before you prompt, write down the data model and the routes you expect, then check whether the AI followed your plan.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Architecture Design patterns. This section introduces the design patterns and architectural thinking that you will apply when building real applications, and then puts them to work by building a blog application with AI assistance. It builds directly on the previous lecture, Important Design patterns to explore, and prepares you for the next lecture, Test your Architecture Design patterns Skills.
Tips for getting the most out of it
Lecture overview
Test your knowledge of design patterns and architectural thinking. This lecture presents scenarios where you choose the most suitable pattern and explain why.
What you will learn
Why this matters
Being able to justify design decisions is a core architect skill and a common interview topic.
Practice task
For each scenario, decide on a pattern and write one sentence justifying it before watching the answer.
By the end of this lecture you will be able to
Where this fits in the course
This lecture belongs to the section Architecture Design patterns. This section introduces the design patterns and architectural thinking that you will apply when building real applications, and then puts them to work by building a blog application with AI assistance. It builds directly on the previous lecture, Building Blog application using AI, and wraps up the section, so this is the right moment to review your notes and project files before moving on.
Tips for getting the most out of it
Are you ready to become the Python developer who can build, secure and ship an entire product on your own?
This course is built for two kinds of people: the complete beginner who wants a clear, guided path into professional web development, and the working developer who already knows some Python and wants to fill the gaps that stop them from being trusted with an entire system. You start with the language itself, move through data handling and AI-assisted development, then build real backends, real frontends, real containers and real cloud deployments. Along the way you will not just follow instructions, you will learn how to make the decisions an architect makes.
Your journey begins with Python itself. Data types, strings, collections, type hints, operators, control flow, functions, scope, and a full treatment of object-oriented programming, including inheritance, mixins, method resolution order, encapsulation, composition, abstract classes and dataclasses. From there you move into the essentials that separate scripts from software: custom exceptions, logging and debugging, file handling, CSV and JSON, and regular expressions.
As you progress, you add the data and AI layer. You work with NumPy arrays, broadcasting, aggregation and linear algebra, then Pandas for loading, selecting, cleaning and summarising real datasets. You then learn how to work with LLM chatbots and coding assistants properly: how prompting for code generation actually works, how to structure a project so AI tools produce consistent code, and how to review what they generate instead of trusting it blindly.
Then comes the part that makes this course different. Instead of one backend framework, you get three. You build the same blog application, from the same Figma design, in Django, in FastAPI and in Flask, so you can compare them directly and choose your path with real experience rather than opinions. You learn Django models, migrations, views, templates and the admin panel, FastAPI with Pydantic validation, routers and automatic documentation, and Flask with routing, Jinja2 templates, forms, blueprints and the application factory pattern.
Next you cross over to the frontend. You learn what actually belongs on the server and what belongs in the browser, then build with HTML and CSS, including a complete responsive admin dashboard. You work through JavaScript from variables and arrays to the DOM, array methods, promises, the Fetch API and async and await, with proper error handling so your application never fails silently. Then you move into React: components, props, state, hooks, Material UI, Axios, CORS, login with token handling and protected routes, and a complete albums and photos application with uploads, edit, delete, downloads and modals.
Take your skills to the next level with the professional layer that most courses skip. You design REST APIs properly, using resource-based URIs, correct status codes, idempotence, HATEOAS and the Richardson Maturity Model. You containerise your work with Docker and Docker Compose, then study architecture directly: design patterns, monoliths versus microservices, and how to justify the choice you make.
Finally, you build production-style projects end to end. A full-stack starter kit with an identity provider using Keycloak, then migrated to AWS Cognito. An AI transcription pipeline using Whisper, Celery and Amazon S3, deployed to AWS EC2. A Supabase starter kit with a Next.js frontend, Google social login and CAPTCHA protection. A local LLM chat application running Gemma in Docker with GPU acceleration. And a video editor built with Remotion using vibe coding, from the first prompt to a working tool.
Course Highlights
What Sets Us Apart?
Extensive Content
More than 250 lectures and 33 hours of teaching, organised into short, focused lessons with a quiz at the end of every section so you always know where you stand.
Three Frameworks, One Course
Most courses pick one framework and hope it is the right one for you. Here you build the same application in Django, FastAPI and Flask, understand the trade-offs, and choose with confidence.
Latest Tools and Technologies
Python, Django, FastAPI, Flask, React, Next.js, Docker, Keycloak, AWS Cognito, S3, EC2, Celery, Supabase, Whisper, Remotion and modern AI coding assistants.
Professional Tooling Included
Enrolling gives you a FREE 6-month JetBrains IDE subscription and 6 months of free practice material on JetBrains Academy, so you can code along in a professional environment and keep practising between lectures.
Focus on AI-First Development
You learn to build with AI assistants the way professional teams do: clear prompts, controlled project structure, and disciplined review of every line the AI produces.
Uncover the top skills taught in our course
New Addition: Choose Your Own Backend Path
But that is not all! This course now branches after the Python foundations so you can follow the framework that matches your goals, and return later for the others. Each path builds the same application from the same design, which makes the comparison honest and direct.
What You Will Learn
Course Curriculum Content
Build a Strong Foundation in Python
You begin with the architect mindset and a fast but thorough refresher of the language, so that every framework you meet later feels familiar instead of magical.
Topics covered:
Write Software That Survives Real Users
Next you add the practical skills that turn scripts into dependable applications.
Topics covered:
Work with Data and AI
You then move into the data and AI layer that modern Python developers are expected to know.
Topics covered:
Build the Same Application in Django, FastAPI and Flask
This is the heart of the course. You build a blog application three times, from the same Figma design, and see exactly how each framework thinks.
Topics in this section:
Master the Frontend
You then learn what the browser is responsible for, and build the interfaces your Python backend will serve.
Topics in this section:
Design APIs and Build with React
With the fundamentals in place, you design APIs properly and build a real React application against them.
Topics in this section:
Containerise, Architect and Deploy
Next you package your work and learn to make the decisions that shape a system.
Topics in this section:
Bonus Modules: Production-Style Projects
Full-Stack Starter Kit with an Identity Provider
You build a reusable starter kit with a React frontend, a Python backend and a real identity provider, then migrate it to a managed cloud service and extend it with AI transcription.
Topics in this section:
Supabase Starter Kit, Local LLM and a Vibe-Coded Video Editor
You finish with three modern projects that show what a single developer can ship today.
Topics in this section:
Course Features
Why Choose This Course?
Comprehensive Content: 47 sections, more than 250 lectures and over 33 hours of teaching that take you from the first line of Python to a deployed cloud application.
Unique Teaching Style: Short, focused lessons, practical demonstrations and plain explanations, followed by quizzes and AI role plays that make you use what you just learned.
Comprehensive Learning: Three backend frameworks, a full frontend stack, containers, cloud deployment and architecture in a single structured path.
Hands-On Approach: Every section ends with practice, project files and a knowledge check, and every major module ends with a real application you have built yourself.
Career Booster: Full-stack Python skills, cloud deployment experience and AI-assisted development are exactly what employers and clients are asking for right now.
Why Learn Full Stack Python Development?
Python has become the default language for backend systems, automation, data work and AI, and companies increasingly want developers who can take a feature all the way from an idea to a running service rather than handing it between teams. A developer who can design an API, build the interface that consumes it, containerise the result and deploy it to the cloud is far harder to replace than someone who only knows one layer. Add the ability to work effectively with AI coding assistants, and you become the person a team relies on to ship, which is where better salaries, freelance rates and interesting projects follow.
About the Instructor
Your instructor is a seasoned software developer and bestselling online instructor who has taught more than 250,000 students worldwide. The teaching style is practical and direct: concepts are explained in plain language, demonstrated in real projects, and reinforced with exercises so you finish able to build, not just able to watch.
Enroll Risk-Free
Still hesitating? You are covered by a 30-day money-back guarantee. If the course is not right for you within the first 30 days, you get a full refund, no questions asked.
Your journey to becoming a complete Python developer starts with a single decision.
Pick your path, open your editor, and start building.
Enroll today. See you on the course!