A Stab at #100DaysOfCode
‘Only way to become a pro is to progress.’
Consistency is king and takes a lot to form a habit. After several failed attempts to learn Python in the recent years, the August 2017 attempt has been my best so far and am planning to see it through. Jumpstarting the consistency is an elephant task on its own. One needs the passion, motivation, inspiration, support among other needs and the #100DaysOfCode challenge offers that and so much more.Thank you Alexander Kallaway and the entire community+ movement. Basically, for the #100DaysOfCode challenge one commits to code everyday for a minimum 1 hour and a consecutive 100days with daily tweets on the day’s progress for accountability purposes. Also best to encourage and inspire others as you were inspired. Pay it forward.
Behold, my code learning scale:
I reckon that it will take me a number of years to become a guru and I aim to. So far I’ve been through: TERRIBLE from Mid-August to October 31st 2017 and HORRIBLE from November 1st 2017 to date. Below is part of what I hope to achieve at the end of the 100 days:
- Keep a hand-written journal of my daily progress
- Read an article/ blog post/journal/news daily. Keep it relevant
- Make 40 programs
- Raise my Kata Ranking from 8kyu to 4kyu. Beginner to Competent
- Learn SQL
- Start off Machine Learning
- Post my weekly progress as a blog post on Thursday mornings.
- Tip the scale to MEDIOCRE
- Have a fun learning adventure.
Day 1/100 – 21st December 2017
Progress: A daily log template program for #100DaysOfCode.
My goal was to create a program that has a daily pop-up reminder to log my progress at 8:00 am for the next 100 days. If user clicks on okay on the pop-up, the log template is initiated. It asks the user to log in the day’s progress,the thoughts and convictions that the user has on that particular day. The input from the user is written and saved in a text file. I had issues with the datetime module specifically the 24hour countdown and writing files specifically using the same file for the 100days only adding text to it daily. Despite the program not being entirely successful, I learnt a couple of tricks and solutions. I will revisit it on Day 25.
Day 2/100 – 22nd December 2017
Progress: How to use the Ctypes module in Python.
I discovered the Ctypes module in Python on Day1/100 while implementing a pop-up dialogue box. My goal for the day was to understand Ctypes and specifically the parts that make up this line of code: ctypes.windll.user32.MessageBoxW(0, Text’, ‘Title ‘, 1) along with other variations of this line of code.
Day 3/100 – 23rd December 2017
Progress: Introduction to Classes.
Classes, Instances and both class and instance variables. While learning the fundamentals of the Python language, I did not get a chance to learn about classes. Thought it to be useful going ahead. It was easier than I imagined.
Day 4/100 – 24th December 2017
Class Methods. Regular Methods. Static Methods. I still need to fully practice using classes in programs and also learn about Inheritance.
Day 5/100 – 26th December 2017
Progress: Introduction to Machine Learning.
I hoped to get a feel of what was to come ahead as I have decided to dive into Machine Learning, Artificial Intelligence and Robotics going ahead in future. It’s both easy and hard.
Day 6/100 – 27th December 2017 & Day 7/100 – 28th December 2017
Progress: Codewars Katas.
Mastery through challenge. Codewars challenges are mostly about thinking and I get to apply the knowledge that I soaked from Automate the Boring Stuff with Python by Al Sweigart. For each challenge, one also gets to learn a number of other solutions to the same challenge. Codewars Kata have changed my approach to problems.
Lessons Learnt so far:
- For every problem, the solutions are best thought out first on paper.
- Videos are better suited than text and books. Practice is best suited.
- Keep an open mind that solutions come in a range of different structures.
- It is not about being perfect, it is about growth and progress. And fun.
- Going ahead, I need a proper laid out and flexible game plan. Any help and suggestions on this is highly appreciated.