Show HN: Codecademy.com, the easiest way to learn to code (codecademy.com)

787 points by zds ↗ HN
I've been a longtime member @ HN, but I haven't been a developer. In fact, my only HN submission has been one asking how to learn to code (http://news.ycombinator.com/item?id=820741). My cofounder and I decided to solve the problem by making a simple, interactive way to get started with Codecademy. We'd love your feedback. If you're interested in helping us to get more courses up (on any topic!), please send us an email at HN@codecademy.com.

237 comments

[ 3.5 ms ] story [ 247 ms ] thread
I've been a longtime member @ HN, but I haven't been a developer. In fact, my only HN submission has been one asking how to learn to code (http://news.ycombinator.com/item?id=820741). We decided to solve the problem by making a simple, interactive way to get started with Codecademy. We'd love your feedback. If you're interested in helping us to get more courses up (on any topic!), please send us an email at HN (at) codecademy.com.
Awesome, thanks! I've always thought the use of books to teach programming was a bit ironic, especially for interpreted languages.

Back in the early '90s I had a book called Master C, which came with a floppy that ran a similar type of tutorial.

http://www.amazon.com/Waite-Groups-Master-Book-Disks/dp/1878...

Seems like a long gap between then and now.

Also, please let me request a course on Clojure. That would rule!

one course on clojure, coming right up!
will you use clojurescript?
(comment deleted)
I, for one, would prefer clojurescript.
Thanks - I don't think they had the tutorial when last I saw it.
(+ 3 3) is really how arithmetic is performed in Clojure? Okay, I'm done with learning Clojure.
It may look like a weird way to type things, but it has hidden advantages when you try to do more complex things, like treating data as a program... or programs as data.

It's a small price to pay, really, for the power to make some really complex things a lot easier, even if it's a bit weird at first.

After a while, it won't even seem weird any more.

I think this is going to be an interesting experiment:

I am going to test how many students at our high school can get interested in programming after trying out Codecedemy.

this must be why you have such a unique empathy for the user. you've truly put yourself in the user's shoes instead of lecturing.

its obvious something is great when you instantly think why the hell hasn't everything been like this all along.

thanks! i learned JS while writing the tutorial so it definitely was quite an experience. really appreciate the compliment!
Any advice on starting something if you're not a developer, or how you gathered the resources to do it with your limited knowledge? I'm not a developer but I just started doing LPTHW, I'd love to create something of my own but I was never good at making something from 'nothing'.
LPTHW is terrific. we're hoping to offer courses beyond basic javascript so you'll be able to learn from Codecademy too. the easiest thing to do is make something - think of what you'd like to make and keep referencing books on your way to completing it!
Thanks for the tip, I linked your website out to some of my non-programmer friends who I would have never thought would like it, and one of them is already on lesson 3!
great! thanks for sharing it!
could you write about how you went from a non-programmer to be able to launch that web site? would be super-interesting.
I like the interface a lot - clean and easy. How much will someone be able to do after going through the training?
I actually had a similar idea to this and you guys have executed wonderfully on it!

Starting with Javascript is definitely the way to go, as I strongly believe it's the language of the future (and right now actually). One request for courses would be intermediate/advanced javascript for people that already know how to program.

Also I think you should reach out to library developers (backbone, underscore, jquery, etc) so that instead of having a static readme/how-to they can create a course on how to use their library. I know that would get me up to speed on them a heck of a lot faster and would be super useful.

Agreed. Looks like you can submit courses from http://www.codecademy.com/programming-intro: There's a mailto link that points to contact at codecademy.com with the body "Hello, I'd like a create a lesson on ...". (Note that the OP asks here: http://news.ycombinator.com/item?id=2901163 that responses from this submission be directed to 'HN at codecademy.com')

@zds: Any plans to make this an online course submission, or do you want to filter everything through emails?

yep, expect online course submission in the next couple of days (with some other cool stuff sprinkled in). we're taking emails now so that people who want to get started right now can do so (we haven't built the form but we'll show you how to get started). feel free to shoot us an email if you want to get started before we have it built out.
Seems like a good app to get beginners started with learning to code. What stack is this built on? What language are you teaching with, is it javascript?
They are teaching javascript
we're using javascript to teach

it's a rails project.

Beautiful! But if I keep trying to explore after the "You've completed this lesson! Start the next one." message, I get

    ERROR: Cannot read property '_id' of undefined
In my opinion, exploration in this context is extremely important. The guided tours are nice, but I'm confident that you don't want to limit people's use of the site

Also, "You're doing great! To continue, you'll need to register or sign in. Otherwise all that awesome progress you've made will be lost. Sign In\Register (it's free)" was a complete surprise, and felt like a roadblock (in spite of the "it's free" message.

If a user types through enough of the pages to get this message, they probably are enjoying the site and want to keep working with it. Why not include a "Not now" option in this dialog?

That way they can choose to join when they step back when they are done and say "Wow, that's a nice site! I want to come back later and keep working on this. I guess I ought to register!", rather than a "Meh, I've only invested 2 minutes, guess not".

Agreed with all of the above points. Beautiful and easy to use.

The "You're doing great! To continue, you'll need to register or sign in. Otherwise all that awesome progress you've made will be lost. Sign In\Register (it's free)" dialog is most definitely a road block as there were no links available to go back to the home page.

Only two options were sign in or register. So yeah, there should be a cancel, or return to homepage

Nope, not a road block for me. By the time you get to that point, the user has already got a taste of the fruit; it's decision time. I registered.

I love this. Keep doing what you're doing, expand the library in a few months and contact foundations like Rockefeller for financial support if you need it.

Kudos! I'm excited.

awesome. we're adding the option to skip registering but we hope most people do what you do.
good idea, but just a thought - why not have registration go through the terminal as well? It seems you're only collecting email and password - why not just prompt for that without interrupting the flow of the lessons?
thanks, morrow, this is a great suggestion. we'll implement it once we finish adding more capacity and rewriting some of the stuff to lessen load.
Just wanted to echo morrow's suggestion - inline registration is a perfect way of collecting and registering users. It's a natural flow, not jarring at all, and also almost endearing if I type my email into the terminal and I get an email in the background and continue working.
thanks! we're planning on opening things up - just made the change and will push it live in a few minutes.

we'll update the dialog as well.

really appreciate the feedback! feel free to email more to me - zach (at) codecademy (dot) com.

This is a genius, i'll be doing this tomorrow (not a developer) and will bring feedback.
When I click on "Get Started", nothing happens. It made me think it was just a stub site. Is it just me? Chrome on OS X 10.6.
In Chromium, an alert bar stating "Follow the directions in the console to begin" pops up, and the console is highlighted while everything else is grayed out.

It's a CLI-based interface, not a click-based interface, which is a welcome change and a good thing for beginning programmers to learn.

Oh, thanks. It's odd, the CLI doesn't even appear here. Had to go to Firefox to see it. Probably some blocking extension getting on the way.

But still there were problems: the CLI did not recognize my keyboard layout. I could not type quotes, so I couldn't even say my name... Too bad, looks cool.

looking into this now - hope you'll check us out again in a day when we have it fixed!
Clearly a good idea... make programming a game. And very good implementation. Nice!
Have to agree with the sentiment so far, looks and works great!

What are you plans with it for the future?

thanks! at the moment fighting fires and working on getting more curriculum up.
You guys are onto something here, my Wife is trying to learn to code and finds books really tough to get instant feedback from. Also, that little intro on the front page getting people to code without them knowing is genius!
I find it kind of odd that it doesn't actually say what language I am learning. (I mean, yes, I can tell, but if I were learning I wouldn't.)

Was that on purpose?

The lesson told me I was learning Javascript?
You have to get through the first lesson before it tells you that you're learning JavaScript. This isn't terrible considering the audience this seems to be targeting -- the name of the language is an implementation detail to a beginner.
No, it is absolutely not an implementation detail.

When I was setting out to learn programming, I bought every book I could lay my grubby teenaged hands on about the language. Knowing the name of the programming language allows you to ask questions about it of other people and the Internet.

You are an exception, most people that are curious about programming do not buy every book about a subject just because they know the name of a language. If you are just starting out, it doesn't really matter if you learn how to write an if/else in C, PHP, JavaScript, etc.
we'll be adding other languages, so that's why the homepage doesn't explicitly state which language you're writing. we'll update it now. thanks!
I definitely think the hackers of the HN Community should help create lessons for the site, it'd be really beneficial for the non technical folk. I think if more lessons were added it'd be even more powerful.
we'd love that! if you have something you'd like to teach, drop us an email - zach (at) codecademy (dot) com.
As an "average" non-programmer I love this. I'm teaching myself to code and this looks like a framework for learning that's perfect. I'll send feedback as I go through the lessons
thanks! looking forward to getting it.
It's very addictive. One of the few use cases where I actually enjoyed the game-like features.
thanks, max! hoping you'll come back for more.
Not sure what's wrong with the site, but the top left is just one big empty area of white space and the get started button does nothing at all. I've tried both FF 6.0 and Chrome.
You have to enable/allow javascript (for the host itself as well as for facebook)
Ah, well if it requires FB, that would explain it. I was behind a corporate firewall that blocks FB.
Sorry about that! Working on fixes to decrease our dependence on FB. Let us know if you check it out at home - would love to hear your comments.
This is definitely genius. Even for programmers the service could be very valuable in learning new languages. I love my O'Reilly books, but I would throw all of them away in a heartbeat if the content was wrapped up in an interactive console like this.
thanks! let us know if there's any course you're interested in seeing.
Coffeescript and other languages that compile to Javascript could be an interesting starting point and would need the least work for u guys...
We are going after the same problem with a different solution - http://codeacademy.org

Looks great, looking forward to seeing it develop!

Charging $41/hour to learn Rails isn't a different solution.
How so? And we're definitely providing much more than just "learning rails."
Thought that your link was pointing at the OP's site until I followed it. The parent's link is to code<b>a</b>cademy.org, the OP's link is to codecademy.org (No 'a').
Lesson 4 "which number" instructions is lacking which name you should use, it should specify the variable name "number" clearly.
This has the hidden benefit of being great for review when you forget a concept. I gave up on programming as a trade after almost 15 years of false starts, but I do have to dip into code from time to time.

Having this to review with will be handy.

yep, that's what we're trying to help with too. just wait until we have some more advanced topics!

thanks for checking us out.

License this out for things. It can do anything a textbook can do better. Do you know how much easier math would be with this? So much potential. There's your monetization model.
Thanks for the suggestion! Keep an eye on the site ;)
Well done. I like it. I especially like the interface. I hope this idea catches on. Continued success. :)
thanks!
Any reason that I simply can not type quotes? Is it dependent on the keyboard layout? I'm using US Alternative International layout, Firefox 7, ubuntu 64-bit.
we're looking into this now - thanks for the tip.
Great work - I've got loads of non-techy friends who are looking for an intro to coding.
thanks tom! would love if you sent it to them.
This is very nice.

Some more informative messages would be helpful. Some errors are genuine errors while others are simply an issue of not typing in precisely what the lesson wants you to type in.

We'll fix the messages and errors ASAP. Thanks for the feedback!