Skip to content

ይህ ገጽ ገና ወደ አማርኛ አልተተረጎመም፤ ስለዚህ በእንግሊዝኛ ቀርቧል። የእንግሊዝኛውን ገጽ ክፈቱ

Abstract dark green obsidian wave coiling into two smooth loops with a thin brass rim light
Open now

Python

Start with print() and finish writing typed, tested, async Python. One project grows with you the whole way.

  • 20 ክፍሎች
  • 134 ትምህርቶች
  • Shallows to Landfall
  • Free to learn

What you'll be able to do

  • Write clean programs that solve real everyday problems
  • Structure code with functions, classes, and modules
  • Use generators, decorators, and context managers with confidence
  • Write typed, tested code that automated tools can check
  • Use threads, processes, and async/await correctly
  • Be fully prepared to build production APIs with FastAPI

The full syllabus

20 modules, from the Shallows down. Open any module to see its lessons. Written lessons open in full, free. The rest show what they will teach until they're written.

The Shallows

From zero to writing real little programs. No experience needed.

  1. , 0 of 6 lessons done
    0መጀመርPython ምን እንደሆነ፣ ማዘጋጀት፣ እና የመጀመሪያ ፕሮግራሞቻችሁ።
    1. 0.1Python ምንድን ነው? (Reading)
    2. 0.2Pythonን እና VS Codeን መጫን (Reading)
    3. 0.3የመጀመሪያ ፕሮግራማችሁ፦ print() (Reading)
    4. 0.4Pythonን የማስኬጃ ሁለት መንገዶች (Reading)
    5. 0.5ኮሜንቶችና በቀላሉ የሚነበብ ኮድ (Reading)
    6. 0.6Checkpoint፦ መጀመር
  2. , 0 of 7 lessons done
    1እሴቶችና ስሞችእሴቶችን መሰየም፣ ማጣመርና ማቅረብ፣ ተጠቃሚውንም መጠየቅ።
    1. 1.1ስሞች (variables)
    2. 1.2ቁጥሮችና ሒሳብ
    3. 1.3ስትሪንጎች
    4. 1.4በf-strings ማቅረብ
    5. 1.5ተጠቃሚውን መጠየቅ፦ input()
    6. 1.6ዓይነቶችና መቀየር
    7. 1.7ፕሮጀክት፦ የሂሳብ ማካፈያ
  3. , 0 of 6 lessons done
    2Making decisionsPrograms that choose what to do.
    1. 2.1True, False, and comparisons
    2. 2.2if, elif, else
    3. 2.3and, or, not
    4. 2.4Truthy and falsy
    5. 2.5match statements
    6. 2.6Project: Grade calculator (ፕሮጀክት)
  4. , 0 of 5 lessons done
    3LoopsRepeating work without repeating code.
    1. 3.1while loops
    2. 3.2for loops and range()
    3. 3.3break, continue, and loop else
    4. 3.4Nested loops
    5. 3.5Project: Number guessing game (ፕሮጀክት)
  5. , 0 of 9 lessons done
    4CollectionsLists, tuples, dictionaries, and sets, and how Python names really work.
    1. 4.1Lists
    2. 4.2List methods and sorting
    3. 4.3Tuples and unpacking
    4. 4.4Dictionaries
    5. 4.5Sets
    6. 4.6Looping patterns
    7. 4.7Comprehensions
    8. 4.8Mutability and references
    9. 4.9Project: Contact book (ፕሮጀክት)
  6. , 0 of 8 lessons done
    5FunctionsBreaking programs into named, reusable pieces.
    1. 5.1Defining functions
    2. 5.2Arguments in depth
    3. 5.3Scope
    4. 5.4*args and **kwargs
    5. 5.5Functions are values
    6. 5.6Docstrings and a first look at type hints
    7. 5.7Recursion
    8. 5.8Project: Refactor with functions (ፕሮጀክት)
  7. , 0 of 6 lessons done
    6Working with textStrings in depth, Unicode (including Amharic), and regular expressions.
    1. 6.1String methods
    2. 6.2Slicing strings
    3. 6.3Unicode and Amharic text
    4. 6.4Regular expressions: the basics
    5. 6.5Regular expressions: groups and testing
    6. 6.6Project: Text analyzer (ፕሮጀክት)
  8. , 0 of 4 lessons done
    7Errors and debuggingReading, handling, and raising errors, and finding bugs fast.
    1. 7.1Reading a traceback
    2. 7.2try, except, else, finally
    3. 7.3Raising your own errors
    4. 7.4Debugging like a pro
  9. , 0 of 9 lessons done
    8Files, modules, and your environmentSaving data, organizing code, and using other people's code.
    1. 8.1Reading and writing files
    2. 8.2Paths with pathlib
    3. 8.3CSV files
    4. 8.4JSON
    5. 8.5Modules and imports
    6. 8.6A tour of the standard library
    7. 8.7Command-line programs
    8. 8.8Packages and virtual environments
    9. 8.9Project: Birr Ledger v1 (ፕሮጀክት)
  10. , 0 of 5 lessons done
    9TestingChecking your code automatically, with tests chosen to catch bugs.
    1. 9.1Why test?
    2. 9.2pytest basics
    3. 9.3Fixtures and parametrize
    4. 9.4Thinking in edge cases
    5. 9.5Project: Test Birr Ledger (ፕሮጀክት)

