Skip to content

Commit 327a668

Browse files
authored
Revise roadmap for 180-day Python learning journey
Updated the roadmap to include a project-based learning approach and enhanced description.
1 parent d5bbd32 commit 327a668

1 file changed

Lines changed: 118 additions & 0 deletions

File tree

Roadmap.md

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
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

Comments
 (0)