---
# System prepended metadata

title: Python Challenge - Plan

---

Certainly! Here is a revised 30-day roadmap that includes all the content, with more content allocated to the earlier days to lighten the load in the later days:

### Day 1: Introduction to Python
- **Introductions**
    - Instructor Introductions
    - Course Introduction
- **What is Python?**
    - What is Python?
    - What is Python Used For?
- **Installing Python and Jupyter Notebooks**
    - [Downloading python (setup for windows, mac and linux)](https://youtu.be/YYXdXT2l-Gg?si=I8c3QO53HOePNgc4)
    - Downloading and Installing Jupyter Notebooks
    - Jupyter Notebook UI Walkthrough
    - Using Jupyter Notebook on VSCode

### Day 2: Python Variables
- **Variables**
  - Variables Intro
  - Variables + Expressions
  - Alex's Love (Exercise)
  - Assigning Multiple Values + Concatenation
  - Variable Naming Best Practices
  - Slicing Variables
  - Practice Slicing Variable (Exercise)
  - Variable Thought Experiment (Exercise)

### Day 3: Data Types - Part 1
- **Data Types**
  - Data Types Introduction
  - Numbers
  - Boolean

### Day 4: Data Types - Part 2
- **Data Types**
  - Strings
  - Lists

### Day 5: Data Types - Part 3
- **Data Types**
  - Tuples
  - Sets

### Day 6: Data Types - Part 4
- **Data Types**
  - Dictionaries
  - Converting Data Types

### Day 7: Operators - Part 1
- **Operators**
  - Operators Introduction
  - Comparison Operators
  - Keep it PG (Exercise)
  - Arithmetic Operators
  - Profit (Exercise)
  - Logical Operators

### Day 8: Operators - Part 2
- **Operators**
  - Membership Operators
  - Assignment Operators
  - Advanced: Identity and Bitwise Operators

### Day 9: Statements - Part 1
- **Statements**
  - Statements Introduction
  - If Else Statements
  - Tall Man Logic (Exercise)
  - Nested If Else Statements

### Day 10: Statements - Part 2
- **Statements**
  - For Loops
  - Nested For Loops
  - Good Grade Bad Grade (Exercise)

### Day 11: Statements - Part 3
- **Statements**
  - While Loops
  - Nested While Loops
  - Break, Continue, Else, Pass
  - Hot Temperature! (Exercise)

### Day 12: Statements - Part 4
- **Statements**
  - List Comprehension
  - Number Checker (Exercise)

### Day 13: Project 1
- **Project 1 - Unit of Measurement Converter**

### Day 14: Functions - Part 1
- **Functions**
  - Functions Introduction
  - First Function + Passing Arguments
  - Profit Margin (Exercise)

### Day 15: Functions - Part 2
- **Functions**
  - Adding Docstrings
  - Default and Arbitrary Arguments
  - Summer? Sum Machine? Sumction? (Exercise)

### Day 16: Functions - Part 3
- **Functions**
  - Keyword and Arbitrary Keyword Arguments
  - Lambda Functions
  - Print vs Return in Functions

### Day 17: Built-in modules
- **Importing**
  - [Importing modules and exploring the standard library](https://youtu.be/CqvZ3vGoGs0?si=DVIYKw7vuk-pKSF6)
  - [OS Module - use underlyding operating system functionality](https://youtu.be/tJxcKyFMTGo?si=K74iWOcXg9uTcK9r)

### Day 18: Built-In Functions - Part 1
- **Built-In Functions**
  - Input, Enumerate, and Append
  - Len
  - Range
  - Slice
  - Round

### Day 19: Built-In Functions - Part 2
- **Built-In Functions**
  - Format
  - Strip
  - Replace
  - Join

### Day 20: Variable Scope
- **Variable scopes**
  - [Variable scope - understanding the LEGB rule and global/nonlocal statements](https://youtu.be/QVdf0LgmICw?si=tiMHxV1pmCuqe2wi)

### Day 21: Project 2
- **Project 2 - Calculator**

### Day 22: Working with Files - Part 1
- **Working with Files**
  - Creating a File
  - Reading, Writing, and Closing Files
  - Context Managers
  - Bonus: [Implementing context manager](https://youtu.be/-aKFBoZpiqA?si=YcS0vyreWcEKjnbW)

### Day 23: Working with Files - Part 2
- **Working with Files**
  - Writing and Appending in a File
  - Creating a Folder
  - Copying and Moving Files

### Day 24: CSV Module
- **Working with CSV Module**
  - [How to read, parse, and write CSV files](https://youtu.be/q5uM4VKywbA?si=asxk0bxSEFM1e3mE)
  - Bonus: [Real World example: Parsing names from a CSV to and HTML list](https://youtu.be/bkpLhQd6YQM?si=oImrkm05aUjQ25Sd)

### Day 25: Project 3
- **Project 3 - Automatic File Sorter**

### Day 26: Handling Errors and Exceptions
- **Handling Errors and Exceptions**
  - Try Except Introduction
  - Try Except Basics
  - Try Except with Files

### Day 27: Virtual environment
- **VENV - How to use virtual environments**
  - [Venv for Mac & Linux](https://youtu.be/Kg1Yvry_Ydk?si=5a6n9kj5hc61a7tC)
  - [Venv for windows](https://youtu.be/APOPm01BVrk?si=UyIq3bKRZ4tVadAu)

### Day 28: Web Scraping - Part 1
- **Web Scraping**
  - Web Scraping Introduction
  - HTML Basics and Inspecting a Web Page
  - BeautifulSoup and Requests
  - Bonus: [Request web pages, download images, read JSON and more](https://youtu.be/tb8gHvYlCFs?si=wn70-t2wfSCdrVj1)

### Day 29: Web Scraping - Part 2
- **Web Scraping**
  - Tags, Variable Strings, and Attributes
  - Find and Find All
  - Getting Text from a Website
  - Scraping Data from a Real Website

### Day 30: Project 4
- **Project 4 - Automated Crypto Web Scraper**
  - Automated Crypto Web Scraper Project

### Day 31: Regular Expressions - Part 1
- **Regular Expression**
  - Regular Expression Introduction
  - Re Module + Regex Methods
  - Regex Character Classes
  - Regex Metacharacters
  - Find the Numbers (Exercise)

### Day 32: Regular Expressions - Part 2
- **Regular Expression**
  - Match Object Methods
  - Regex Modifiers
  - Regex Use Cases
  - Area Codes (Exercise)

### Day 33: Regular Expressions - Part 3 and Project 5
- **Project 5 - Web Scraper + Regular Expression**
  - Web Scraper + Regular Expression Project

### Advanced list
- Object Oriented Programming (OOP) in Python
- Decorators
- Logging
- Unit testing
- Working with databases
- Automate tasks with selenium
- Structuring a python project
- Packaging a python and push to PyPi
- Type hinting
- Environment variables
- Working with subprocesses and threads
- Calling a C++ library from python
- Creating asynchronous tasks with Celery
- Managing Multiple Python Versions With pyenv
- Shallow vs deep copying of python objects
- Documentation frameworks
- Essential design pattern for data engineering: Write-Audit-Publish

This plan ensures that the heavier content is allocated earlier in the course, allowing for lighter days towards the end while including all the necessary content and exercises.
