Skip to content

francismontalbo/learning_python

Repository files navigation

Python hero banner

⚔️ Becoming a Python Hero

A notebook-driven Python journey for beginners who want to grow from curious learners into confident builders.

Learn slowly. Practice deeply. Write clean code. Build real confidence.

🚀 Why this repo hits differently

This repository is not meant to be a pile of random Python snippets. It is meant to feel like a guided adventure.

Inside these notebooks, students move from:

  • printing their first line of Python
  • to organizing data with collections
  • to making decisions with conditions and loops
  • to designing reusable functions
  • to building object-oriented programs
  • to testing their own code like real developers

The goal is not just to “finish Python.” The goal is to think clearly, code professionally, and keep leveling up.

🧠 What makes these notebooks useful

These lessons were shaped to be:

  • Gradual — each notebook starts simple and grows carefully
  • Connected — older topics return in newer lessons so they stay alive
  • Readable — code examples favor clarity, naming, and structure
  • Practical — examples are grounded, reusable, and beginner-safe
  • Encouraging — the tone aims to motivate without watering things down

🗺️ Recommended learning path

1. Foundations

  • week_1/0001_python_basics.ipynb
  • week_2/0002_collections.ipynb
  • week_3/0003_ifelifelse.ipynb
  • week_3/0003_truthyandfalsies.ipynb
  • week_3/0003_Loops.ipynb
  • week_4/0004_Functions.ipynb
  • week_5/0005 recursion.ipynb
  • week_6/try_except.ipynb

2. Object-Oriented Python

  • week_7/0007 Objects and Classes.ipynb
  • week_8/0008 Inheritance Basics.ipynb
  • week_9/association.ipynb
  • week_9/aggregation.ipynb
  • week_9/composition.ipynb
  • week_9/mixin..ipynb
  • week_x/encapsulation.ipynb
  • week_x/polymorphism.ipynb
  • week_x/abstraction.ipynb

3. Reinforcement and skill growth

  • week_x2/unit_test.ipynb
  • python_techniques.ipynb

🎯 Best way to use this repo

For each notebook:

  1. read the markdown sections first
  2. run every code cell in order
  3. change at least one value in every major example
  4. predict the output before running the next cell
  5. write one tiny variation of your own before moving on

That is how you stop being a passive reader and start becoming a programmer.

🧩 Weekly practice notebooks

To help students build problem-solving stamina—not just topic familiarity—the repository now includes a dedicated practice notebook for each week grouping. These are designed for review, exam preparation, debugging practice, and job-style thinking.

  • week_1/0001_practice_python_basics.ipynb
  • week_2/0002_practice_collections.ipynb
  • week_3/0003_practice_control_flow.ipynb
  • week_4/0004_practice_functions.ipynb
  • week_5/0005_practice_recursion.ipynb
  • week_6/0006_practice_exceptions.ipynb
  • week_7/0007_practice_oop_basics.ipynb
  • week_8/0008_practice_inheritance.ipynb
  • week_9/0009_practice_relationships.ipynb
  • week_x/0010_practice_oop_design.ipynb
  • week_x2/0011_practice_unit_testing.ipynb

A good rhythm is to finish the lesson notebook first, then immediately attempt the matching practice notebook while the ideas are still fresh.

🛠️ Tools you can use to open the notebooks

  • Jupyter Notebook
  • JupyterLab
  • VS Code with the Jupyter extension
  • Google Colab after uploading the files

Recommended Python version: Python 3.9+

🔥 What students should gain by the end

By working through the notebooks in order, learners should become much more comfortable with:

  • reading Python code
  • explaining what code is doing
  • writing clean beginner-to-intermediate solutions
  • spotting patterns worth turning into functions or classes
  • testing ideas instead of guessing
  • thinking like someone who can build projects, not just copy syntax

💥 Final message

You do not need to rush to become strong at Python.

You need repetition, curiosity, clean habits, and enough courage to keep editing your code when it does not work the first time.

If you stick with that, you will not just “learn Python.” You will build the mindset of a real programmer.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors