# Roadmap: Basic Python for automation > 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 #### Content: - [Python tutorials for beginner](https://www.youtube.com/watch?v=YYXdXT2l-Gg&list=PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU) (Youtube videos 1-9) 20 hours - [Automate the boring stuffs](http://automatetheboringstuff.com/) (free text book) 9.5 hours - [Using Python for automation](https://www.linkedin.com/learning/using-python-for-automation/organizing-directories?u=2104756) (paid course on Linkedin learn) #### Exercises: - [Hackerrank](https://www.hackerrank.com/domains/python?filters%5Bstatus%5D%5B%5D=unsolved&badge_type=python) - [Snakify](https://snakify.org/en/lessons/print_input_numbers/) - [Project Euler](https://projecteuler.net/archives) # Milestone projects - [ ] [Auto parsing and renaming files](https://www.youtube.com/watch?v=ve2pmm5JqmI&t=353s) - [ ] [Automate files in the local computer](https://www.linkedin.com/learning/using-python-for-automation/organizing-directories?u=2104756) - [ ] [Web Scrapping with Beautiful Soup](https://www.linkedin.com/learning/using-python-for-automation/organizing-directories?u=2104756) - [ ] [Automate Web Browsing with Selenium](https://www.linkedin.com/learning/using-python-for-automation/organizing-directories?u=2104756) - [ ] [Automate Tinder swiping](https://www.youtube.com/watch?v=lvFAuUcowT4&t=2s) # Knowledge checkpoints - [ ] [**Milestone 0: Set up the environment**](https://www.youtube.com/watch?v=YYXdXT2l-Gg&list=PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU&index=1) (You can skip this and come back later if the syllabus you are taking provies the coding editor) - [ ] Install Python 3 - [ ] Install the IDE (eg. Pycharm, Visual Studio Code, etc) - [ ] Execute and run code with terminal commands (eg. cd, ls, python3, etc) - [ ] **Milestone 1: Learning Basic Python syntax** - [ ] get to know different data types (eg. `str()`, `int()`, `list()`) - [ ] variables and naming convention - [ ] comment # - [ ] `print()` - [ ] one variables - [ ] multiple variables using `format()` - [ ] read the input data from users using `input()` - [ ] restrict the data type using `str()`, `int()`, `list()` ... - [ ] **Milestone 2: Working with numeric data - integer and float** - [ ] Arithmetic Operators (output: result) - [ ] Comparison (output: True/ False) - [ ] Shortcut. Eg. `num += 1` - [ ] Commonly used methods: absolute `abs()`, `round()`, etc - [ ] Work with numbers in string format. Eg. "3" - [ ] Advanced math `import math` - [ ] **Milestone 3: Working with textual data - string** - [ ] Single quotes vs. Double quotes - [ ] Create multi-line string using triple quotes `'''` or `\n` - [ ] Commonly used functions and methods in string - [ ] Check data types: `type()` - [ ] Check string length: `len()` - [ ] Index - [ ] `lower()` or `upper()` - [ ] Concatination - [ ] `replace()` - [ ] **Milestone 4: Working with boolean** - [ ] **Milestone 5: Conditional statement** - [ ] If Else - [ ] If Elif Else - [ ] **Milestone 6: Loops and iteration** - [ ] While loop - [ ] For loop - [ ] **Milestone 7: Function** - [ ] Write your own function - [ ] 3rd party function - [ ] Global and Local scopes - [ ] **Milestone 8: Working with data in a container - list, tuple, set, dictionary** - [ ] List - [ ] access a list using loop - [ ] `append()` - [ ] list comprehension - [ ] Dictionary - [ ] 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()` - [ ] Tuple and Set - [ ] **Milestone 8: Modules, Libraries** - [ ] Modules - [ ] create modules - [ ] variables in module - [ ] name the module, create an alias for the module - [ ] import module - [ ] commonly used modules: OS, csv, etc - [ ] Libraries - [ ] import libraries, create an alias for the module - [ ] commonly used libraries for automation: beautiful soup, selenium, etc - [ ] **Bugs and Debugs strategies** - [ ] Commonly faced bugs and debug strategies - [ ] Try and Except statement