I’ve spent a good part of the last few weeks in a “self-improvement” project – since the I.T. industry is moving full-steam ahead to a DevOps paradigm, I’ve embraced the new direction by tackling Codecademy‘s ‘Learn Python‘ course. Despite the fact that I’ve long been comfortable with shell scripts & most regular expressions (& I have a bit of experience with Perl), adding some real proficiency with Python to my skill set is a bit of a game-changer for me.
For anyone who might be considering the Codecademy Python course, here are a few of my thoughts on the subject:
- There are really no barriers to entry for this course, as long as you have an internet connection, some time to devote to developing your skill, & the determination to make it happen. The course is provided free of charge, & there are even forums that allow you to post questions when you get stuck. Other students & Codecademy mentors contribute to the forums with hints, recommendations (& sometimes, the complete answer to a question), so there’s no need for anyone to get stuck on an exercise. I have frequently gotten a response to one of my postings within 15 minutes or so (although I don’t have any way to know if that timeframe is typical for others). Not bad for a free course!!
- The course starts you out with small steps – even “baby steps” – but using a process that includes a bit of repetition, to ensure that the concepts are planted effectively in your mind. Toward the beginning of the course, there were times that I felt that they were perhaps using a bit too much repetition, but looking at it from a bit further on now, I don’t feel that’s much of a problem.
- The “baby steps” approach has a benefit that’s not immediately apparent – because many of the lessons are small & incremental, I was able to tackle at least one exercise even when I had a really busy day, or when i was pretty wiped out with the flu. Being able to ‘do a little bit’ every day didn’t just help with retaining the concepts, it has also helped me to stay motivated, to ‘keep at it’ – and that has helped to move me from “someone who’s ‘dipping a toe in the water'” to “someone who’s starting to use Python to actually do something with it”.
- The exercises start out small, but they’re almost always based on a practical application, so it’s easy to see how the exercises could be applied to something real. In addition, later exercises build upon earlier exercises, for example one early lesson is to write a function that calculates the gratuity amount for whatever meal cost is entered. The next lesson builds on that by adding a sales tax calculator function, & then finally combining them to come up with a grand total. Simple, yes – but also practical.
- Learning is “gamified” by the use of badges presented for keeping a streak alive, completing a course, & completing a certain amount of courses. Persistence is also rewarded (if you’ve registered with Codecademy) by congratulatory emails that you receive when coding for a certain number of days in a row (the longest streak that I’ve accomplished so far is 10 days in a row). There might be some who would downplay this, but IMHO, it is nice to see your efforts recognized, even when it’s not a really big deal. In my eyes, it’s another small thing that contributes to keeping the student working toward completing the entire course, & thus becoming someone with a basic competence with Python.
- The ‘challenges’ are (in my eyes at least) aptly named.
While I still have a little ways to go before completing the course, I feel that it’s been one of the better learning experiences that I’ve had. Sometimes challenging/frustrating? Sure – but also really rewarding when something “clicks” & you resolve the problem. While I wish that I’d started this a long time ago, I’m really looking forward to the new ways that I’ll be able to solve problems & build solutions now!
