A friendly, hands-on path to learn Python from scratch and build solid Object-Oriented Programming (OOP) skills. Made for the Astral Family organization.
- ✨ What You’ll Learn
- 🎯 How This Course is Different
- 👥 Who This Is For
- ✅ Prerequisites
- 🛠️ Setup
- 📚 Curriculum Overview
- 🔎 Detailed Syllabus
- 🏗️ Practice Projects
- 🌱 Next Steps (Optional)
- 🔗 Helpful Resources
- 🤝 Contributing
- 📄 License
By the end of this course, you will be able to:
- Write clean, readable Python code following professional standards.
- Master fundamental data structures like lists, dictionaries, sets, and tuples.
- Control program flow with conditions, loops, and elegant comprehensions.
- Organize your code into functions, modules, and simple packages.
- Work with files to read and write data in common formats like CSV and JSON.
- Handle errors gracefully and add logging to debug your applications.
- Design and build your own classes using Object-Oriented Programming (OOP) principles to model real-world concepts.
This course is laser-focused on core Python and OOP. We do not cover web frameworks, APIs, or databases.
- Hands-On & Project-Based: You learn by doing. Every module includes practical exercises and builds towards small, real-world projects.
- Incremental Steps: We break down complex topics into small, manageable steps to ensure you build a strong foundation without feeling overwhelmed.
- Code Quality Focus: From day one, you'll learn to write code that is not only functional but also clean, well-documented, and easy for others to read.
- GitHub Workflow: You will learn and use the standard developer workflow of branching, committing, and creating Pull Requests, preparing you for real-world collaboration.
- Absolute Beginners with no prior coding experience.
- Hobbyist Programmers who know some Python basics but want a structured path to master OOP.
- Mentors who are guiding a small group of learners and want a ready-made curriculum with clear checkpoints.
Suggested pace: 6–10 weeks, studying part-time.
- A computer with an internet connection.
- A GitHub account.
- Basic familiarity with the command line is helpful, but not required (we’ll guide you through the essentials).
Follow the instructions in Module 0: Onboarding & Tools to set up your complete development environment. The essentials are:
-
Install Python 3.12+
- Windows: Install from python.org (ensure you check “Add Python to PATH”).
- macOS:
brew install python@3.12 - Linux: Use your system's package manager or
pyenv.
-
Create and activate a virtual environment
# Create the environment python -m venv .venv # Activate it (example for macOS/Linux) source .venv/bin/activate # Upgrade pip pip install -U pip
-
Recommended Tools
- Editor: VS Code with the official Python extension.
- Version Control: Git and a GitHub account.
The course is divided into 9 core modules, designed to take you from zero to confidently building object-oriented programs.
| No | Module | Focus |
|---|---|---|
| 0 | Onboarding & Tools ⚙️ | Shell, Git, Python install, venv, VS Code |
| 1 | Python Basics I 🧱 | Syntax, variables, numbers, strings, input/output |
| 2 | Control Flow 🔁 | if/elif/else, match, loops, comprehensions |
| 3 | Data Structures 🧺 | str, list, tuple, set, dict, slicing, mutability |
| 4 | Functions & Types 🧩 | def, args, returns, docstrings, type hints |
| 5 | Modules & Packages 🗂️ | imports, layout, main entry, simple project setup |
| 6 | Files & Data 💾 | pathlib, with, CSV/JSON read/write, simple errors |
| 7 | Errors & Logging 🧯 | exceptions, custom errors, logging basics |
| 8 | OOP & Dataclasses 🏷️ | classes, methods, properties, dataclasses, basics of design |
After completing the core modules, you will apply your skills in a series of practice projects.
Module 0 — Onboarding & Tools ⚙️
- Learn: Command line basics, the complete Git/GitHub workflow (clone, branch, commit, push, PR), Python installation, virtual environments, and VS Code setup.
- Build: Get the repository running on your local machine, write a "Hello, world!" script, and submit your first Pull Request.
Module 1 — Python Basics I 🧱
- Learn: Core syntax, variables, data types (
int,float,bool,str), mathematical operations, f-strings for formatting, and user input/output (input(),print()). - Build: A tiny calculator, a unit converter, and a string formatting script.
Module 2 — Control Flow 🔁
- Learn: Conditional logic (
if/elif/else), thematchstatement, loops (for/while), loop control (break/continue), and list/dictionary/set comprehensions. - Build: A FizzBuzz-style program, a script for text statistics, and a simple rule engine using
match.
Module 3 — Data Structures 🧺
- Learn: In-depth work with strings, lists, tuples, sets, and dictionaries. Covers slicing, indexing, and the crucial concept of mutability vs. immutability.
- Build: A word counter, an anagram checker, and a simple phonebook using dictionary methods.
Module 4 — Functions & Types 🧩
- Learn: Defining functions (
def), handling arguments (*args,**kwargs), return values, writing docstrings, and using type hints for clarity. - Build: A small library of utility functions with clear documentation and type hints.
Module 5 — Modules & Packages 🗂️
- Learn: How to use
import, structure a project into multiple files, use the__name__ == "__main__"entry point, and understand relative vs. absolute imports. - Build: A mini-project split into multiple files with a clear
main.pystarting point.
Module 6 — Files & Data 💾
- Learn: Using
pathlibfor modern file path manipulation, context managers (with), reading/writing text files, and handling structured data with CSV and JSON. - Build: A command-line tool that converts data from a CSV file to a JSON file with simple validation.
Module 7 — Errors & Logging 🧯
- Learn: Handling exceptions with
try/except/else/finally, raising custom errors, and using theloggingmodule to record application events. - Build: Refactor a previous project to include robust error handling and informative log messages.
Module 8 — OOP & Dataclasses 🏷️
- Learn: The principles of Object-Oriented Programming. Covers classes,
__init__, methods, properties, and the convenient@dataclassdecorator. - Build: A small application that models a real-world domain (e.g., a Library, Bank, or Inventory) using classes and dataclasses.
After completing the core modules, choose 2-3 of these projects to build your portfolio.
-
Task Tracker CLI 📝
- Description: A command-line tool to add, list, and mark tasks as complete. Data is saved to a JSON file.
- Concepts: Dictionaries, lists, file I/O (JSON), functions, simple error handling.
-
Expense Splitter 💸
- Description: A tool to split a restaurant bill among several people, including tax and tip. The results can be exported to a CSV file.
- Concepts: Functions, type hints, string formatting, file I/O (CSV).
-
Flashcards Trainer 🎴
- Description: A terminal-based flashcard application that loads questions and answers from a CSV file, quizzes the user, and tracks their score.
- Concepts: Loops, file I/O, modular layout.
-
Library Inventory (OOP) 📚
- Description: A system to manage a library's inventory. Model
Book,Member, andLoanwith classes. Implement rules for borrowing and returning. - Concepts: OOP, dataclasses, error handling, logging.
- Description: A system to manage a library's inventory. Model
Once you've mastered OOP, you can explore these intermediate topics:
- Testing: Learn the basics of writing tests for your code with
pytest. 🧪 - Code Style: Enforce consistent code style automatically with
BlackandRuff. 🧼 - Packaging: Learn to package your project using
pyproject.toml. 📦 - GUIs: Create simple graphical user interfaces with libraries like
Tkinter. 🪟
- Python Official Tutorial
- Python Official Documentation
- Automate the Boring Stuff with Python
- Real Python
- PEP 8 (Style Guide)
- Have an idea or find a bug? Open an issue.
- Follow the standard Git workflow: create a branch for each module or feature.
- Always test your code and self-review before opening a Pull Request.
- Engage in feedback to improve your code.
This project is licensed under the MIT License. See the LICENSE file for details.
Original Repository is created by Dendroculus.
Link to the Original Repository : Py Basics