#100daysofcode In Python Review
Sometime in August, 2018 I was at a crossroads in my programming path. I had been learning for a few months and was enjoying Python as a whole, but I still didn’t feel good enough to “take the bull by the horns” and dive into my own projects so I was feeling a bit directionless. I don’t remember how but at that time I discovered the #100DaysOfCode in Python, presented by Talk Python[‘training’]. This was adapted from Alexander Kallaway’s original #100DaysOfCode, which was to force himself to code for 1 hour a day for 100 days. I’m not sure which came first but many other #100DaysOfX challenges have sprung up such as #100DaysOfHealth and #100DaysOfFitness.
First, I’d like to say that I am a big fan of #100DaysOfCode in Python. I found it at exactly the right moment for myself, a novice programmer, and it has really opened my eyes to a variety of things Python can do. So what exactly is it, you ask? Created by Michael Kennedy, Bob Belderbos, and Julien Sequiera, #100DaysOfCode in Python is basically a course set full of videos, documentation, and challenges. There are myriad tools, courses, resources, etc. online to learn Python (or other languages) and honestly I have not reviewed them all so I don’t know how this one specifically distinguishes itself from the others, but I will say I like it a lot.
This is what it looks like, after logging in:
The gist of it is they isolate a topic and spend 3 days on. Day 1 is a review of that topic. Day 2 is a simple project. Day 3 is either building on Day 2 or sometime a separate project. Often, day 1 is comprised of quite a few videos explaining different parts of the topic through real life examples. Topics are wide ranging from relatively basic things like classes, to working with Databases, to error handling, unit testing, and so on. Part of the beauty of Python is that it is a general purpose language, so you really can do whatever you want with it. But the team makes sure to cover the fundamentals including those nitty gritty things (error handling for example) that developers and programmers need to consider whether they like it or not.
Let’s talk more about the specific things I really like. As I stated earlier, I had started with Python only a few months earlier and as of now, I am about 1 year into this journey. I still consider myself very much a beginner annd beginners in any field need a mentor. I didn’t have one myself and I consider the Talk Python guys (especially Michael Kennedy via the Talk Python to me Podcast) as my mentors by proxy. Though I learned quite a bit through self study, I had no idea how the pros did things. For instance, they started by detailing their programming environment, setups, etc. Michael uses PyCharm:
I had been using Atom and Anaconda before, but that is just because that is what I was first introduced to. Now I use a suite of tools but at least have an idea of what they guys are using.
As stated previously, I did have some ideas of fun side projects I wanted to build before I started this project, but the thought of tackling them was daunting. Julien’s JSON in Python module turned out to be just the thing I needed to get my created juices flowing and has turned into a monster of a side project for me that I know I’ll keep going back to and adding functionality, refactoring, etc. for quite some time.
Lastly, let’s talk about my gripes about this program. My biggest complaint is really a strength in disguise and it is: Could someone really do all this in 100 days? I mean, do it in a meaningful way where they watch the videos, do the projects, post on twitter, etc. in a way they absorb all the information? I think in order to do so someone would need to already by quite an experienced Python user and is just doing this course to brush up on things. Honestly, I am have only done about half the modules and I am already about about 5 months (~150 days). This program has successfully gotten me to code 1 hour (usually more) for most days during this time. Some modules themselves took me a week of doing before I really felt comfortable letting them go and I have returned to others many times already as a reference. Other modules (such as the JSON in Python one) have become side projects which have taken on a life of their own.
So in my opinion, more power to you if you can knock out the #100DaysOfCode in a mere 100 days but my advice would be to take a “slow burn” approach. Take your time with the modules, let them simmer in your brain, do side projects, explore the ones that are most interesting to you, and have fun! My biggest takeaway so far is that programming is really fun! Fun things are things you will willingly spend a lot of time doing whether it is for money or for satisfaction and I am thankful I stumbled across this course when I did as I have become a true believer in Python and am really excited to improve my skills and see where things go.
Finally, I want to thank Michael, Bob, and Julien for putting together this great course and highly recommend it to all of you out there, especially if you are a budding programmer (like myself).