Learning Python in 8 Weeks – Going From Beginner to Intermediate

I decided to learn Python programming and I am going to spend the next 8 weeks or 56 days practicing it. Below I am posting a short update of what I did everyday.

I created a GitHub repository to post the Python code of the things I’ve learned.

Day 1: Monday, September 24

Covered chapters 1 & 2 of the Automate the Boring Stuff With Python
Covered basic functions, boolean operators, if statements and for/while loops.

Day 2: Tuesday, September 25

Covered chapters 3 (functions) and 4 (lists) of same book.

Day 3: Wednesday, September 26

Covered chapters 5 (dictionaries and structuring data) and 6 (manipulating strings) of same book. I feel that I’ve easily covered the basics of Python up to this point. The language is similar to matlab so it hasn’t been too bad.

Day 4: Thursday, September 27

Covered chapter 7. Text pattern recognition and manipulation/matching. This chapter is packed full of info.

Day 5: Friday, Sep 28

Covered chapter 8. Reading and writing files.

Day 6: Saturday, Sep 29 and
Day 7: Sunday Sep 30

I skimmed the lecture videos of the rest of the series. I wanted to see what I’ll be learning ahead. But over the weekend, a friend reminded me that learning happens by doing and practice. I have been spending 80% of my time watching lectures and 20% practicing. It was a decent strategy the first 3-4 days, because it highlighted the syntax, functions, loops and fundamental language of python. I was watching and taking a lot of notes. But now I want to reverse my strategy and work on ‘the doing’, practice by completing small projects. The rest of these 8 chapters I’d like to focus on 80% practice and 20% lecture. Learn by doing.

Day 8: Monday Oct 1


Happy first of October. Today I learned how to use Selenium for automating web browsing. Here is a script I wrote for playing the popular 2048 game.
I also followed a tutorial to write a fairly complicated script to play the Tic-Tac-Toe game. This is a great example for understanding loops and organizing your code by defining functions.

Day 9: Tuesday Oct 2

Learned how to read and write Excel files in Python. See my notes.

Day 10: Wednesday Oct 3

Learned how to read CSV files in Python. See my notes and this script that removes the first row of all your CSV files.

Day 11: Thursday Oct 4

Learned how to read JSON files in Python. See my notes.

Day 12: Friday Oct 5

Worked on writing a script that calls an API from a weather data website and returns the weather data.

Day 13: Saturday Oct 6

Finished the weather Python script. Check it out on my GitHub. I wanted to make it fancy by using Regular Expressions and While loops I learned early to only allow alphabet characters in the input and quit if the user typed ‘q’. I learned a lot from this mini project.

Day 14: Sunday Oct 7

Learned about time in Python. See my notes and a stopwatch

Day 15: Monday Oct 8

Tried to automate a work project using selenium.

Day 16: Tuesday Oct 9

Did some research on Python’s user interface modules such as Flask, Django and QT.

Day 17: Wednesday Oct 10

Learned about local, enclosing, and global variables, aka nested statements and scope.  Also learned about OOP (object oriented programming), things like __init__ and “self”, etc. See my bankAccount.py program.

Day 18: Thursday Oct 11

Starting to learn about flask and developing a website using HTML, Bootstrap and Flask. 

Day 19: Friday Oct 12

Working on a flask project, basicWebsite.py.

Day 20: Saturday Oct 13

HTML crash course

Day 21: Sunday Oct 14

CSS crash course

Day 22: Monday Oct 15

Bootstrap crash course

Day 23: Tuesday Oct 16

Learning to work with Jypiter. I find that the GitHub files of the Complete Python 3 Bootcamp are nicely written and good tutorials to follow. The tutorial is available to purchase for $10 with the link from the GitHub notes.  

Day 24: Wednesday Oct 17

Completed a simple test assessment from the Complete Python Bootcamp course. You can find it here

Day 25: Thursday Oct 18

Completed the Python loops statement test, if, while, for loops. You can find it here. Also finished Warmup-1 from CodingBat/Python.

Day 26: Friday Oct 19

Completed the following from CodingBat.com/Python: Warmup-2, String-1, List-1. Read into folium to create an interactive map for a future project.

