If you’re dabbling around with the digital humanities, you’ve probably been told that you should learn Python. Today I’m reviewing one way you can learn this programming language: with CodeAcademy.
We’ve already covered CodeAcademy a few times here on ProfHacker: Jason reviewed CodeAcademy when it first launched; more recently, Anastasia covered the ways which instructors can use CodeAacademy to teach programming in hybrid learning.
I completed CodeAcademy’s course on Python in about ten days (Note: my progress might have been quick because I’ve learned some Python before and I was a little obsessive about completing it). The course is broken up into twelve modules. Nine of these are lessons and three are “exam” style “challenges” that collectively go over what you’ve already covered in your previous lessons. Each module is further broken up into subcategories with a number of different exercises designed to teach you specific things about Python.
The exercises themselves are pretty cool. You get an explanation on the left on the concept, then instructions to write specific code. If you’re stuck, you can click on the “hint” section to get some further help. CodeAcademy also allows you to try out different types of code until you find something that works. Once you hit “Save and Submit Code,” the module will run your code through an interpreter and give you hints about where your code might need some work. Also, if you’re completely lost, CodeAcademy has some pretty well-staffed and active Q&A forums where you can see examples of other people’s code and post questions if you’re stuck.
What I Liked:
For the most part, the Python course was very well organized—clear and easy to understand.
It was targeted at people who are non-programmers (which is very hard to come by)! Examples used ranged from the funny to the amusing; I learned, for example, how to create classes of objects by creating a “cute Animal” class.
The hands-on approach was great; in particular, that you needed to actually write and mess with code to move on, rather than simply cut and paste. This forced me to think through what I was doing, and helped me to learn a lot.
The Q&A forums were also really helpful. Many people posted in the forums with similar error messages to what I’d gotten, allowing me to figure out where I’d gone wrong, as opposed to simply getting an answer which might not have taught me how to improve.
CodeAcademy’s badging system was a lot of fun: you get points for the total number of exercises you’ve completed, badges for particular exercises and for different milestones. The website also measures your “streak” (how many days in a row you have logged into the site and completed at least one exercise).
What Could Be Improved:
The modules were pretty unevenly written. Some were very clear and easy to follow, while some based their questions upon concepts which hadn’t yet been covered, which was very confusing. The module “Lists & Dictionaries” was also by far the hardest, building extensively on concepts only covered in the later modules “Lists and Functions” and “Loops” (where they were ironically much more simply explained.) It would have been helpful to have had the latter two before “Lists & Dictionaries.” This discrepancy was probably due to the multi-author nature of the course.
Overall, I would highly recommend the CodeAcademy Python course for people who want to get a basic handle on the language. Completing the course won’t make you an expert, but it will help you to complete more difficult courses that make extensive use of the language (such as Udacity’s Introduction to Computer Science course and the Programming Historian). CodeAcademy’s focus was a little more math-heavy than I would have needed (given that I would mostly be using it to do textual analysis), but it was ultimately extremely useful. I’d suggest it as a great place to start if you’re looking to get your feet wet with Python.
How about you? Have you tried CodeAcademy? What did you think? Have you instead used a different, similar site? Please share in the comments!