I’ve been working on the javascript fundamentals track on Codecademy for about, I think, a month? It’s been awesome, my love of achieving gold stars has finally found fulfillment in this educational site. You see…you get badges.
You get badges every time you achieve new things, when you complete lessons, or if you continue programming for days on end. It’s as satisfying as when I was a girl scout, but this time I’m not getting a badge because I’ve been taught how to shampoo my hair correctly. It’s for something that’s actually worthwhile. It also doesn’t make me feel like I’m in some kind of gender specific organization that wants to fit me into some cookie-cutter role.
One of the things I hated about switching over from the educational environment of university life to the working world, was the sudden and harsh lack of feedback. Unlike with school, I wasn’t getting regular feedback as to how I was doing, my abilities, where I stood. It became this ambiguous subject that you weren’t supposed to talk about. At least, not in the places and positions I worked at.
It’s something I struggled with for a long time, which is why Codecademy has found a sweet little place in my heart. I fully support this site and what it’s there for. There are, however, a couple of things I need to note. A couple of things that I feel should be addressed at some point by either the lesson creators or the staff at Codecademy.
Issue 1: When the lesson is checking to see if you’ve done it right, most lessons only verify what the lesson was discussing. Sometimes I know my other code is incorrect, but if certain aspect of it are correct then the lesson says Good Job, gives you the green checkmark, and moves you forward.
For some this may help them to not get too caught up in the details but sometimes for me it makes later aspects of the problem more difficult. Often I have to go back to earlier in the problem to figure out what exactly I didn’t understand there (or did incorrectly), before I can move on. This isn’t an issue with every lesson, but it definitely is with most. Being more thorough about checking for total answer accuracy is definitely needed.
Issue 2: There is no way for the individual user to create their own goals. I’m talking something simple, like being able to say “I want to finish one course a week”, or “I want to complete the javascript fundamentals track by {date}.” It wouldn’t be goals that the user can then get subsequent badges for, but it would allow them a chance plan out how much learning they want to do, and how often. I would like to create a learning plan for myself. I think it’s something that should at least be an option.
Issue 3: This is somewhat related to issue 2, in that there is no way to track your progress. You get a quick overview of your recent activity, but no way to see how much programming you’ve done, when you started, if you had weeks when you went overboard or others when you barely touched any code. Not only would some kind of google analytics progress review be helpful, it could be something interesting for the Codecademy team to push marketing wise.
Make it so the learners basically just share their stats without sharing any personal information, and then Codecademy can post stuff like “Over {so many hours} of programming done!”. In ways, Codecademy could create it’s own set of badges to post. Then, as a user, you would be attributing to the company’s progress, and you could see how your learning has affected Codecademy. I think it would be neat.
Final Issue: I hate hate hate it when I’m working on a problem and I accidentally hit the up arrow key (when I am selected in a particular region I guess) and it takes me to the previous lesson in a course. Half the time I’m working on a problem and haven’t saved in, oh, a minute or so. When I move up to the previous lesson I lose all the work I had prior to my last save. It’s really annoying, and it happens enough that it’s gotten to be a pain.
Suggestion 1: Have sections that are simply going through the process of reviewing the subject matter over and over. Simply review worksheets that people have the option of using to hammer in things like the basics of OOP (Object Oriented Programming). I know for me, that’s something I would use, even if there were basic “{so many worksheets} Complete!” badge.
Suggestion 2: Track how often the learner has to submit an answer before they get the correct one. Allow them the option of viewing that information or not. This would allow individual lesson developers to see where they might be having issues with their lessons, especially from people who don’t bother giving feedback or making comments in the forums. It could also provide the greater learning community some fantastic data about areas in programming that could be more difficult to grasp in general.
Granted I know that part of the appeal of Codecademy is the ease of use. I don’t want the site too overloaded with various data tracking options, but a couple might flesh out a learner’s profile without making it complicated to review. Now it’s time for me to return to my programming education. In the meantime, I’ll be excited to see the continued developments going on at Codecademy.