You are NOT signed in as a student! Your progress will not be saved and you won't see milestones on your ZTM Passport.
Make sure you are logged into
Academy
Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Complete Python Developer in 2025: Zero to Mastery
Introduction
Complete Python Developer: Zero to Mastery (3:38)
Course Outline (5:57)
Exercise: Meet Your Classmates and Instructor
ZTM Plugin + Understanding Your Video Player
Set Your Learning Streak Goal
Python Introduction
What Is A Programming Language? (6:24)
Python Interpreter (7:04)
How To Run Python Code (4:53)
IMPORTANT: Replit Code
Latest Version Of Python (1:28)
Note: Jumping To Developer Environment
Our First Python Progam (7:43)
Python 2 vs Python 3 (6:41)
Why So Many Languages? (4:14)
Exercise: How Does Python Work? (2:09)
ZTM Python Cheat Sheet
Python Developer Monthly
Let's Have Some Fun (+ Free Resources)
Python Basics
Learning Python (2:05)
Python Data Types (4:46)
How To Succeed
Numbers (11:09)
Math Functions (4:29)
DEVELOPER FUNDAMENTALS: I (4:07)
Operator Precedence (3:10)
Exercise: Operator Precedence
Optional: bin() and complex (4:02)
Endorsements On LinkedIn
Variables (13:12)
Expressions vs Statements (1:36)
Augmented Assignment Operator (2:49)
Strings (5:29)
String Concatenation (1:16)
Type Conversion (3:03)
Escape Sequences (4:23)
Formatted Strings (8:23)
String Indexes (8:57)
Immutability (3:13)
Built-In Functions + Methods (10:03)
Booleans (3:21)
Exercise: Type Conversion (8:22)
DEVELOPER FUNDAMENTALS: II (4:42)
Exercise: Password Checker (7:21)
Lists (5:01)
List Slicing (7:48)
Matrix (4:11)
List Methods (10:28)
List Methods 2 (4:24)
List Methods 3 (4:52)
Common List Patterns (5:57)
List Unpacking (2:40)
None (1:51)
Dictionaries (6:21)
3.7 Update: Ordered Dict
DEVELOPER FUNDAMENTALS: III (2:40)
Dictionary Keys (3:37)
Dictionary Methods (4:37)
Dictionary Methods 2 (7:04)
Tuples (4:46)
Tuples 2 (3:14)
Sets (7:24)
Sets 2 (8:45)
Unlimited Updates
Python Basics 2
Breaking The Flow (2:34)
Conditional Logic (13:18)
Indentation In Python (4:38)
Truthy vs Falsey (5:18)
Ternary Operator (4:14)
Short Circuiting (4:02)
Logical Operators (6:56)
Exercise: Logical Operators (7:47)
is vs == (7:36)
For Loops (7:01)
Iterables (6:43)
Exercise: Tricky Counter (3:23)
range() (5:38)
enumerate() (4:37)
While Loops (6:28)
While Loops 2 (5:49)
break, continue, pass (4:15)
Our First GUI (8:48)
DEVELOPER FUNDAMENTALS: IV (6:34)
Exercise: Find Duplicates (3:54)
Functions (7:41)
Parameters and Arguments (4:24)
Default Parameters and Keyword Arguments (5:40)
return (13:11)
Exercise: Tesla
Methods vs Functions (4:33)
Docstrings (3:47)
Clean Code (4:38)
*args and **kwargs (7:56)
Exercise: Functions (4:18)
Walrus Operator (7:15)
Scope (3:37)
Scope Rules (6:55)
global Keyword (6:13)
nonlocal Keyword (3:21)
Why Do We Need Scope? (3:38)
Python Exam: Testing Your Understanding
Course Check-In
Developer Environment
MAC - Python Install (4:23)
WINDOWS - Python Install (4:01)
WINDOWS - Get Terminal
LINUX - Python Install
Python Developer Tools (3:04)
Sublime Text (5:48)
Resources: Customizing Sublime Text 4
Quick Note: Upcoming Video
Optional: Terminal Commands (9:56)
iTerm Setup
Using the Command Line/Terminal (3:00)
Visual Studio Code (7:29)
PyCharm (8:19)
Code Formatting - PEP 8 (5:26)
Quick Note: Jupyter Notebooks
Jupyter Notebooks (12:03)
Section Review (2:20)
Implement a New Life System
Advanced Python: Object Oriented Programming
Note on Upcoming Sections
What Is OOP? (5:46)
What is OOP? Part 2 (8:17)
Creating Our Own Objects (11:34)
Attributes and Methods (9:12)
__init__ (2:52)
Exercise: Cats Everywhere
@classmethod and @staticmethod (5:47)
Reviewing What We Know So Far (2:09)
DEVELOPER FUNDAMENTALS: V (2:56)
Encapsulation (5:51)
Abstraction (4:48)
Private vs Public Variables (5:20)
Inheritance (9:27)
Inheritance 2 (4:12)
Polymorphism (7:07)
Exercise: Pets Everywhere
super() (5:02)
Object Introspection (2:07)
Dunder Methods (9:53)
Exercise: Extending List (5:00)
Multiple Inheritance (6:58)
MRO - Method Resolution Order (8:31)
Advanced Python: Functional Programming
Functional Programming (1:23)
What Is Functional Programming? (3:01)
Pure Functions (9:23)
map() (6:30)
filter() (4:23)
zip() (3:28)
reduce() (7:31)
Exercises: map, filter, zip, reduce
Lambda Expressions (7:45)
Exercise: Lambda Expressions (6:27)
List Comprehensions (8:37)
Set and Dictionary Comprehension (6:26)
Exercise: Comprehensions (4:36)
Exercise: Imposter Syndrome (2:55)
We Still Have More To Go!
Advanced Python: Decorators
Decorators (6:28)
Higher Order Functions (2:11)
Decorators 2 (7:49)
Decorators 3 (6:09)
Why Do We Need Decorators? (8:42)
Exercise: @authenticated
Advanced Python: Error Handling
Errors in Python (6:11)
Error Handling (8:31)
Error Handling 2 (6:01)
Exercises: Error Handling (4:57)
Error Handling 3 (3:06)
Advanced Python: Generators
Generators (4:57)
Generators 2 (10:30)
Generators Performance (4:33)
Under The Hood Of Generators (9:15)
Exercise: Fibonacci Numbers (8:46)
100 Python Exercises
Modules In Python
Modules In Python (11:47)
Packages In Python (10:45)
Different Ways To Import (7:03)
__name__ (8:52)
Python Built-in Modules (11:08)
Python Built-in Modules 2 (6:05)
Exercise: Guessing Game (12:29)
Python Package Index (7:13)
pip install (9:28)
Virtual Environments (7:07)
Useful Modules (10:08)
Interesting Tidbit: Python Dict
Useful Modules 2 (6:15)
DEVELOPER FUNDAMENTALS: VI (2:16)
Debugging In Python
How To Debug Code (13:28)
File I/O
Working With Files In Python (8:32)
Read, Write, Append (7:23)
File Paths (6:53)
File IO Errors (2:23)
Exercise: Translator (9:55)
Regular Expressions
Regular Expressions (8:23)
Regular Expressions 2 (8:01)
Exercises: Interactive RegEx
Regular Expressions 3 (7:33)
Exercise: Password Validation (5:52)
Exercise: Password Validation 2
Testing In Python
Testing Introduction (5:31)
Unittest (11:03)
Writing Unit Tests (8:06)
Writing Unit Tests 2 (6:01)
Exercise: Testing (14:03)
Career Of A Python Developer
Python Careers (4:03)
Endorsements On LinkedIn
Quick Note: Upcoming Video
What If I Don't Have Enough Experience? (21:30)
Learning Guideline
Now What?? (5:03)
Scripting With Python
Section Overview (1:30)
What Is Image Processing? (3:43)
DEVELOPER FUNDAMENTALS: VII (3:08)
Final Updated Code for this Project
Images With Python (8:45)
Images With Python 2 (5:14)
Images With Python 3 (4:56)
Exercise: JPG to PNG Pokedex Converter (5:42)
Quick Note: Github
Solution: JPG to PNG Pokedex Converter (11:31)
OpenCV (1:28)
Quick Note: Upcoming Lecture
PDFs With Python (12:08)
Exercise: PDF Merger (4:54)
Exercise: Watermarker (2:17)
Solution: Watermarker (7:19)
Sending Emails With Python (4:49)
Quick Note: Google Security Updates
Sending Emails With Python 2 (8:00)
Sending Emails With Python 3 (8:40)
Password Checker Project (2:53)
How Hackers Work (4:42)
Password API (8:09)
Quick Note: Upcoming Video
Optional: Hash Function (5:56)
Password Checker (9:52)
Password Checker 2 (8:36)
Password Checker 3 (6:50)
Password Checker 4 (3:13)
Quick Note: Twitter/X API Approval
Alternative Option: Bluesky Bot
Twitter API (3:54)
Quick Note: Tweepy API
Our First Twitter Bot (6:48)
Our First Twitter Bot 2 (7:56)
Our First Twitter Bot 3 (1:29)
Our First Twitter Bot 4 (7:08)
SMS With Python (3:08)
SMS With Python 2 (1:29)
SMS With Python 3 (6:45)
Ntfy Fun
Exercise: Build Something Funny
Scraping Data with Python
Web Scraping Introduction (4:47)
Web Scraping and APIs (9:10)
How Googlebot Works (4:30)
Our Hacker News Project (3:26)
Requesting Data (5:19)
BeautifulSoup Basics (6:39)
Quick Note: .storylink to .titleline
BeautifulSoup Selectors (7:36)
Hacker News Project (8:33)
Hacker News Project 2 (7:10)
Hacker News Project 3 (5:14)
Solution: Hacker News Project 3 (4:03)
What To Do Next With Scraping? (3:31)
Web Development with Python
Section Overview (1:32)
How Websites Work (8:13)
How Websites Work 2 (4:31)
Building Our First Server (9:23)
Quick Note: Flask Versions
Setting Up Flask (9:47)
Building A Flask Server (10:41)
Flask Templates (8:07)
Flask Static Files (3:43)
Favicon (3:04)
Templating Engine (3:54)
URL Parameters (6:45)
MIME Types (5:21)
Files Needed for Next Video
Building A Portfolio (9:10)
FREE HTML Templates
Building A Portfolio 2 (6:46)
Building A Portfolio 3 (7:11)
Building A Portfolio 4 (6:40)
HTML Forms
Building A Portfolio 5 (10:01)
Building A Portfolio 6 (7:07)
Building A Portfolio 7 (11:00)
Quick Fix: newline
Quick Note About Databases (2:15)
Upcoming Video
Optional: How Databases Work (10:54)
Building A Portfolio 8 (14:54)
Building A Portfolio 9 (6:54)
Bonus Exercise: Customize Your Portfolio
Automation/Testing
Section Overview (1:50)
Quick Note: Selenium Version
Selenium Introduction (10:10)
Quick Update: Selenium 4+
Selenium Basics (11:47)
Selenium Basics 2 (10:51)
Selenium Basics 3 (6:13)
A.I. & Machine Learning + Data Science
Section Overview (2:38)
AI/Machine Learning/Data Science (3:44)
How Machine Learning Works (5:53)
History Of Data (4:39)
Types of Machine Learning (4:53)
Machine Learning 101 (8:48)
Tools In Machine Learning (6:07)
Kaggle Datasets
Data Science 1 (9:57)
Data Science 2 (10:48)
Data Science 3 (12:30)
Machine Learning 1 (12:03)
Machine Learning 2 (6:15)
Machine Learning 3 (5:53)
Optional: K Nearest Neighbour
Machine Learning 4 (3:08)
Quick Note: Joblib Update
Machine Learning 5 (5:35)
Machine Learning 6 (4:28)
Exercise: ReallySmartBrain (13:55)
My Favourite Machine Learning Resources
Where To Go From Here?
Thank You (1:27)
Review This Course!
Become An Alumni
Learning Guideline
ZTM Events Every Month
LinkedIn Endorsements
Bonus: Extra Bits
Watch Git, Github + Open Source Projects Section
Quick Note: Upcoming Videos
JTS: Learn to Learn (1:59)
JTS: Start With Why (2:43)
Quick Note: Next Video
My Terminal Setup (6:36)
My Terminal Setup 2
Some Old Videos for You
AMA - 1,000 Students!! (19:03)
AMA - 100,000 Students!! (38:30)
Bonus: HTML Forms
Quick Note: Upcoming Videos
HTML Forms (10:59)
HTML Forms 2 (3:13)
Submitting A Form (8:22)
Password Checker Project
This lecture is available exclusively for ZTM Academy members.
If you're already a member,
you'll need to login
.
Join ZTM To Unlock All Lectures