API Education With Codecademy

As I do with many of my stories, I’ve been stewing on the news that online education platform Codecademy started offering API programming lessons for popular APIs like Twilio and NPR back in January. While at first glance this seems like an important evolution in API education, I wanted to really think through all the details of API on-boarding before I passed judgement.

Codecademy’s claim to fame is a pretty slick code view where you can edit your code and then a view window, which will process and run your code, letting you know if you’ve done it right or not. Each class is broken into several lessons, allowing you to finish at your pace, with a accompanying Q&A forum, glossary and scratch pad--with a badge showing you passed the course.

Codecademy offers API classes for YouTube, SoundCloud, Parse, Twilio, SendGrid, NPR, Sunlight Foundation, Bitly, PlaceKitten and Stripe APIs and handful of others, with each class using Python, Ruby or JavaScript as the programming language.  

I think Codecademy is a novel idea for helping existing developers understand the ins and outs of learning a new programming language or learning an API, using their wizard driven, code tutorials. But it shouldn’t be the only tool in your toolbox for helping people understand your API.

First I don’t think people (especially non-developers) want to “learn a programming language” or want to “learn an API”. In my opinion, APIs are about opening up access to resources that anyone can take advantage of, even non-developers. Because many APIs are built on HTTP and use simple key authentication, it makes them extremely hackable and something that anyone can put to use. I don’t think we need to require people to be programmers to use APIs, we can allow varying grades of coders, scripters and hackers to put APIs to use to solve problems they face in their everyday worlds.

When looking to educate your potential consumers about your API, you should focus on some sort of project that your target audience will relate with. I’m assuming you have done a great deal of due diligence on the market you have entered, as well as profiled any developers who are already registered for your API. So you have a good idea of the types of problems your API will solve and potentially how users will put it to use. With this knowledge you should be building lessons that speak specifically to these problems, not generically “learn your API”.

Next there are plenty of established building blocks like interactive documentation, blog, forum, frequently asked questions, youtube and Twitter that you can use to build lessons that focus on specific projects or problems your known target audience will need to solve. I just can’t advocate sending users away from your site to learn about your API, when you already have the building blocks you need to teach them in your API area.

Additionally, by using existing building blocks to construct specific lessons for potential users you will receive the SEO benefit, which will draw in new users looking to solve the problems you’ve identified. Most users won’t know they need to learn your API, they will be Googling that they need to solve a problem, and come across your API. You will miss out on this if you solely rely on an online platform like Codecademy.

Beyond SEO, you will deprive new users of the additional benefits provided by your API ecosystem, like direct and community support. On Codecademy you won’t be there to answer their questions along the way, and they won’t be able to access the knowledge and wisdom of your existing developer community--an essential aspect of taking your API from just an area, to a community and ultimately an ecosystem.

My objective on API Evangelist is to help API owners be successful in their API initiatives by understand the best practices to deploying and managing their APIs. I think Codecademy is a very cool platform and if you have the resources it is something you should add to your toolbox. But if your API team resources are short (as they are in most), you need to rely on many of the existing building blocks you have and build meaningful education material for your API that users can find and put to use within your API area, where you can make sure and support them in real-time.

Looking at the lessons Codecademy has, I don’t think they have the resources to offer lessons on all the top APIs, and I think they should focus on lessons around other common building blocks that API owners could put to use educating users, such as HTTP, oAuth, JSON, etc. I think its easy for all of us 8% alpha geeks to get excited about tools like Codecademy, but when the rubber meets the road with the mainstream I think we have to think deeper about how we approach teaching people about tech and APIs.