



Lessons above the clouds
172 lessons across four languages. Pick a track and follow the chapters, one small, glowing stop at a time.
Python Basics
beginner0/7 doneName a piece of data and keep it in a box you can open later.
Text lives inside quotes. Join it, repeat it, measure it.
Add, divide, round and find remainders with Python's number operators.
Drop values straight into text with f-strings.
Clean up, search and split text with built-in methods.
Turn text into numbers and back with int(), float() and str().
Read what the user types with input() and answer back.
Conditionals and logic
beginner0/5 doneCompare numbers and strings to produce True or False answers.
Use if and else to make your program take different paths.
Link multiple conditions together to handle many different cases.
Use and, or, and not to combine multiple conditions together.
Nesting if statements inside other if statements or loops.
Loops and iteration
beginner0/7 doneDo it again, once per cloud, without copying a single line.
Generate sequences of numbers to repeat blocks of code dynamically.
Iterate through lists and strings to process every item.
Keep repeating your code as long as a condition remains true.
Skip turns with continue, or exit the entire loop early with break.
Accumulate values or run loops inside other loops.
Sum, count, find the biggest and collect with four classic loop shapes.
Bundle a few steps under a name and reuse them anywhere.
Pass data into your functions to make them dynamic and flexible.
Make your functions calculate a value and hand it back to the caller.
Provide optional values for parameters or pass them in by name.
Understand where your variables live and where they can be accessed.
Build complex actions by composing smaller, simpler helper functions.
Keep many things in one place, in the order you put them.
Add, remove, sort and search lists with their built-in methods.
Label every value with a key so you can find it fast.
Loop over keys and values, read safely with get(), and update in bulk.
Lists of dictionaries and dictionaries of lists: the shape of real data.
Build new lists in a single readable line of code.
Build dictionaries dynamically using comprehension syntax.
Extract sub-lists or substrings using slice boundaries.
Store unique elements (sets) or immutable values (tuples).
Pull a tuple or list apart into named variables in one line.
Iterate with indices or loop over multiple lists in parallel.
Accept any number of values with *args and named options with **kwargs.
Sort by any rule with key= and tiny lambda functions.
Catch and handle errors gracefully using try blocks.
Stop bad input early with raise and custom exception classes.
Open, read, and write local files safely using context managers.
Turn Python data into JSON text and back with the json module.
Reuse Python's standard library with import.
Define classes and instantiate objects with local state.
Build new classes on top of old ones with inheritance and super().
Teach your classes to print, compare and add with __str__, __eq__ and friends.
Let @dataclass write __init__, __repr__ and __eq__ for you.
Label what your functions expect and return so tools can catch mistakes.
See what a for loop really does with iter(), next() and your own iterator classes.
Generate items lazily without keeping the whole sequence in memory.
Functions that remember the variables around them.
Modify or wrap function behavior dynamically using @ decorators.
Guarantee setup and cleanup with the with statement.
Combinations, chains, reduce and partial: loops and functions, pre-built.
Find and replace text by pattern with the re module.
Count the steps your code takes as the input grows.
Solve a problem by solving a smaller copy of it.
Linear search checks everything; binary search halves the problem each step.
Write insertion sort and merge sort to see how sorting works.
Last in, first out and first in, first out, with list and deque.
Count, group and pair things in one pass with dicts and sets.
Save answers to repeated calls and turn exponential code into linear code.
Control reading and writing an attribute with __get__ and __set__.
Intercept object attribute lookup using magic methods.
Run non-blocking cooperative code with asyncio.
Deep dive into CPython execution, compilation, and gc.
Check your functions automatically with assert and unittest.
Python for Web Development
expert0/5 doneUnderstand the role of a web server, HTTP, and how Python fits into backend development.
Create a minimal web server with Flask routes and return JSON responses.
Understand Django's project structure, ORM, and admin panel.
Build typed REST endpoints with FastAPI and automatic documentation.
Parse query parameters, read JSON bodies, set status codes, and return headers.
Perform fast element-wise math on arrays without writing loops.
Load, inspect, and query structured tables using Pandas.
Handle missing values, fix types, and reshape raw datasets for analysis.
Create line charts, bar charts, and scatter plots to explore patterns in data.
Train a simple classifier, evaluate accuracy, and make predictions using scikit-learn.
