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
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
Day 15: Monday Oct 8
Tried to automate a work project using selenium.
Day 16: Tuesday Oct 9
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
Day 26: Friday Oct 19
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
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
Day 56: Sunday Nov 18
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.
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.