Codecademy Won't Make You A Rockstar Coder, But You'll Learn A Lot
I have a small confession to make. When the Codecademy “Code Year” projected started at the beginning of 2012, I excitedly jumped on board. I had some experience with ASP back in high school, but aside from that and some HTML, I had very little knowledge in the area of programming. Code Year kicked off and I completed one or two days, but fell behind after that, and each new Codecademy email served more as a reminder that I had failed than the motivational spark I needed to start back up.
When 2013 rolled around, I decided to try things a bit differently. I committed to using Codecademy again, but instead of doing Code Year, I instead focused on the areas I wanted to learn and completed them at my own pace. As of today, I’ve currently gone through the Web Fundamentals and JavaScript tracks, and have started into the Ruby track. I decided I’d share a bit about my experience for those who might be interested in learning how to program, and for those who haven’t had any prior experience with Codecademy.
Courses
Codecademy offers a number of different tracks for those who desire to learn certain programming or scripting languages. The “Web Fundamentals” track serves to get users familiar with HTML and CSS. There are also tracks for JavaScript, jQuery, Python and Ruby. A neat section that Codecademy offers is its APIs section. Courses in this area teach you how to use the application programming interfaces (APIs) for popular Web services like Twitter, YouTube, Evernote and more.
The lessons inside each track do a nice job of teaching you the very basics, and the embedded box on each page lets you edit code and run it without having to install any software on your computer. I had a pleasant experience overall, but I did run into a couple of instances when the coding box would throw errors, even if the code was correct (it required a page refresh to start working again).
There were also some issues with consistency between lessons. Not every lesson is put together by the same instructor, so one lesson from one instructor might assume you have knowledge of a certain command, but the previous lesson (written by another instructor) might not have included it. Off the top of my head, this happened once or twice in the JavaScript track, where I was expected to know the “push” method, even though it was left out of earlier lessons. I had to visit W3Schools (a great resource) to figure things out on my own.
Aside from those complaints, I found most of the courses to be well-taught and easy to follow. You’re just learning the basics — you won’t be building a full-blown Web app in any of the lessons — but the basics are what you can build on. If you supplement what you learn by experimenting and reading other resources (like W3schools or books), you should have an easier time going deeper into each language.
Gamification
This buzz word is everywhere, isn’t it? Gamification is the idea that rewarding the completion of in-app tasks with points or badges will keep users interested, as they’ll accumulate these goodies to show off progress and try to compete with each other. Codecademy presents badges to users as they complete lessons in a track — like “While Loops” in JavaScript, for example — and these badges are then displayed on your user profile.
Gamification is present in a lot of popular apps. Foursquare is one that comes to mind immediately. With each check-in, you’re granted a certain number of points, and you may even pick up a badge related to your activity. While Codecademy does implement this idea with the best of intentions, it fails to work as well as it does in other apps because there is no way for you to connect with friends on the service. If you have the URL for a friend’s profile, that’s the only way you’ll be able to see which tracks your friend has completed and which badges he or she has obtained. It’s an area Codecademy could definitely improve in.
It may not work as well, but it still works in some respects. Codecademy keeps track of the number of days you’ve consecutively logged in and completed a lesson, and I’ve found myself visiting the site to extend that streak — even though I’m likely the only person seeing that number. If the site did a better job pulling friends into the mix, I think more people would find the motivation to sign in and get to work, and site activity would shoot way up. We’ll see if Codecademy moves in that direction.
Conclusion
If you have little-to-no experience with any programming or scripting language, Codecademy is a great place to start learning. You’ll pick up the basics for each language, such as the syntax used, and you’ll learn enough to feel comfortable creating and editing simple code. You probably won’t be building the next Facebook after you’ve gone through a few tracks, but you’ll know enough to make learning the more complex concepts a bit easier. Just keep in mind: if you run into a situation where a lesson assumes knowledge of something you weren’t already taught, Google is your friend.
You’ll enjoy seeing your streak count rise with each day you sign in, but if you’re looking for a sort of “learn-to-program social network” where you can easily see a friend’s progress, Codecademy isn’t it. There are badges to be had as well as profile pages that show progress, but there’s no easy way to find a friend unless that person shares his or her profile URL with you. If you want to go back and check on a friend’s progress, you’ll have to bookmark that page. Like I said, it’s an area that needs work.
All in all, I’ve been mostly pleased with the experience. Codecademy is a free service, so go check it out. You have nothing to lose and a whole lot to learn. Just keep your expectations in check, and be ready for the occasional hiccup or two.