Drill
Idiom contrast
Rewrite three of your own methods, then delete the classes you did not need. Ten problems twice: Java-shaped, then idiomatic.
A conversion week for senior engineers who already ship in C#, Java, PHP, JavaScript or PowerShell: idiomatic Python, the questions interviewers actually ask, and something honest to talk about.
Created by Baljeet Dogra
Drill
Rewrite three of your own methods, then delete the classes you did not need. Ten problems twice: Java-shaped, then idiomatic.
Build
A CLI, API, pipeline or PowerShell rewrite with type hints, pytest, a README of trade-offs, and a GitHub history you can defend.
Prep
Thirty questions rehearsed aloud, two recorded mocks, and the narrative: what you built last week and where C# instincts were wrong.
Expand a part for the syllabus. Content stays searchable when closed.
Install first. Then type the surface of the language. Then the memory picture. Then a map of the frameworks you will hear in every Python shop — each with a use case and an architecture — plus the shapes underneath, including events. Day 1 is still names-on-a-heap, not a framework tour you claim as scar tissue.
pyproject.toml — [project], extras versus groups, uv lock__init__.py, regular versus namespace, __all__def, if/elif, the for-loop family, lambda, literals, f-strings, string methodsChoose the right structure, then write cleaner Python: decorators, generators, and with. 0.24 is the decorator lab, including stacked wrappers. 0.25 is raise, ValueError, and custom exception types. 0.26 is dictionary handling — .get, views, aggregates on .values(). 0.27 is lambdas: key=, map / filter, and when a comprehension is clearer. 0.28 is dunder methods — __str__, __eq__, __len__, __call__; Day 3 still types the hash contract. Name metaclasses and introspection without claiming you wrote an ORM. Days 2–3 are where you type the decorator and the generator; Day 4 still types exception chaining; the six-week Data Structures & Algorithms course is where you implement graphs under load. Tonight is vocabulary you can defend.
@, yield, with; Day 2–3 still own the typingtype, inspect; you name them, you do not ship a metaclasswraps, factories, stacked @a @b (bottom first, call onion outside-in)raise, ValueError versus TypeError, custom types inherit Exception; Day 4 still owns chaining.get versus [], in on keys, views, aggregates on .values(); Day 2 still owns defaultdictlambda args: expression; map / filter / sorted / max do the looping; Day 2 still prefers a comprehension; Day 3 still owns late binding__init__, __str__ versus __repr__, __eq__, operators, containers, __call__, with; Day 3 still owns __hash__A pattern is a named solution. In Java and C# that name often arrives as a class hierarchy. In Python it is frequently a function, a module, a Protocol, or a builtin you already typed. You map the name; you do not ship 23 UML folders as this week’s scar tissue. Strategy is a callable. Singleton is usually a module. The decorator pattern wraps an object; @ rebinds a function (0.24). Observer is 0.20.
classmethod as Factory, kwargs as Builder@Three labs, one day. 1.1 is the object model. 1.2 is calls and scope. 1.3 is the spoken gate — until twelve near-certain cards are clean twice, Day 1 is not finished.
is/==, copy, None, mutable defaults*args/**kwargs, keyword-only, LEGB, enumerate/zip, slicing, truthinessHighest-leverage day. Stop sounding like a Java developer: comprehensions, generators, EAFP, and the standard library that makes you look fluent.
yieldcollections and itertoolspathlib, Counter, enumerateThe “explain how X works” questions: closures and late binding, decorators with wraps, context managers, dunders, MRO, dataclasses.
wraps__eq__/__hash__Protocol, ABC, dataclassesThe questions that separate senior from mid-level. The GIL in ninety seconds, threads vs processes vs asyncio, memory and exceptions.
Sound like someone who ships Python: packages, venv/uv, pytest, type hints, then one role-shaped afternoon. You already mapped Django, Flask, FastAPI, Uvicorn, Pydantic, the database layers, scheduled tasks and the rest in 0.6–0.20, you already read pyproject.toml in 0.2, and you already walked __init__.py in 0.3 — today you install for a track.
src/ layout and imports (you already walked __init__.py in 0.3)uv, venv, pyproject.toml (you already walked the file in 0.2)Ten timed problems out loud, then something genuinely yours — the honest answer to “what have you built in Python?”
Counter, defaultdict, unpackingSpoken drilling on the question bank, two mocks, then attack weak spots. Prepare questions about their stack, tests and typing.
You are fluent in C#, Java, PHP, JavaScript or PowerShell. You need Python as the delivery language, not a beginner syllabus.
You need credible language answers and a live-coding round you will not fumble — without claiming years of production Python.
def, loops and lambda until they are boring.Related: Python for GenAI · Data Structures & Algorithms
No. A week gets you fluent syntax, idiomatic style, the language questions interviewers actually ask, and an artefact. It does not get you production scar tissue or a 45-minute deep dive on a Python system you supposedly built two years ago.
“Fifteen years across C#, Java and JavaScript; I picked up Python recently and I am productive in it — here is something I built.” That is credible. Claiming years of Python is what the deep-dive round exists to catch.
No. Python for GenAI is a foundation for people new to the language. This week assumes you already ship software and spends the time on the 30% that misleads a Java or C# developer.
Seven days, about fifty hours. Create an account to enrol.