|
| 1 | +# [Fluffy Python](https://github.com/woliul/fluffy-python): 180-Day Python Roadmap |
| 2 | + |
| 3 | +### **An accelerated, project-based journey to Python proficiency and job readiness.** |
| 4 | + |
| 5 | +This repository serves as a comprehensive, structured guide for a **180-day Python learning journey**. |
| 6 | +It's designed to take you from a complete beginner to a confident, job-ready developer by focusing on a **project-based curriculum**. |
| 7 | +Each day builds on the last, combining fundamental concepts with practical application to help you build a strong portfolio and master the skills required for the professional world. |
| 8 | + |
| 9 | +| Week | Day | Topic(s) / Task | |
| 10 | +|:---|:---|:---| |
| 11 | +| **Week 1: Python Fundamentals** | [Day 1](day_01_HelloWorld) | Hello World | |
| 12 | +| | [Day 2](day_02_Variables) | Variables | |
| 13 | +| | [Day 3](day_03_DataTypes) | Data Types | |
| 14 | +| | [Day 4](day_04_Operators) | Operators | |
| 15 | +| | [Day 5](day_05_UserInput) | User Input | |
| 16 | +| | [Day 6](day_06_Conditionals) | Conditional Statements | |
| 17 | +| | [Day 7](week_1_Recap) | **Weekly Recap** | |
| 18 | +| **Week 2: Core Concepts** | [Day 8](day_08_Lists) | Data Structures - Lists | |
| 19 | +| | [Day 9](day_09_Loops) | Loops (`for` & `while`) | |
| 20 | +| | [Day 10](day_10_Functions) | Functions | |
| 21 | +| | [Day 11](day_11_Modules) | Modules & Libraries | |
| 22 | +| | [Day 12](day_12_Quiz_Project) | **Project: Quiz Game** | |
| 23 | +| | [Day 13](day_13_File_IO) | File I/O (`read` & `write`) | |
| 24 | +| | [Day 14](week_2_Recap) | **Weekly Recap** | |
| 25 | +| **Week 3: Advanced Fundamentals** | [Day 15](day_15_Dictionaries) | Data Structures - Dictionaries | |
| 26 | +| | [Day 16](day_16_Error_Handling) | Error Handling (`try`, `except`) | |
| 27 | +| | [Day 17](day_17_OOP_Intro) | Object-Oriented Programming (OOP) - Classes & Objects | |
| 28 | +| | [Day 18](day_18_OOP_Inheritance) | OOP - Inheritance | |
| 29 | +| | [Day 19](day_19_OOP_Project) | **Project: Fantasy Character Creator** | |
| 30 | +| | [Day 20](day_20_APIs) | Working with APIs (`requests`) | |
| 31 | +| | [Day 21](week_3_Recap) | **Weekly Recap** | |
| 32 | +| **Week 4: Intermediate Python** | [Day 22](day_22_Tuples_Sets) | Data Structures - Tuples & Sets | |
| 33 | +| | [Day 23](day_23_Strings_Regex) | More on Strings & Regular Expressions | |
| 34 | +| | [Day 24](day_24_Lambda_Functions) | Lambda Functions & List Comprehensions | |
| 35 | +| | [Day 25](day_25_More_on_Functions) | More on Functions: \*args & \*\*kwargs | |
| 36 | +| | [Day 26](day_26_Web_Scraper_Project) | **Project: Simple Web Scraper** | |
| 37 | +| | [Day 27](day_27_Working_with_Files) | Working with Files - CSV, JSON | |
| 38 | +| | [Day 28](week_4_Recap) | **Weekly Recap** | |
| 39 | +| **Week 5: Specializing - Data Analysis** | [Day 29](day_29_Intro_to_Data_Analysis) | Intro to Data Analysis | |
| 40 | +| | [Day 30](day_30_Pandas_DataFrames) | `pandas` - DataFrames & Series | |
| 41 | +| | [Day 31](day_31_Pandas_Data_Cleaning) | `pandas` - Data Cleaning | |
| 42 | +| | [Day 32](day_32_Matplotlib_Visualization) | `matplotlib` - Data Visualization | |
| 43 | +| | [Day 33](day_33_Numpy_Numerical_Computing) | `numpy` - Numerical Computing | |
| 44 | +| | [Day 34](day_34_Data_Analysis_Project) | **Project: Exploratory Data Analysis** | |
| 45 | +| | [Day 35](week_5_Recap) | **Weekly Recap** | |
| 46 | +| **Week 6: Specializing - Automation** | [Day 36](day_36_Automating_with_os) | Automating with the `os` Module | |
| 47 | +| | [Day 37](day_37_Automating_Emails) | Automating Emails (`smtplib`) | |
| 48 | +| | [Day 38](day_38_Automating_Web_Browsers) | Automating Web Browsers (`Selenium`) | |
| 49 | +| | [Day 39](day_39_Scheduling_Tasks) | Scheduling Tasks (`time` & `schedule`) | |
| 50 | +| | [Day 40](day_40_Automated_File_Organizer_Project) | **Project: Automated File Organizer** | |
| 51 | +| | [Day 41](day_41_More_Automation) | More Automation (`shutil`, `datetime`) | |
| 52 | +| | [Day 42](week_6_Recap) | **Weekly Recap** | |
| 53 | +| **Week 7: Building Web Applications** | [Day 43](day_43_Web_Frameworks_Flask_Intro) | Web Frameworks - Flask Intro | |
| 54 | +| | [Day 44](day_44_Flask_Routes_Templates) | Flask - Routes & Templates | |
| 55 | +| | [Day 45](day_45_HTML_CSS) | HTML & CSS Fundamentals | |
| 56 | +| | [Day 46](day_46_Flask_Forms_User_Input) | Flask - Forms & User Input | |
| 57 | +| | [Day 47](day_47_Simple_Blog_App_Project) | **Project: Simple Blog App** | |
| 58 | +| | [Day 48](day_48_Intro_to_Databases_SQLite) | Intro to Databases - SQLite | |
| 59 | +| | [Day 49](week_7_Recap) | **Weekly Recap** | |
| 60 | +| **Week 8: Database & SQL** | [Day 50](day_50_SQL_Fundamentals) | SQL Fundamentals with SQLite | |
| 61 | +| | [Day 51](day_51_Python_Databases) | Python & Databases (`sqlite3`) | |
| 62 | +| | [Day 52](day_52_Database_Schema_Design) | Database Schema & Design | |
| 63 | +| | [Day 53](day_53_Advanced_SQL_Queries) | Advanced SQL Queries | |
| 64 | +| | [Day 54](day_54_User_Auth_Project) | **Project: User Authentication System** | |
| 65 | +| | [Day 55](day_55_API_Development_with_Flask) | API Development with Flask | |
| 66 | +| | [Day 56](week_8_Recap) | **Weekly Recap** | |
| 67 | +| **Week 9: Frontend & Full-Stack** | [Day 57](day_57_Intro_to_JavaScript) | Intro to JavaScript | |
| 68 | +| | [Day 58](day_58_JavaScript_DOM_Manipulation) | JavaScript - DOM Manipulation | |
| 69 | +| | [Day 59](day_59_Frontend_with_Jinja2) | Frontend with Jinja2 Templating | |
| 70 | +| | [Day 60](day_60_Fetching_API_Data_with_JavaScript) | Fetching API Data with JavaScript | |
| 71 | +| | [Day 61](day_61_Full_Stack_To_Do_App_Project) | **Project: Full-Stack To-Do App** | |
| 72 | +| | [Day 62](day_62_Deployment_Fundamentals) | Deployment Fundamentals | |
| 73 | +| | [Day 63](week_9_Recap) | **Weekly Recap** | |
| 74 | +| **Week 10: Advanced Project - Task Manager App** | [Day 64](day_64_Project_Planning_Task_Manager) | **Project Planning:** Define features, user flow, and tech stack. | |
| 75 | +| | [Day 65](day_65_Backend_Setup) | **Backend Setup:** Set up Flask/FastAPI and a database. | |
| 76 | +| | [Day 66](day_66_User_Model) | **User Model:** Create a User model and handle user registration. | |
| 77 | +| | [Day 67](day_67_Authentication) | **Authentication:** Implement user login/logout and sessions. | |
| 78 | +| | [Day 68](day_68_Task_Model) | **Task Model:** Create a Task model. | |
| 79 | +| | [Day 69](day_69_Task_Management) | **Task Management:** Implement CRUD functionality. | |
| 80 | +| | [Day 70](week_10_Recap) | **Weekly Recap:** Review project progress and debug. | |
| 81 | +| **Week 11: Advanced Project - Task Manager (Cont.)** | [Day 71](day_71_Task_Filtering) | **Task Filtering:** Add functionality to filter tasks. | |
| 82 | +| | [Day 72](day_72_Due_Dates) | **Due Dates:** Add a due date and enable sorting. | |
| 83 | +| | [Day 73](day_73_API_Endpoints) | **API Endpoints:** Refactor core functions into a RESTful API. | |
| 84 | +| | [Day 74](day_74_Frontend_Integration) | **Frontend Integration:** Create a simple frontend. | |
| 85 | +| | [Day 75](day_75_Error_Handling) | **Error Handling:** Implement robust error handling. | |
| 86 | +| | [Day 76](day_76_Testing) | **Testing:** Write basic unit tests. | |
| 87 | +| | [Day 77](week_11_Recap) | **Weekly Recap:** Present the completed project. | |
| 88 | +| **Week 12: Intermediate Algorithms** | [Day 78](day_78_Algorithms_Intro) | **Algorithms Intro:** What is an algorithm? Big O notation. | |
| 89 | +| | [Day 79](day_79_Searching) | **Searching:** Linear vs. Binary search (implementation). | |
| 90 | +| | [Day 80](day_80_Sorting_Bubble_Sort) | **Sorting:** Bubble Sort algorithm. | |
| 91 | +| | [Day 81](day_81_Sorting_Merge_Sort) | **Sorting:** Merge Sort algorithm. | |
| 92 | +| | [Day 82](day_82_Recursion) | **Recursion:** Understanding recursive functions. | |
| 93 | +| | [Day 83](day_83_Coding_Challenge) | **Coding Challenge:** Solve 2-3 basic algorithm problems. | |
| 94 | +| | [Day 84](week_12_Recap) | **Weekly Recap:** Review algorithms. | |
| 95 | +| **Week 13: Intermediate Data Structures** | [Day 85](day_85_Stacks) | **Stacks:** LIFO principle. | |
| 96 | +| | [Day 86](day_86_Queues) | **Queues:** FIFO principle. | |
| 97 | +| | [Day 87](day_87_Linked_Lists) | **Linked Lists:** Understanding nodes. | |
| 98 | +| | [Day 88](day_88_Trees) | **Trees:** Intro to tree data structures. | |
| 99 | +| | [Day 89](day_89_Hash_Tables) | **Hash Tables:** Understanding the concept. | |
| 100 | +| | [Day 90](day_90_Coding_Challenge) | **Coding Challenge:** Solve 2-3 medium-level data structure problems. | |
| 101 | +| | [Day 91](week_13_Recap) | **Weekly Recap:** Review all intermediate data structures. | |
| 102 | +| **Week 14-16: Intermediate Algorithms & Interview Prep** | [Day 92-112](week_14-16_Intermediate_Algorithms) | **Deep Dive:** A 3-week focus on practicing common interview problems on platforms like LeetCode or HackerRank. Each day focuses on a specific algorithm or data structure pattern, with solutions in Python. | |
| 103 | +| **Week 17-20: Specialization & Advanced Topics** | [Day 113-140](week_17-20_Specialization) | **Choose Your Path:** During these weeks, you will choose to specialize in one of the following tracks, with daily lessons dedicated to that area. | |
| 104 | +| | **Data Science Track** | **Web Dev (Django/FastAPI) Track** | |
| 105 | +| | [Day 113-118](day_113-118_ML_Fundamentals) | Machine Learning fundamentals, Scikit-learn, Model training. | [Day 113-118](day_113-118_Django_FastAPI_Intro) | Django/FastAPI intro, ORM, and advanced routing. | |
| 106 | +| | [Day 119-124](day_119-124_Data_Visualization) | Data visualization with Plotly/Seaborn. | [Day 119-124](day_119-124_Advanced_DB_Management) | Advanced database management and migrations. | |
| 107 | +| | [Day 125-130](day_125-130_Working_with_APIs) | Working with APIs & large datasets. | [Day 125-130](day_125-130_User_Auth_APIs) | User authentication and API development. | |
| 108 | +| | [Day 131-140](day_131-140_Project_Predictive_Model) | **Project:** Build a simple predictive model. | [Day 131-140](day_131-140_Project_RESTful_API) | **Project:** Build a simple RESTful API. | |
| 109 | +| **Week 21-24: Capstone Project** | [Day 141-168](week_21-24_Capstone_Project) | **The Capstone:** This is your final portfolio piece. This period is dedicated to building a large-scale project from scratch. | |
| 110 | +| | [Day 141-147](day_141-147_Planning) | **Phase 1: Planning.** Define project scope, tech stack, and create a roadmap. | |
| 111 | +| | [Day 148-154](day_148-154_Backend) | **Phase 2: Backend.** Build the core backend logic and database. | |
| 112 | +| | [Day 155-161](day_155-161_Frontend) | **Phase 3: Frontend.** Build the user interface and connect it to the backend. | |
| 113 | +| | [Day 162-168](day_162-168_Finalization) | **Phase 4: Finalization.** Add final features, testing, and prepare for deployment. | |
| 114 | +| **Week 25-26: Final Review & Job Hunt** | [Day 169-180](week_25-26_Job_Hunt) | **Job Readiness:** This phase is all about preparing for the job market. | |
| 115 | +| | [Day 169-172](day_169-172_Portfolio_Refinement) | **Portfolio Refinement:** Final polish on your GitHub profile and projects. | |
| 116 | +| | [Day 173-176](day_173-176_Resume_LinkedIn) | **Resume & LinkedIn:** Build a professional resume and optimize your LinkedIn profile. | |
| 117 | +| | [Day 177-179](day_177-179_Interview_Practice) | **Interview Practice:** Practice common behavioral and technical interview questions. | |
| 118 | +| | [Day 180](day_180_Launch_Day) | **Launch Day:** Officially "market-ready." Begin applying for jobs. | |
0 commit comments