# Roadmap: Basic Python for Data Cleaning and Visualization > There are different approaches to learning, we categorize them into bottom up and top down approaches > > If you are a top down learner, we suggest you to look through the projects and see what it takes to build it, then learn through the syllabus and try to implement the concept to your problem on the go > > If you are a bottom up learner, you might just go ahead to learn the syllabus and explore the projects later once you feel confidence with your foundation. > > Either way, we highly recommend you to go through each concepts at least 3-5 times with different explanation, exercises to profoundly understand it. # Resource #### Addtional readings: - [Towards Data Science](https://towardsdatascience.com/) - [Kaggle EDA kernels](https://www.kaggle.com/notebooks) - [30+ Python code samples for charts](https://www.data-to-viz.com/) # Milestone projects ### Python programming - [ ] Writing the matlibs game - [ ] Writing the guessing number game - [ ] Writing a lucky number calculator based on your age - [ ] Writing a program to rename 1500 files, and organize files into folders ([xem hướng dẫn](https://www.youtube.com/watch?v=DfiVmvhVh40&t=450s)) ### Data libraries - [ ] Plot 5 most common charts: Line chart, Bar chart, Histogram, Heatmap, Scatter Plots ### Apply Python and Data libraries on real-world problems - [ ] Conduct data report and analysis on 200,000 data points ([xem hướng dẫn](https://youtu.be/VH2JgqlN2so)) - [ ] Pick up a real-world problems, prepare or choose a relevant dataset, conduct analysis on it - [ ] Publish your analysis as Medium article, Kaggle kernel or Github repo and get 50 claps/ upvotes/ stars # Knowledge checkpoints ### **Milestone 0: Introduction to the course, programming, Python language, Installation and Setup** - **Introduction to the course. Expectation setting** - **Introduction to programming** - **Introduction to Python** - **Set up the environment** - Install Python 3 - Set up the local coding environment. Choose either options: - Install IDE - Visual Studio Code - Install the Anaconda package - Use Google Colab - Using terminal - Navigate the terminal with `cd` command - Execute code with `python` command ### **Milestone 1: Learning Basic Python syntax, Data types, Variables** - **Write "Hello World" program with `print()` function** - **Data types** - Numeric data: Integers & Floats - Working with numeric data - Expression - Arithmetic operator - Textical data: String - Single quotes vs. Double quotes - Create multi-line string using triple quotes `'''` or `\n` - Working with textical data (p.1) - Number multiplication vs. String replication - Number addition vs. String concatenation - Type conversion with `str()` `int()` `float()` - Expicit conversion - Check the data type with `type()` function - Implicit conversion - **Variables** - Assignment - Variables Naming convention - **Practice: Writing the Madlibs game** - comment # - `input()` function - string concatenation: f"string" ### Milestone 2: Flow Control (p.1) - Conditionals: If Else Elif Statement - **Flow control and Types of flow control** - **Branching statement** - Structure of branching statement - Initializing variable - Condition - Boolean values - Comparison operators - Logical operators - Block of code/ Clause - Branching with If, Else, Elif statement - If statement - Else statement - Elif statement - **Practice: Writing a guessing number game (p.1)** ### Milestone 3: Flow Control (p.2) - Loops: While Loop - **Looping** - **While loop** - Structure of while statement - Condition and Initializing variable - Block of code/ While clause - **Inifinite while loop** - Ctrl C to break the loop - How to get rid of infinite loop - The condition need to evaluate to False at some point - Using break statement - **Practice: Writing the guessing number game (p.2)** ### Milestone 4: Flow Control (p.2) - Loops: For Loop and `range()` function - For loop - `range()` function** ### Milestone 5: Function and Modules - **Function** - Built-in function - Your own function - Function (Code reuse) - Defining function - Executing function - Parameters - Variable scopes (global/local) - Returning value - Returning 1 value - Returning multiple values - Returning None value - **Modules and Other types of functions** - Create modules - Variables in module - Name the module, create an alias for the module - Import module, from module import statement - Commonly used modules: OS, csv, xlrd, etc - **Practice: Writing a lucky number calculator based on your age** ### Milestone 6: Advanced String and Working with textical data (p.2) - **String indexing and slicing: access a part of a string** - **String creation** - **String methods and commonly used methods in string** - Check data types: `type()` - Check string length: `len()` - Index - `lower()` or `upper()` - Concatination - `replace()` ### Milestone 7: Data Structures - List, Set, Tuple - List/set/tuple creation - List indexing and slicing - List methods - List comprehension** ### Milestone 8: Data Structures - Dictionaries - **Understand key - value pair** - **Access value from a key** - `dict['key']` - **Add new key to a dict** - **Update many keys in one shot** - `update()` - **Delete a key and its value** - `pop()` or `del` - **Check what keys are there** - `dict.keys()` - **Check what values are there** - `dict.values()` - **Check what key-value pairs are there** - `dict.items()` - **Pratice: Python for data analytics hands on** ([Kaggle notebooks](https://www.kaggle.com/learn/python)) ### Milestone 9: Data Libraries - Pandas, Matplotlib, and Seaborn - **Pandas and tabular data** - Creating, reading, and writing - Indexing, selecting, and assigning - Summary functions and maps - Grouping and sorting - Data types and missing values - Renaming and combining - **Practice: Pandas** ([Kaggle notebooks](https://www.kaggle.com/learn/pandas)) - **Matplotlib, Seaborn and visualization** - Line charts - Bar charts, histogram and heatmaps - Scatter plots - Distribution - Choosing plot types and custom styles - **Practice: Visualization hands on** ([Kaggle notebooks](https://www.kaggle.com/learn/data-visualization)) ### **Bugs and Debugs strategies** - 14 Commonly faced errors and debug strategies - Try and Except statement --- #### The End!