January 17, 2012

Reflections on Code Academy and Code Year so far

I've started Code Academy and as of last night, completed Week 1. This is a free program with weekly, online lessons to learn how to code (Javascript). Librarians have started using the hashtag, #codeyear to communicate with each other on their progress (and you can sign up for the lessons at the Code Year site). There has been a push in Libraryland for librarians to learn coding so we can be more self-sufficient in developing digital services and products, as well as just communicating better with IT professionals. There is even a newly-established ALA Connect group for librarians to discuss and help each other with the weekly lessons.

My impressions so far of Code Academy are mixed. Of course, no doubt, this is a great thing. It's free, it's accessible, and it's an intro-level program that is incredibly interactive. It can be hard to teach yourself these types of skills, so opening up the playing field is huge.

It's also nice that the lessons are given in increments, so you get Week 1 for a week, and then are sent Week 2 the next week. You can do more if there is more content up on the site, but it at least makes it more digestible. The leveling up and getting badges is another thing I like. It could be a little bit of gamification, but since these lessons have been made more social through Code Academy and also through the library community, it adds a little more fun to it. I've taken a particular interest as well as to how the Mozilla Open Badges project will relate to library instruction (or could relate), so experiencing a badge-generating program is useful to me and I'm seeing how it could potentially work with students. Although the Mozilla Open Badges project is for open access education, I still think it could be a beneficial concept to try in university and other formal academic settings as well.

Back to Code Academy, there are also some things that I am finding problematic. When considering good pedagogy, detailed feedback contributes to effective learning. Code Academy does not really give any feedback. You put your code in and run it, and then you are right or wrong. There is a little bit of info that pops up when you do enter wrong code, but it's not often enough to help you figure out where you went wrong. The hints are great at the beginning of the lessons, but get more obtuse and mysterious as you progress. I think it can be a good method that they are giving sort of a sandbox atmosphere to try out coding without being bogged down with theory and memorizing definitions (and where you don't have to be afraid of failure, which is a quality of a good game BTW) but at the same time, not really understanding the logic behind how some of the code works makes it very hard to understand why your answer does not work. I was glad to have other librarians who understand coding logic explain why my answer for Week 1, Lesson 8.2 was incorrect, so I was able to progress and finish the week.

Overall, I really do think Code Academy is great, and I'm going to continue on with the lessons. It can be difficult to weave detailed feedback in to an automatic, teach yourself-type program, but at the same time, it is essential for people who are just starting out. I think this article by Tech Crunch, "Will we need teachers or algorithms" (interesting read also for emerging trends in education) rings true here to a degree. Human or AI-driven though, if you can't figure out what you did wrong in a meaningful way, you can't learn from your mistakes and progress.


  1. A few thoughts so far:

    Programming is definitely something that's worthwhile to have a human instructor for. I'm surprised at how relatively good CodeYear is at evaluating whether code is right or not, but still... It will be interesting to see if the communities that grow around it (like in Connect) will be adequate as things progress.

    I'm not absolutely convinced about the effectiveness of the gamification of the course. It seems like a half-finished idea... there are badges and points, but do they do anything? And what badges are available? There doesn't seem to be a list of what you might be able to work for.

    It'll be interesting to see how the course progresses. The exercises, thus far, haven't involved much more than a line or two of code at a time; I assume the work will get a lot more complicated. I hope that the approach will be effective.

    Above all, I'm looking forward to continuing; at worst it will be an interesting experiment and at best it will teach a useful skill.

    1. Good point on the badges (and points). It would be more effective to have a list of the badges, and also a way of actually having ownership of the badge to put on a resume or portfolio, or even just a blog. It doesn't mean too much to just Tweet leveling up.

  2. I think that the feedback mechanism could be a little friendlier, though that is true of programming in general. One "skill" that has to be developed when learning to code is how to put meaningful feedback mechanisms into your code so that you know what the heck is going on.

    1. Yes definitely, and especially when they aren't going into a whole lot of theory, it's easy to get lost without more direction. Maybe they are still tweaking things as we go, hopefully later, more complicated lessons have more feedback.