Freea Python course for JavaScript developers
Learn Python through the JavaScript you already know.
Side-by-side lessons that map every Python idea to its JS twin, flag the habits that will bite you, and check your code with real Python running in your browser.
- lessons
- 33
- modules
- 13
- installs needed
- 0
You don't need another beginner course. You need a translation.
Mapped to what you know
Every concept starts from its JavaScript equivalent. Arrays become lists, objects become dicts, Promise.all becomes asyncio.gather.
The traps, called out
Empty arrays that are falsy, mutable default arguments, is versus ==. The habits that quietly break Python code get flagged before they cost you an afternoon.
Real code, really checked
Exercises run on real Python in your browser. Hidden tests check what your code does, so any correct solution passes.
Read it. Write it. Run it.
Every lesson follows the same short loop, so you spend your time on Python, not on figuring out the course.
Read the comparison
The idea in plain words, a quick-reference table and both languages side by side.
Write the Python
A focused exercise with an editor that highlights as you type. Hints when you are stuck.
Get checked for real
Your code runs on Python 3.14 in the browser, with hidden tests for the result.
From print() to the tooling real teams ship with.
Foundations
Syntax, data structures and loops: the part you will use every single day.
- 014 lessons
Syntax Bridge
Variables, strings, numbers, conditions
- 023 lessons
Data Structures
Lists, Dicts, Tuples, Sets
- 032 lessons
Loops & Iteration
for, while, for/else, built-ins
Core Python
Functions, classes, modules, and the gotchas that trip up JavaScript developers.
- 043 lessons
Functions
Args, Comprehensions, Decorators
- 052 lessons
Gotchas & Pitfalls
None, scope, is vs ==
- 063 lessons
OOP
Classes, Inheritance & Dunder Methods
- 073 lessons
Modules & Errors
import, __main__, try/except
Professional
Files, generators, modern typing, async and testing: what real projects need.
- 082 lessons
File I/O & Data
Files, JSON, regex
- 092 lessons
Generators & Context Managers
yield, lazy evaluation, with
- 103 lessons
Modern Python
Dataclasses, types, match/case
- 112 lessons
Async & Testing
asyncio, pytest
Mastery
The idioms and tooling that make your code look like a Python developer wrote it.
- 122 lessons
Pythonic Patterns
Write like a pro
- 132 lessons
Ecosystem & Tooling
stdlib, uv, venvs, ruff
Notes and quotes
Write notes per lesson, or select any sentence to quote it.
Streaks and goals
A small daily goal and a streak to keep you coming back.
Light and dark
Follows your system theme, switchable any time.
Keyboard friendly
Run and check with shortcuts, accessible to screen readers.
Deep links
Every lesson has its own URL you can bookmark or share.
Open source
MIT licensed. Read the code, suggest a fix, fork it.
Questions, answered.
Do I need to install Python?
No. Exercises run on real Python (Pyodide, compiled to WebAssembly) inside your browser. The first run downloads the runtime once; after that it is instant.
How are my answers checked?
Two layers. Quick static checks catch JavaScript habits like console.log or ===. Then your code runs together with hidden tests that check what it actually does, so any correct solution passes, not just the reference one.
Who is this for?
Developers who are comfortable with JavaScript or TypeScript and want to become productive in Python quickly. It is not an intro to programming.
Where is my progress saved?
In your own browser. There is no account, no sign-up and no tracking. Clearing your site data resets it.
Which Python version does it teach?
Modern Python: the lessons target 3.12 and newer, and the in-browser runtime is Python 3.14.
Is it free?
Yes. Free and open source under the MIT license.
Designed and built by
Sabry E. Farrag
I built this course for developers who already think in JavaScript and want to be productive in Python, without starting over from “what is a variable”. Every lesson starts from what you know and focuses on what is actually different.