Currents

Writing Python the way experienced developers do: objects, iteration, decorators, context managers, and types.

  1. , coming soon
    10Object-oriented PythonModeling things with classes, and making your objects feel built-in.
    1. 10.1Classes and objectsበቅርቡ
    2. 10.2__init__ and attributesበቅርቡ
    3. 10.3Methodsበቅርቡ
    4. 10.4Propertiesበቅርቡ
    5. 10.5Inheritance and super()በቅርቡ
    6. 10.6Composition over inheritanceበቅርቡ
    7. 10.7The Python data modelበቅርቡ
    8. 10.8Interfaces with ABCsበቅርቡ
    9. 10.9Project: Birr Ledger v2 (ፕሮጀክት)በቅርቡ
  2. , coming soon
    11Iterators and generatorsWhat for really does, and producing values lazily.
    1. 11.1Iterables and iteratorsበቅርቡ
    2. 11.2Writing an iterator classበቅርቡ
    3. 11.3Generators and yieldበቅርቡ
    4. 11.4Generator expressionsበቅርቡ
    5. 11.5yield from and pipelinesበቅርቡ
    6. 11.6itertools essentialsበቅርቡ
    7. 11.7Project: Stream a huge CSV (ፕሮጀክት)በቅርቡ
  3. , coming soon
    12Closures and decoratorsFunctions that wrap other functions. It's the idea behind @app.get in FastAPI.
    1. 12.1Closuresበቅርቡ
    2. 12.2Decorators from scratchበቅርቡ
    3. 12.3Doing it right with functools.wrapsበቅርቡ
    4. 12.4Decorators with argumentsበቅርቡ
    5. 12.5Decorators on classes and methodsበቅርቡ
    6. 12.6The functools toolkitበቅርቡ
    7. 12.7Project: Timing, logging, and retry (ፕሮጀክት)በቅርቡ
  4. , coming soon
    13Context managersGuaranteed setup and cleanup with with.
    1. 13.1What with really doesበቅርቡ
    2. 13.2Writing a context manager classበቅርቡ
    3. 13.3contextlib shortcutsበቅርቡ
    4. 13.4Project: A timer and safe saving (ፕሮጀክት)በቅርቡ
  5. , coming soon
    14Type hints and data modelingTypes that tools can check, and data models that validate themselves.
    1. 14.1Why type hints?በቅርቡ
    2. 14.2Annotating variables and functionsበቅርቡ
    3. 14.3None, unions, and Optionalበቅርቡ
    4. 14.4Literal, Enum, and TypedDictበቅርቡ
    5. 14.5Genericsበቅርቡ
    6. 14.6Protocols and duck typingበቅርቡ
    7. 14.7Running a type checkerበቅርቡ
    8. 14.8Dataclassesበቅርቡ
    9. 14.9Validation with Pydanticበቅርቡ
    10. 14.10Project: Birr Ledger v3 (ፕሮጀክት)በቅርቡ

Deep Water

