
Things have changed since I last posted about Codecademy. I’ve stopped using it. Not for any bad reason; I’ve just outgrown it.
Here’s what happened: I finished the JavaScript/jQuery streams and moved into the exciting module of ‘Projects’.
Okay, maybe they’re not that exciting. Simple challenges to validate forms and draw charts aren’t gonna set the world on fire. But they were Projects. No guidance, no step-by-step, just one instruction: Make this.
At the same time, I moved from the Codecademy editor to a ‘proper’ environment (Aptana, in case you’re wondering). After all, I was all set to build the next Twitter. I booted up Aptana, banged out some HTML, threw a bit of styling in there, and started cracking into the JavaScript. Nothing too fancy — just stretching my legs, as it were — but enough to put my skills to use.
I wrote my scripts, loaded up Chrome, and immediately hit a wall.
Shit.
Okay, bug-fixing time. I googled a bit. Reviewed old Codecademy lessons. Scrutinised the code line by line, character by character, and checked the official documentation. Everything seemed correct. Everything I’d written corresponded to old Codecademy lessons. But it didn’t work.
All my hard work, all my careful confidence-building… torn apart on my first exposure to The Whole Thing.
Luckily, the agency I work for has a Lynda subscription. I looked at the JavaScript Essentials course, found a likely-looking chapter, and within half an hour had fixed my problem. I’d also learned a whole heap that I’d not learned from Codecademy.
First, Understand Why
I’ve said before that Codecademy’s weakness is a lack of theory, and that’s exactly where this problem came from. I knew programming concepts, understood loops and functions and the basics of recursion and OOP, but I’d little idea how to put a coherent whole together from scratch.
The issue was embarrassingly simple: putting script tags in the appropriate part of the DOM. I was trying to manipulate the DOM before it had even loaded. Schoolboy stuff, but it had never been explained to me.
After fixing it, I went back to Lynda and watched the entire JavaScript Essentials course from scratch. There were many moments of revelation — a lot more than I’d have liked. To be clear: I still think Codecademy is a great introductory tool. It gave me a good hand-holding in my first steps and it introduces practical concepts quite well. But the lack of theory left fundamental gaps in my knowledge. They might not be part of JavaScript as such, but they tear you down nonetheless.
It’s a shame that I had to move elsewhere to fill those gaps. And it’s possible that the new JavaScript track has fixed that problem (I can confirm that the new jQuery track is much better than the old one). I don’t feel bad about my experience. I hit the walls and moved beyond it. If that’s not a sign that I’m progressing, what is?
Right now, I’m going back to square one and getting my foundations in place. I’m taking MIT’s Introduction to Computer Science 6.00x course on EdX. It’s tough, but I’d like to avoid schoolboy mistakes in future. I also plan to do all my coding in real environments, where I know exactly what’s running and what needs to be in place.
So. Slán anois Codecademy, but cheers all the same. You were sometimes frustrating, sometimes fun, but you got me coding.
Job done.