Disclosure: I may earn affiliate revenue or commissions if you purchase products from links on my website. The prospect of compensation does not influence what I write about or how my posts are structured. The vast majority of articles on my website do not contain any affiliate links.
There are a lot of people looking to jump into programming1. At least, they’re posting quite often about it on Reddit. A site that gained a lot of traction in 2012 was Codecademy, an interactive, gamified, learn-how-to-program-from-scratch learning tool. People wonder: is Codecademy the best use of my time? Is it the best for introducing programming to adolescents? Will it help me learn a new skill?
Codecademy has been continually improved in the three years since I made it to a 98-day-straight coding streak. It has even added a premium subscription service. I applaud the concept and I think it’s a nifty tool for introducing programming to the masses, be it teenagers, those without access to traditional classrooms, or working professionals looking to expand their horizons2. However, the abundance of other resources now available online, including semester-long college courses and dedicated “create-as-you-code” tutorials on sites like Udemy serve as better alternatives for those looking to seriously develop marketable skills.
The core “language skills” tutorials have not changed much, if at all, from when I completed them three years ago. Though resulting in a decent grasp on syntax and a surface-level understanding of key concepts, they fall short in that there is too much hand-holding and not enough mandatory application. For example, I was able to breeze through the Javascript tutorial because it was syntactically similar to Java, the only language I knew at that point (yikes!). Then, after I became more comfortable with Javascript through my schoolwork, I was able to easily complete the Ruby tutorial. To this day, though, I couldn’t tell you the first thing about Ruby, precisely because I’ve never had to apply what little knowledge I gained in the neat online coding sandbox.
Codecademy sought to solve its most obvious shortcoming by adding project-based tutorials. It’s hard to retain casual users if you inundate them with long explanations, so, short tidbits prevailed, and that leads us back to the first problem. You can finish the Ruby on Rails tutorial and have barely no clue how to implement your next idea without using training wheels. The gamification aspect adds a further layer of confusion. I maintained a 90+ day streak and all I really have to show for it is a badge3.
In contrast, other online tutorials have much harder challenges, projects, and even detailed exams that ensure4 a solid understanding, explore the inner-machinations of various languages, and still support users moving along at their own pace. Though hypothetically learning Java and then C++ by way of practical tutorial is fine, eventually you’ll hit a wall if you don’t dive deeper and understand language-specific eccentricities as well as commonalities between languages such as data structures, algorithms, and design patterns.
In conclusion, Codecademy is a solid resource for basic introductory material, but holds little clout as a resource to help you scale the ladder of software engineering excellence. Instead, try Udemy, Treehouse, an old-fashioned textbook, or even a coding bootcamp.
I’m interested to hear your thoughts and experiences below!
1: There is a difference between Programming and Computer Science. For the purpose of this article I’ve treated them as the same thing.
2: To me, Codecademy was first-to-market, or at least the first to gain any attention.
3: And now, a blog post.
4: The only person holding you accountable is yourself, and the completion rate of many free online courses has shown to be dreadfully low.