Concurrency, async, Python's object model, and professional practice.

  1. , coming soon
    15ConcurrencyDoing several things at once, and choosing the right tool for it.
    1. 15.1Concurrency vs parallelismበቅርቡ
    2. 15.2The GIL, honestlyበቅርቡ
    3. 15.3Threadsበቅርቡ
    4. 15.4Processesበቅርቡ
    5. 15.5Choosing a modelበቅርቡ
    6. 15.6Project: Parallel downloader (ፕሮጀክት)በቅርቡ
  2. , coming soon
    16Async Pythonasync and await from the ground up, and how FastAPI handles many requests at once.
    1. 16.1The event loop mental modelበቅርቡ
    2. 16.2async and awaitበቅርቡ
    3. 16.3Running tasks togetherበቅርቡ
    4. 16.4Timeouts and cancellationበቅርቡ
    5. 16.5Async iterators and context managersበቅርቡ
    6. 16.6Async HTTP with httpxበቅርቡ
    7. 16.7Async pitfallsበቅርቡ
    8. 16.8Project: Live exchange rates (ፕሮጀክት)በቅርቡ
  3. , coming soon
    17Python's object modelHow attributes, properties, and classes really work underneath.
    1. 17.1How attribute lookup worksበቅርቡ
    2. 17.2Descriptorsበቅርቡ
    3. 17.3__slots__በቅርቡ
    4. 17.4Callable objectsበቅርቡ
    5. 17.5Customizing class creationበቅርቡ
  4. , coming soon
    18Professional PythonThe tools and habits of working Python developers.
    1. 18.1Structuring a real projectበቅርቡ
    2. 18.2Dependencies with uvበቅርቡ
    3. 18.3Linting and formatting with Ruffበቅርቡ
    4. 18.4Loggingበቅርቡ
    5. 18.5Configuration and secretsበቅርቡ
    6. 18.6Git essentialsበቅርቡ
    7. 18.7Measuring performanceበቅርቡ
    8. 18.8Project: Birr Ledger as a package (ፕሮጀክት)በቅርቡ

Landfall

Crossing from Python to the web. Ends where the FastAPI course begins.

  1. , coming soon
    19Python meets the webHTTP, JSON, and APIs. The last step before FastAPI.
    1. 19.1How HTTP worksበቅርቡ
    2. 19.2JSON and REST APIsበቅርቡ
    3. 19.3Calling APIs from Pythonበቅርቡ
    4. 19.4Your first API with FastAPIበቅርቡ
    5. 19.5Capstone: Birr Ledger, complete (ፕሮጀክት)በቅርቡ

The project that grows with you

Birr Ledger

A personal expense tracker that grows from a simple script into a typed, tested, async-capable package ready to become an API.

  1. ክፍል 8v1. CLI script storing expenses in JSON
  2. ክፍል 9Tested. Automated pytest test suite
  3. ክፍል 10v2. Object-oriented design with Expense and Ledger classes
  4. ክፍል 12Decorated. Timing and retry decorators
  5. ክፍል 13Context. Atomic saves and safe file handling
  6. ክፍል 14v3. Fully typed with dataclasses and Pydantic models
  7. ክፍል 16Async. Concurrent live exchange rates fetching
  8. ክፍል 18Package. Installable, linted, logged CLI package
  9. ክፍል 19Capstone. Ready for the FastAPI course

Who it's for

  • Complete beginners writing their first code
  • Learners who know some Python but want to fill gaps and write idiomatic code
  • Information Systems and Computer Science students preparing for backend or AI work

What you need

  • A computer (Windows, macOS, or Linux) to install Python for later modules
  • No prior coding experience needed; early lessons run directly in your browser

Want to go further?

The Python lessons here are free, and they stay free. If you'd like more, you can join the paid Python course in Telegram. You pay there, by Telebirr or CBE.

What the paid course adds

  • The full video course, explained in more detail
  • Live learning sessions
  • The private community group
  • Direct help from the instructor

Questions

All questions
Can I take this course on my phone?

Yes to start. The lessons and interactive code runner work directly in modern mobile browsers. For later modules with local virtual environments and testing, a laptop or desktop computer is recommended.

Do I need any previous coding experience?

No. The course starts from absolute zero in Module 0 and explains every foundational concept step by step.

Is the Python course free?

Yes. Every Python lesson on this website is free, and new ones are free when they're written. If you'd like video lessons, live sessions, and the community group, you can also join the paid Python course in Telegram.