I found even after becoming competent in HTML/CSS and learning enough JS to do UI stuff, using APIs was still a mystery to me. Most API documentation is aimed at a more advanced audience.
I could use cURL to make a request, but I couldn't work out how to fit all the pieces together in a web app.
API tutorials which are truly for the beginner are a great idea.
I think it is easier to "test" these types of API calls for beginners with the biggest names. Understanding how to connect to Twitter is simple, and those same principles can be used to connect to a wide range of other things. I think, more than anything, connecting to Twitter or Evernote is "safe". Which is good for beginners.
I think this is pretty good news, but I've also heard lots of bad things about Code Academy's lesson quality. Will Twitter, Evernote, et.al. have better QA systems in place?
They are user-generated lessons for the most part, so there's that. In my experience most of the lessons are fine, but occasionally you'll come across one that is too vague or has a very strict expectation of output.
I'm the cofounder of Codecademy - we've done a lot of work on our platform for a while and our lessons are community generated (but occasionally edited in-house). The lessons by Twitter, Evernote, etc. have been created by those companies and QA'd both by our community (in beta) and in-house. Let us know if you see anything amiss!
Since you're here, I thought I'd throw in my 2 cents on the API lessons:
There seems to be a pretty big knowledge gap from the HTML/CSS/JS tracks to the API tracks. It's nice that you give some basic info on HTTP requests and responses, but after that we're sort of left hanging without really knowing what to do with the material we've been presented. The Youtube lesson, for example, shows you how to retrieve JSON with the top videos for a given query and insert it into an HTML file, but what good does that do?
Honestly, most of them seem more like advertising space for the company making the lesson than anything else.
I wish that error handling would be a front-and-center part of any API instruction. There are a few obvious spots in the Evernote lesson I looked at where a sentence or two and a link to more info about how a remote network call might fail or a call could kick out errors due to input validations would really help someone who really wants to learn.
First of all we here at Mashape love what Codecademy offers. As one of the APIs on the list, we would like to encourage everyone to try out our tutorial if everything's in order. We welcome comments and suggestions to further improve our API mashup tutorial. Having said that, what language would you like to see next? (we started with Ruby)
They've had API lessons for a while, IIRC(http://www.codecademy.com/tracks/apis), I guess the news here is they've added some more big names to the list.
What does everyone think the ultimate goal and vision of Codecademy will/should be? i.e. do you think Codecademy will ever be able to evolve into a platform that churns out new batches of legitimately competent hackers? Or is it destined to forever be a mere gateway i.e. a "A more interactive W3Schools/Wikipedia for coding" providing a minimum level of programming literacy for lifelong non-engineers?
In my case, as a non-technical co-founder, Codecademy lessons help me gain a minimum practical understanding of the Web in a more time-efficient way, ultimately allowing me to better communicate with my more technical co-founders. I just wonder if Codecademy will ever be able to become more than that.
Well I for one hope they eventually offer Android programming tutorials (with some tutorials on basic Java first, for the complete beginner), if that would be possible in this format at all.
It's the current modern equivalent of those yellow "... for Dummies" books.
It gives a nicely presented introductory content, but these days the stuff you learn off CodeAcademy is the equivalent of an office worker mastering Microsoft Office VB scripting.
Which is to say, it's an absolute necessity to stay competitive considering the majority of modern office work, and in turn people, are replaceable by an Excel spreadsheet script.
This is the case especially when you go to somewhere like Google where outside the engineering roles it's just a bunch of highly accredited people being overpaid and overstimulated creating and babysitting automated processes. That culture will slowly creep over to every other industry at the inverse rate of a that industry's keeping around a fax machine.
The gameification is only good for entertainment purposes, considering every credible higher education institution don't recognize online classes as credible crediting.
So how can CodeAcademy get beyond being a fad?
Distribution and then vertical integration. They probably already know that. Reach as many kids as soon and as early as possible then start going deeper with the content, the more highly specific the knowledge the more you can charge for it.
They're really in the disruption of tech publishers, like O'Reilly or Safari or Apress. When they have a full library charging for a monthly subscription will keep them going for quite awhile.
I hope it will let people see tangible progress early, motivating them to really learn to code. I fear it will end up like fad diets, where early easy success gives a false impression that real work isn't required.
I just did the Evernote API lesson now, and I made a note, and that's cool and all. But it taught me essentially zero about ruby or APIs or Evernote's API, and if I were to try to estimate a programming task as "Well, I used the api to make a note in about 10 minutes so obviously this other thing that sounds similar must be simple too" I would end up doing more harm than good.
I really feel like opportunities to take a page-long tangent explaining concepts at every step should have been in the lesson. Even just links to wikipedia articles on programming concepts, something to provide the vocabulary - I think it would be hard for me to really learn more fundamentals based on this lesson because I wouldn't even know what terms to google.
I teach at a school for js devs, and many of our students get started at Codecademy. Based on what I've seen, they're already great at getting people to square one, but they're facing real challenges if their mission is to teach people to code.
Let's start with the good stuff: it's very, very engaging, and if I tell an applicant to go through codecademy, it's pretty likely that they'll get it done. In other words, they're very good at conversion optimization. They give the user very straightforward, bite-sized goals, and people end up doing a lot of work.
However, people that pass through this system end up with a very consistent and warped skillset. It's not because they're still newbs -- I run into lots of newbs that didn't go through codecademy, and these guys are unusual.
1) They're very familiar with syntax, and can fluently type code for common tasks, but have difficulty solving problems with these tools. For instance, it's very common that I find a codecademy graduate that can easily iterate through an array and initialize/modify variables, but not sum the elements in an array.
2) They don't model the program's execution in their head. This is a really profound and strange fact, with lots of weird corollaries. For instance, they don't have ways of dealing with errors when syntax-based guess-and-check fails. The notion of code executing line-by-line is surprising to them. This is a pernicious problem that requires unlearning.
It's very easy to trace these unusual skill profiles back to the mechanism that drives codecademy's success in the first place. I don't know what I would do in their place, but I have a few ideas of things that I'd like to see in the space:
--A curated project-based curriculum that takes followers along a similarly-well thought-out path.
--A wconsole-based codecademy that makes heavy use of the debugger.
Very well-put. I'm very busy and only have a certain amount of time to dedicate to Codecademy, but I'm really enjoying it. However, I agree with everything you're saying because I often find myself getting through exercises while not always grasping every aspect. Some of it takes self-monitoring to know when to go back and go through the concepts or look for outside help, rather than just seeing the green checkmark by an exercise and moving along.
Before your course gets published it goes through a 'beta' period where Codecademy users who have volunteered to be beta testers go through the courses.
Lol building an app on twitter is one of the stupidest mistakes a developer can make. They are one of the most hostile companies to developers. Anyone building anything on twitters API should assume their app will be banned if it gets any kind if usage.
I have to agree. I've had apps banned by Twitter just because they let people tweet their scores easily via the API. Looks too much like a Twitter client, boom, your API access is dead.
Wasn't there a successful client on Windows 8 recently, a platform where there wasn't even an official client, and they refused to forgo the API limits on the number of users you can have?
Using the Twitter API is setting yourself up for failure.
I'm pretty sure that it's a win for Codecademy whether Twitter changes their API or not. The brand name will motivate students to learn, and the point is to find out how to work with APIs in general.
I've heard a lot of people say the Codeacademy lesson quality just isn't that good yet, so teaching people to use an API that will shoot them in the foot isn't going to help. And honestly, if they want to teach Twitter, they should just teach asking the user for a username and password and pretending to be a web browser, because that's the best practice for using it nowadays. Saw foursquare doing that the other day.
I'd have to agree, training on the Twitter API is just a bad idea. Its just weird to see a company do everything imaginable to drive people off their API to turn around and want to train people on it.
Most companies turn kind of hostile with their API when money is at stake but Twitter has been particularly bad, especially considering a lot of the innovation on their platform happened on third party clients. They haven't mustered any kind of innovation of their own either.
The Chinese weibo's like Sina are actually quite a bit more interesting if you can deal with the language and the governmental interference.
If you want a ground floor learning experience app.net is probably a better choice though I doubt its ever going to gain critical mass.
@ BoxWorks this year, Jeff Lawson of Twilio fame touched on APIs and mentioned something along the lines of
"A developer should never trust an API or expect anything of it if he's not paying for it. As long as you're not paying, you're just another developer to the API provider. The moment you fork over any cash, you're a customer."
Mind, this is really crudely paraphrased, but the sentiment remains. This was immediately in the wake of Twitter's API changes last summer.
Another reason twitter is so scummy! Instead of having straight forward pricing, they entice developers to building on their platform, and then cut them off when the developers need help the most! IN the meantime they get the benefits of the interactions in the apps.
Congrats to the codecademy team for continuing to hit home runs with their service.
As a high school teacher, I find it to be an amazing resource for teaching students from age 13 to 17.
So far I've put a few hundred students through the HTML and JS sections and they all love the self directed nature of codecademy.
The badge system also works surprisingly well. It's really great to hear kids one-up each other with their badge count and daily streaks.
Codecademy is one of those amazing tech companies that I'd love to work for. They have great technology, they're changing the world and their execution is fantastic.
Partnering with Twitter? Good luck running a sustainable, reliable business! The idea by itself is brilliant, but the reality is so harsh, when it comes to consuming Twitter's API, especially given the fact that the company's decisions regarding their API usage is highly unstable.
33 comments
[ 5.0 ms ] story [ 91.3 ms ] threadI could use cURL to make a request, but I couldn't work out how to fit all the pieces together in a web app.
API tutorials which are truly for the beginner are a great idea.
There seems to be a pretty big knowledge gap from the HTML/CSS/JS tracks to the API tracks. It's nice that you give some basic info on HTTP requests and responses, but after that we're sort of left hanging without really knowing what to do with the material we've been presented. The Youtube lesson, for example, shows you how to retrieve JSON with the top videos for a given query and insert it into an HTML file, but what good does that do?
Honestly, most of them seem more like advertising space for the company making the lesson than anything else.
In my case, as a non-technical co-founder, Codecademy lessons help me gain a minimum practical understanding of the Web in a more time-efficient way, ultimately allowing me to better communicate with my more technical co-founders. I just wonder if Codecademy will ever be able to become more than that.
It gives a nicely presented introductory content, but these days the stuff you learn off CodeAcademy is the equivalent of an office worker mastering Microsoft Office VB scripting.
Which is to say, it's an absolute necessity to stay competitive considering the majority of modern office work, and in turn people, are replaceable by an Excel spreadsheet script.
This is the case especially when you go to somewhere like Google where outside the engineering roles it's just a bunch of highly accredited people being overpaid and overstimulated creating and babysitting automated processes. That culture will slowly creep over to every other industry at the inverse rate of a that industry's keeping around a fax machine.
The gameification is only good for entertainment purposes, considering every credible higher education institution don't recognize online classes as credible crediting.
So how can CodeAcademy get beyond being a fad?
Distribution and then vertical integration. They probably already know that. Reach as many kids as soon and as early as possible then start going deeper with the content, the more highly specific the knowledge the more you can charge for it.
They're really in the disruption of tech publishers, like O'Reilly or Safari or Apress. When they have a full library charging for a monthly subscription will keep them going for quite awhile.
I just did the Evernote API lesson now, and I made a note, and that's cool and all. But it taught me essentially zero about ruby or APIs or Evernote's API, and if I were to try to estimate a programming task as "Well, I used the api to make a note in about 10 minutes so obviously this other thing that sounds similar must be simple too" I would end up doing more harm than good.
I really feel like opportunities to take a page-long tangent explaining concepts at every step should have been in the lesson. Even just links to wikipedia articles on programming concepts, something to provide the vocabulary - I think it would be hard for me to really learn more fundamentals based on this lesson because I wouldn't even know what terms to google.
Let's start with the good stuff: it's very, very engaging, and if I tell an applicant to go through codecademy, it's pretty likely that they'll get it done. In other words, they're very good at conversion optimization. They give the user very straightforward, bite-sized goals, and people end up doing a lot of work.
However, people that pass through this system end up with a very consistent and warped skillset. It's not because they're still newbs -- I run into lots of newbs that didn't go through codecademy, and these guys are unusual.
1) They're very familiar with syntax, and can fluently type code for common tasks, but have difficulty solving problems with these tools. For instance, it's very common that I find a codecademy graduate that can easily iterate through an array and initialize/modify variables, but not sum the elements in an array.
2) They don't model the program's execution in their head. This is a really profound and strange fact, with lots of weird corollaries. For instance, they don't have ways of dealing with errors when syntax-based guess-and-check fails. The notion of code executing line-by-line is surprising to them. This is a pernicious problem that requires unlearning.
It's very easy to trace these unusual skill profiles back to the mechanism that drives codecademy's success in the first place. I don't know what I would do in their place, but I have a few ideas of things that I'd like to see in the space:
--A curated project-based curriculum that takes followers along a similarly-well thought-out path.
--A wconsole-based codecademy that makes heavy use of the debugger.
Wasn't there a successful client on Windows 8 recently, a platform where there wasn't even an official client, and they refused to forgo the API limits on the number of users you can have?
Using the Twitter API is setting yourself up for failure.
Most companies turn kind of hostile with their API when money is at stake but Twitter has been particularly bad, especially considering a lot of the innovation on their platform happened on third party clients. They haven't mustered any kind of innovation of their own either.
The Chinese weibo's like Sina are actually quite a bit more interesting if you can deal with the language and the governmental interference.
If you want a ground floor learning experience app.net is probably a better choice though I doubt its ever going to gain critical mass.
"A developer should never trust an API or expect anything of it if he's not paying for it. As long as you're not paying, you're just another developer to the API provider. The moment you fork over any cash, you're a customer."
Mind, this is really crudely paraphrased, but the sentiment remains. This was immediately in the wake of Twitter's API changes last summer.
I mean, either you develop on Twitters API or you have a gaping hole in your social media analysis product... Game over?
As a high school teacher, I find it to be an amazing resource for teaching students from age 13 to 17.
So far I've put a few hundred students through the HTML and JS sections and they all love the self directed nature of codecademy.
The badge system also works surprisingly well. It's really great to hear kids one-up each other with their badge count and daily streaks.
Codecademy is one of those amazing tech companies that I'd love to work for. They have great technology, they're changing the world and their execution is fantastic.