Day 27: Saturday Oct 20

Used Folium to create an interactive map of FL and used GeoJSON data to show the borders of each county.

Day 28: Sunday Oct 21

Worked on yesterday’s project. Updated the code to show the county name when you hover the mouse over the county.

Day 29: Monday Oct 22

Attempted the http://www.pythonchallenge.com/

Day 30: Tuesday Oct 23

Learning the Scrapy module for scraping websites

Day 31: Wednesday Oct 24

Learning Beautiful Soup

Day 32: Thursday Oct 25

Learning Selenium 

Day 33: Friday Oct 26

Used Selenium to scrape the last note added by examiners on hundreds of claims in our work websites. Used pandas to output the data into an excel spreadsheet for reporting the data.

This task alone took me 3 days or more to accomplish. I was able to automate my browser to do it in 15 minutes. Great success!

Day 34: Saturday Oct 27

Learning the Pandas module for data analytics.

Day 35: Sunday Oct 28

Watched some more tutorials on the pandas module. Learned how to create Pivot Tables in Python using pandas. 

Day 36: Monday Oct 29

Used pandas for some simple data analytics I previously used to perform with Excel. Introduced myself to the lambda function in pands, i.e. name[‘columnname’].apply(lambda: x for x.split()) 

Day 37: Tuesday Oct 30

Learning and practicing some examples with MatPlotLib

Day 38: Wednesday Oct 31

Learning and practicing with SeaBorn (matplotlib add-on for statistical data visualization)

Day 39: Thursday Nov 1

Learning Pandas for data visualization

Day 40: Friday Nov 2

Analyzing stock data and visualizing it. Cleaning the data in Pandas and visualizing it with matplotlib and Plotly’s interactive charts. 

Day 41: Saturday Nov 3

Analyzing stock data and visualizing it. 

Day 42: Sunday Nov 4

Analyzing stock data and visualizing it. 

Day 43 : Monday Nov 5

Using an API to grab real time data of the top 100 cryptocurrencies. Used pandas to work with the data and publish it as an excel spreadsheet. I would like to figure out how to implement Tkinter to create a GUI for displaying the data. 

Day 44: Tuesday Nov 6

Machine Learning: Linear Regression

Day 45: Wednesday Nov 7

Machine Learning:  Logistic Regression

Day 46: Thursday Nov 8

Machine Learning: K Nearest Neighbors, Decision Trees and Random Forests

Day 47: Friday Nov 9

Read about Deep Learning. Looked into TensorFlow and Hadoop. 

Day 48: Saturday Nov 10

Used OpenCV to resize dozens of images I had saved into my computer into a smaller size, i.e. 250×250. Did some simple tutorials with tkinter, Python’s GUI. 

Day 49: Sunday Nov 11

Explored Python’s Tkinter and PyQt.

Day 50: Monday Nov 12

Learned about Generators and Iterators. The yield function. 

Day 51: Tuesday Nov 13

Object-oriented programming (OOP)

Day 52: Wednesday Nov 14

Learned more OOP. 

Day 53: Thursday Nov 15

Learned how to run .py files from Jupyter Notebook. Learned about raising errors and exceptions. The __Name__ and __Main__ purpose.

Day 54: Friday Nov 16

I learned about Python’s built-in functions:
map(), zip(), reduce(), filter(), enumerate(), all(), complex()

Day 55: Saturday Nov 17

Multithreading. 

Day 56: Sunday Nov 18

Done!

I reached my goal! The learning curve in the beginning was high but as time progressed, the curve became steeper and steeper. The learning does not stop here! Even though I feel like I’ve barely scratched the surface, I think this was a great introductory bootcamp into Python. The most important lesson I got out of this “experiment” was the importance of consistency and the power of compounding. 

Image result for steep learning curve meaning

In conclusion, I learned a lot about Python’s capabilities and I’m really looking forward to utilizing it for future projects. I’ve already incorporated Python into my personal and work life. I learned about web-scraping, web-development, data-analytics, GIS, computer-vision, machine-learning, GUIs and more.

Leave A Comment

Your email address will not be published. Required fields are marked *