This story was written by Keith Dawson for UBM DeusM’s community Web site Develop in the Cloud, sponsored by AT&T. It is archived here for informational purposes only because the Develop in the Cloud site is no more. This material is Copyright 2012 by UBM DeusM.

Teaching APIs at Codecademy

New track stresses building on others' code.

One of the pioneers of teaching programming online is moving up the stack. Codecademy has partnered with 10 organizations, as a start, to lay out how to use their APIs.

codecademy

Codecademy's Zach Sims told the Wall Street Journal that his desire has always been to get learners to the point where they can build something functional and real. Codecademy's early forays into teaching programming, beginning with JavaScript, left students with a very long road to slog until they knew enough to put together a real app.

Starting here, learners can now go step by step through getting data from the initial partners Codecademy has worked with to develop lessons, which include Bitly, NPR, Parse, Twilio, and YouTube. For example, the student could use APIs to search for the top YouTube videos, or to retrieve the full transcripts of NPR stories. Sims characterized the process of learning to use these organizations' APIs as "Definitely not easy, but I think we made it pretty easy to understand."

It's still a long road from calling APIs in JavaScript to crafting a full-blown app that does something useful and interesting. You might say that Codecademy's latest tutorial approach does not so much move students along that road as it drops them down at another spot further on the way. The Journal's reporter, Matthew Lynley, addressed this point when he asked Sims, "How many extra steps does it take from here to build a full-fledged app?" and "How long does it take to go from knowing nothing to building apps?" Sims replied, "It's obviously not easy. It's easy to get started. If you put the time and effort in you can be doing that in a month."

The critics
Codecademy and its brethren -- including pretty much all online courses that aim to teach programming to non-programmers -- have their detractors. I-Programmer's Mike James makes the case against superficial, syntax-based approaches to teaching programming: "Programming is a mental skill that you have to acquire and it is difficult... The first step in programming isn't thinking up complex algorithms, it is in seeing the connection between simple algorithms and the equivalent text." And Bret Victor's detailed proposal for an integrated language and visual method of teaching it, which we discussed here last year, stands in stark contrast to the (by comparison) crude teaching methods employed by Codecademy and its ilk.

What has Codecademy wrought?
If the online tutelage available through Codecademy is not ideal for teaching beginners to program, what is it good for? It could well become the best way for experienced programmers to approach unfamiliar APIs. Codecademy's Sims hopes the ten partners that have created the initial API lessons will be only the beginning examples of "a platform where anyone can add a lesson for their API," according to the WSJ.

What do you think? Any APIs you have been itching to learn? Will Codecademy's approach help you to move your knowledge forward?

Related posts: