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.
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).
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 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.
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.