I’ve started and aborted many self-learning missions, but learning a programming language has always been on my ‘bucket’ list. Several months ago, I swore I was going to learn Ruby after attending a UGA CHUGALUG talk by Matthew Miller. Well, my interest fizzled out after I found I couldn’t digest the acclaimed _why’s Poignant Guide to Ruby nor could I make sense of how to get up and running on my Windows PC (Update: now running Ubuntu 100% as of 02/13/2011).
Sidenote: Zedshaw, author of Learn Python The Hard Way, was NOT kidding in admonishing aspiring Programming Book writers to truly consider spelling out things that come second-nature to them if they wish to communicate clearly to newbies.
I got pretty down on myself after yet-another-attempt fizzled out and for not being ‘smart’ enough to figure my way to Ruby just yet, but after a while, I got over it. I decided to do some research on what programming language would be friendly to me as well as one that I could also use to create powerful applications. Well, Python fit the bill and has stuck with me primarily because of the available of free and open courses that are available online. For me, I have been making use of the two below:
- MIT OpenCourseware is really what jumpstarted my learning, particularly the Introduction to Computer Science course. I think I respond very well to the classroom style of learning. In addition to downloadable videos of the lecturer addressing the students of MIT, there are reading assignments, links to other very useful resources and sample code that I could download and learn from.
- Google Code University: I just found out about this one today from @MJCdotme ‘s blog.
Learn Python The Hard Way is based on Python2 as MIT OCW’s Intro to Computer Science course is. However, I decided to start my Python education with Python 3. Right now, I have completed Problem Set 1, Problem Set 2 and Problem Set 3.
As of today, I have been able to complete all 3 problem sets from Intro to Computer Science except for one gnarly (for me) assignment which involved creating a recursive function. Thankfully, @trevorp (a Python programmer & twitter friend of mine) was able to assist me with it and his explanation left me a better understanding of recursion.
On the Google Code university site, I was able to complete the Basic assignments about lists & strings including the ones that were extra challenging! 🙂 So I don’t think I’m doing too bad. I decided to finally blog about my little side project because I wanted to provide some motivation for myself. I am not progressing as quickly as I could be so this is a public nudge to myself to get back into the swing of things. Things have gotten weird (forgive my cryptic blurb) so this has given me something else to look forward to. These are exciting times for me. Wish me luck! 🙂