11 ms·
Show HN: Codecademy.com, the easiest way to learn to code
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.
- chanux 15y agoThis is awesome. It definitely revolutionises learning programming. One thing to improve, make the program sound the nice guy it sound when the user does things right. I tried doing something wrong and presented with just an error. Probably not good for the type of audience that would embrace this. `> 2w2 ERROR: identifier starts immediately after numeric literal` Wishing very good luck.
- zds 15y agoWe'll try to wrap the errors with something a little more user friendly. Thanks!
- zds 15y agoI'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 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.
- beefman 15y agoAwesome, 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/187873900X 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!
- zds 15y agoone course on clojure, coming right up!
- MrKurtHaeusler 15y agohttp://www.try-clojure.org/ http://www.try-clojure.org/
- beefman 15y agoThanks - I don't think they had the tutorial when last I saw it.
- dstein 15y ago(+ 3 3) is really how arithmetic is performed in Clojure? Okay, I'm done with learning Clojure.
- Natsu 15y agoIt 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.
- stephenou 15y agoI 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.
- fredBuddemeyer 15y agothis 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.
- zds 15y agothanks! i learned JS while writing the tutorial so it definitely was quite an experience. really appreciate the compliment!
- HiroshiSan 15y agoAny 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'.
- zds 15y agoLPTHW 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!
- HiroshiSan 15y agoThanks 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!
- zds 15y agogreat! thanks for sharing it!
- czzarr 15y agocould you write about how you went from a non-programmer to be able to launch that web site? would be super-interesting.
- justinmares 15y agoI like the interface a lot - clean and easy. How much will someone be able to do after going through the training?
- OmarIsmail 15y agoI 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.
- reemrevnivek 15y agoAgreed. Looks like you can submit courses from http://www.codecademy.com/programming-intro 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 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?
- zds 15y agoyep, 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.
- akvlad 15y agoSeems 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?
- reemrevnivek 15y agoBeautiful! 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".
- jhen095 15y agoAgreed 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
- faramarz 15y agoNope, 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.
- zds 15y agoawesome. we're adding the option to skip registering but we hope most people do what you do.
- brackin 15y agoThis is a genius, i'll be doing this tomorrow (not a developer) and will bring feedback.
- cksk 15y agoWhen 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.
- reemrevnivek 15y agoIn 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.
- cksk 15y agoOh, 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.
- zds 15y agolooking into this now - hope you'll check us out again in a day when we have it fixed!
- magicalhobo 15y agoClearly a good idea... make programming a game. And very good implementation. Nice!
- BrettCawley 15y agoHave to agree with the sentiment so far, looks and works great! What are you plans with it for the future?
- zds 15y agothanks! at the moment fighting fires and working on getting more curriculum up.
- olivercameron 15y agoYou 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!
- cadr 15y agoI 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?
- cwilson 15y agoThe lesson told me I was learning Javascript?
- jeffreymcmanus 15y agoYou 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.
- pnathan 15y agoNo, 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.
- fletchowns 15y agoYou 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.
- jeffreymcmanus 15y agoIt's an implementation detail to a beginner.
- pnathan 15y agoI was a beginner.
- mshafrir 15y agoLooks great guys. It might be useful for new developers to be able to reset the code in the textarea to its original state if they mess up or get lost (I was looking at http://www.codecademy.com/programming-intro/7 http://www.codecademy.com/programming-intro/7 when this thought came up)
- brackin 15y agoI 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.
- zds 15y agowe'd love that! if you have something you'd like to teach, drop us an email - zach (at) codecademy (dot) com.
- wturner 15y agoAs 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
- zds 15y agothanks! looking forward to getting it.
- maxniederhofer 15y agoIt's very addictive. One of the few use cases where I actually enjoyed the game-like features.
- zds 15y agothanks, max! hoping you'll come back for more.
- donniefitz2 15y agoNot 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.
- mrud 15y agoYou have to enable/allow javascript (for the host itself as well as for facebook)
- donniefitz2 15y agoAh, well if it requires FB, that would explain it. I was behind a corporate firewall that blocks FB.
- zds 15y agoSorry 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.
- physcab 15y agoThis 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.
- zds 15y agothanks! let us know if there's any course you're interested in seeing.
- SudarshanP 15y agoCoffeescript and other languages that compile to Javascript could be an interesting starting point and would need the least work for u guys...
- nealsales 15y agoWe are going after the same problem with a different solution - http://codeacademy.org http://codeacademy.org Looks great, looking forward to seeing it develop!
- jolan 15y agoCharging $41/hour to learn Rails isn't a different solution.
- nealsales 15y agoHow so? And we're definitely providing much more than just "learning rails."
- evro 15y agoGood luck with http://codemountain.org http://codemountain.org
- nealsales 15y agoThanks. Both http://codemountain.org http://codemountain.org and http://codeacademy.org http://codeacademy.org are doing very well!
- reemrevnivek 15y agoThought 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').
- nealsales 15y agoYep...that was intentional.
- kenok 15y agoLesson 4 "which number" instructions is lacking which name you should use, it should specify the variable name "number" clearly.
- mkr-hn 15y agoThis 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.
- zds 15y agoyep, that's what we're trying to help with too. just wait until we have some more advanced topics! thanks for checking us out.
- daimyoyo 15y agoWell done. I like it. I especially like the interface. I hope this idea catches on. Continued success. :)
- zds 15y agothanks!
- rglullis 15y agoAny 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.
- zds 15y agowe're looking into this now - thanks for the tip.
- castewart 15y agoI like the idea. Did you borrow inspiration from www.tryruby.org ?
- patched 15y agoPerhaps that and http://CodeSchool.com http://CodeSchool.com ?
- tomblomfield 15y agoGreat work - I've got loads of non-techy friends who are looking for an intro to coding.
- zds 15y agothanks tom! would love if you sent it to them.
- scelerat 15y agoThis 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.
- zds 15y agoWe'll fix the messages and errors ASAP. Thanks for the feedback!
- teyc 15y agoVery nice design. You can almost compete with the adult education colleges if you can get certification. By the way, the design is very nice.
- zds 15y agothanks!
- psychotik 15y agoThis is a wonderful start - kudos. If you're targeting beginners/novices, which it looks like you are, your current approach looks ideal. I wonder how this scales to more advanced topics/languages. I think there is a market (a much smaller market though) for advanced learning, and if done right a lot of beginners can be encourages to deepen/broaden their skills. Crowdsourced lessons, simplified to fit in with a successful learning framework like Khan Academy or Codeacademy.com is probably what will make this possible. Any thoughts/plans to go that route?
- zds 15y agoyou'll see soon enough ;) thanks for the feedback!
- MrJagil 15y agoAmazing stuff! Slow and buggy, but as a guy who can't program for shit, this is awesome!
- zds 15y agoworking on ironing out the bugs and upping the speed, thanks for the feedback!
- deleted 15y ago[deleted]
- revorad 15y agoVery nice. Really well made. Love the fact that I could just dive in and engage with the product from the homepage without having to dance through the usual annoying sign up routine. One thing I'd change is this error message which is not really an error message : "ERROR: Sorry, that's not correct. Please try again." It appears every time I try some command which is not exactly the next step defined in the tutorial. It kind of feels like an old school tutor forcing me to follow a rigid book exercise and discouraging experimenting. If you want me to complete the tutorial, don't move the progress indicator until I complete the next step, but please don't scold me with fake errors :-) One thing I've been craving for is a place where I can jump in and get a quick primer on some random topic from another programmer. Think SO in real-time. I know there's IRC, but it's not very user friendly and I don't want to hop around different channels to ask different language questions. If you build a truly social and interactive site for learning programming, I'd use it a lot. Good luck!
- zds 15y agothanks! we're opening it up to free programming asap and we're going to stop the fake errors thing. this is exactly what we're planning on doing - let me know if you'd be interested in creating a lesson or if you have other feedback - zach (at) codecademy (dot) com.
- astrofinch 15y agocomparable to: http://eloquentjavascript.net/ http://eloquentjavascript.net/
- dsawler 15y agoEloquent Javascript was painful for me. As a beginner, I had so much trouble understanding what was going on. On the other hand, I've had a great experience with Codecademy, though I haven't spent a bunch of time with it yet.
- madao 15y agovery nice! but I have problems working this on my IPAD, appears you cant type in that box on the virtual keypad...
- zds 15y agounfortunately the iPad is unsupported at this time. we're working on getting it out the door as fast as possible!
- bomatson 15y agoFeels great, well done on the UX side. Although I do wish you would focus on particular languages and use cases. Suddenly, "I'm learning Javascript". A normal reaction would be- "Why am I learning Javascript? What is it useful for?" for non-technical users
- zds 15y agoyep, planning on adding some more context as soon as possible. thanks!
- dkokelley 15y agoA little buggy. I seem to have lost my session and logging in produces an error (Invalid email or password.). Also, after completing the courses, some courses showed as incomplete.
- zds 15y agoWorking on fixing user registration and login - we're having issues because of all of the traffic. Try us again soon and everything should be working. Thanks!
- amasad 15y agoAwesome! This is using my console library, jqconsole https://github.com/amasad/jq-console https://github.com/amasad/jq-console
- prayag 15y agoI am on Linux_x64 and chrome. Can't click the GetStarted button.
- deleted 15y ago[deleted]
- deleted 15y ago[deleted]
- drieddust 15y agoWonderfull idea and nice execution too but on Android keyboard fails to show up. Tried 2 different devices.
- EAMiller 15y agoChrome 13 / OSX 10.6.8 - I can navigate the courses pages, but don't see the CLI interface (just the section list, and the Disqus discussion). Also it's not redirecting to any shebang URLs. Works fine in Firefox. (nice work btw)
- zds 15y agobug noted - we're on it! thanks.
- Hostile 15y agoThis reminds me of (what was previously _why's) "try ruby!" at http://tryruby.org/ http://tryruby.org/ I always loved that, and I think this has a lot of potential. Tomorrow being Whyday, I think I'll send this to some people to try and spread the joy of programming. I do think that the parentheses and semicolon stuff might appear sort of abruptly for the completely non-technical, but it's hard for me to judge, really.
- zds 15y agothanks! we love tryruby too. thanks for celebrating whyday!
- nirvana 15y agoThis pulled me right in... and it has me intrigued and I'm playing around with it. This made me realize that the more you get me using it, and the more you teach me, the more likely I am to come back to you when there's a language I want to learn that I don't already know. Love the jump-right-in setup you have going.
- chetan51 15y agoExcellent work! This is the first interactive coding tutorial that I actually like. Small bug: On http://www.codecademy.com/programming-intro/4#!/exercise/3 http://www.codecademy.com/programming-intro/4#!/exercise/3, it says "We've given you an example for the first one", but there is no example.
- zds 15y agolooking into and fixing this now. thanks!
- JacobIrwin 15y agoIs this affiliated to (or a domain change) of hackercs.com? Or a new competitor?
- zds 15y agonot affiliated with hackerCS - we love what they do though!
- emilepetrone 15y agoReally nice. I just did all of the exercises . 2 bugs I hit were the lessons not saving upon completion & if it hits an error, it froze the window which I had to close (Chrome running on Lion) Proof of completion: http://www.codecademy.com/users/4e4da1c233a5480001000221 http://www.codecademy.com/users/4e4da1c233a5480001000221
- zds 15y agolooking into these now. thanks!
- primigenus 15y agoThis is really similar to the "getting started" feature in our product, Handcraft.com. It's a HTML prototyping tool so you have to write code, but we're aiming it at interaction designers so we've taken care to address the fact that some designers aren't too familiar with writing HTML to do prototyping. We ended up initially putting you into an introductory prototype when you first start an account where we bring you up to speed on what our tool can do in terms of writing HTML before we go further and show you more about how our tool is special. Strangely, after launching in the Chrome Web Store, we started getting a lot of feedback from people who had stumbled into it and were discovering HTML for the first time through our getting started guide. They don't have a clue what "HTML prototyping" or "interaction design" is, but they love learning about "how to make websites" with Handcraft. Just thought I'd share. Great work with Codecademy! I'll be keeping my eye on it and might start forwarding people over if they get stuck with what we have on offer.
- stephenou 15y agoI first thought this is going to be another site with a bunch of long tutorials. But I was wrong. My instinct tells me this can be the way to get wanna-be young coders excited about programming. Reason being is teenagers/young adults can feel like they are actually talking to a person, not a machine. (I am the programmer of 5 websites/apps/plugins and a high school sophomore.)
- dusklight 15y agoWhy doesn't this say right at the very beginning what language you are trying to teach? The tone of the site is incredibly arrogant. What makes you qualified to teach? Have you heard of the Dunning-Kruger effect? It should be more explicit that this site is teaching Javascript (are you teaching other languages? it is not clear) and it is for complete beginners, and that the site creators make some very patronizing assumptions about the students. This is like clicking on a link to "poetryacademy.com" and finding a site that is teaching you how to sing the alphabet song.
- tdfx 15y agoI agree that the site should mention that the user will be programming in Javascript... but I'm not sure where you were going with the rest of that. "Arrogant" is definitely not the word I would use there.
- bwanaaaaaa 15y agoARROGANT is precisely the word. The 'teachers' are showing off their real time javascript interpreter in an ersatz form of diluted rote learning. Monkey-see monkey-do is like putting blinders on someone.It's like telling you I am going to show you how to eat ice cream and giving you a scoop of vanilla out of your freezer.. I'd rather go to Kimball's and see people getting all sorts of flavors, all sorts of ways-and then when I see something interesting-ask them what does it taste like. Arrogance is when you hightlight the difference between you and me and then doing something to maintain that divide. Arrogance is the mechanism of maintain inequality. False advertising is a subtle, but commonly used form of arrogance. Like I said earlier, show me a way to interact and tinker with an already existing codebase that does something interesting. Make sure that codebase is extremely well commented and hyperlinked. And I will be swimming with freedom in a limitless sea of knowledge that people have cultivated over decades.
- aik 15y agoI think it would be more beneficial to the authors if you explained why the tone is arrogant? Also, why do you assume the authors aren't qualified to teach -- why do you immediately assume them to be incompetent by noting the Dunner-Kruger effect (that sounds a bit arrogant to me?)? On the same note, what exactly do you believe makes someone qualified to teach? One more question -- what exactly is wrong with targeting complete beginners? Please explain how that is patronizing -- it is a fact that some people in this world don't have programming experience, are OK with that, and would be happy to learn.
- ph0rque 15y agoI'll get back with what my 12-year-old brother says about it.
- zds 15y agoWould love to hear it. Shoot me an email at contact (at) codecademy (dot) com.
- planckscnst 15y agoIt isn't completely clear what Variables -> CaSeS wants me to do. It seems like it's asking for: myFullName = "Thomas Edison" But it's reminding me of making sure my variable names are correct, so maybe: myFullName = myName lastName That doesn't work. Because I'm a programmer, I know that the + operator concatenates strings, but I don't think everyone will think consider that, and it hasn't been mentioned at that point.
- zachshallbetter 15y agoIt was looking for var myFullName = "First Last";
- planckscnst 15y agoWhy does the hint suggest making sure case is right then? I can't imagine a mistake someone would make where that would be a helpful hint.
- zachshallbetter 15y agoDunno, I didn't write it. I actually refreshed once because I thought there was an error. I then realized it was my fault after looking at the previous question.
- zds 15y agoLooking into fixing this tomorrow as soon as we get the load under control. Thanks!
- paul9290 15y agoawesome i proposed a similar idea yet a different way of teaching one of the popular web languages at a Start-Up Weekend. Most there dont know how to code, but none too surprising none were interested in creating a service to learn how to code. I'm not bitter that my idea wasn't selected as these non-coders wanted to create a fashion site or the AirBnB for restrooms (HA) :) Well Im going to get started on that idea I proposed a few months ago. Besides this Ive seen some other things popping up that show a real need for such a service. My wish for your site is to have a log in option so I can save my scores and it remembers what I did with each lesson. Good luck!
- raster_blaster 15y agoHah, it even keeps the cursor from blinking. I wonder if it's hardcoded or if it actually picked that up from my system settings. I've never done Javascript before (although I do or did Python/C/C++/D/Pascal/AHK), this will be interesting. Great job!
- zds 15y agoThanks! Hope you can pick up Javascript and add it to your arsenal with Codecademy.
- ph0rque 15y agoGreat work so far! I would suggest that when you have enough lessons, you create a knowledge tree instead of just a list, similar to what Khan Academy does (http://bjk5.com/post/1664635835/constellation-knowledge http://bjk5.com/post/1664635835/constellation-knowledge).
- SudarshanP 15y agoHope it is possible to reuse the knowledge tree from khanacademy in your application directly... Maybe even the credits system... maybe even user accounts... just imagine a world where every feature does not have to be reinvented... All the best! Awesome product!
- zds 15y agoThat is indeed the plan - look for it to hit the site in the next few weeks!
- nextparadigms 15y agoI hope you can add Android/Java programming later on. But until then you should probably focus on web languages. Very nice site. When I'll decide to learn Javascript, yours will be the first I'll try. Great name, too. I hope you can expand it quickly. Good luck.
- zds 15y agodefinitely in the pipeline. keep coming back to the site to see what's next!
- emehrkay 15y agoNice to see that there is a market for this because I've had an idea for about a year now around an .it domain that I bought last year. Good work
- zds 15y agoThanks!
- Cushman 15y agoJust FYI, since I assume it doesn't come up in the lessons, your REPL doesn't like objects that self-reference, even though it isn't trying to print them out. > o = {} > o.o = o ==> [object Object] ERROR: Maximum call stack size exceeded This isn't totally unusual; `window` has several self-references, for example, and hangs for several seconds.
- amasad 15y ago@zds inspect.js should fix this issue, which was written by the Node people to inspect objects in the terminal and take care of circular references. I edited it to make it work on the web https://github.com/amasad/jsrepl/blob/master/util/inspect.js https://github.com/amasad/jsrepl/blob/master/util/inspect.js Just pass all results from eval to the inspect function and you'll get a nice pretty printed output!
- zds 15y agothanks, amasad. looking into this now!
- rkalla 15y agoThis new fad of providing interactive/iterative consoles for learning technologies (e.g. redis[1], mongodb[2]) is brilliant. I really well done flow (like this one) reminds me just how fun it is to learn something when it is presented well. I am ashamed to say that if I had to teach someone, say Java, I wouldn't know how to present it in a fun, non-crushing manner. I am glad there are people out there working on resources like this. [1] http://try.redis-db.com/ http://try.redis-db.com/ [2] http://www.mongly.com/tutorial/index http://www.mongly.com/tutorial/index
- zds 15y agothanks! we're hoping to help you learn a lot more than javascript soon.
- dreamdu5t 15y agoHuge mistake to make it free. Huge mistake.
- HiroshiSan 15y agoI could see it free for the main page and then any other languages they add could have something like...first 3 lessons are free and then you have to pay to unlock more languages or lessons.
- zds 15y agoDon't worry, this is just the start. More coming!
- aaronbrethorst 15y agoAbsolutely wonderful. This is the successor to TryRuby I always hoped someone would build.
- zds 15y agothanks!
- TechnoFou 15y agoGreat idea, excellent execution....some slow server and unresponsive consoles, but that's normal for a launch! Overall, an amazing website!
- zds 15y agoworking on making sure it's up to speed ASAP, thanks!
- tolmasky 15y agoInteresting feedback: I had my gf do it, and she got stuck in the .length portion, because she kept typing: "name".length. This is because the prompt said: Well done! How long is your name? Find out by typing your name in quotes and ending it with .length. For me, that'd be "Ryan".length. Apparently its not clear enough what is code and what isn't. While you and I can tell that the last period belongs to the sentence and not the code, it was a bit confusing for her. Perhaps putting the code in a different font (as well as the current highlighting) would do the trick?
- zds 15y agoChanging this right now. Thanks so much!
- nicki_easy 15y agoI am no one's girlfriend, and I am stuck on lesson five :P I think that if this is aimed at beginners it needs to be dumbed down more--I am a reasonably intelligent absolute beginner curious about coding and whether I'm interested in learning some, and in this lesson you have completely lost me; I no longer understand what I am doing or why, and I don't know how to proceed: Everything we've talked about so far has one value. But what happens when you need to store an ordered list of values? You use a data structure known as an array. The editor now has an array named numbers with the numbers 1, 4, and 6 (look at how we set the values). To access a particular value, you can use the name of the array and its position, or index (they start with 0). To get the number 4 from the array numbers, you would write numbers[1]. Try writing a line that will set the value of a variable called six to third number in the array. I feel like there is not enough building on the previous lesson and not enough practice/repetition for me to get a toehold on what I'm doing/learning before moving on to the next thing. Here you have already moved me up to a level of abstraction where I cannot continue the exercise without seeking outside help (from Google, a book, a friend...). And my hint is: To do this exercise, you have to declare a new variable (using var six =) and set it equal to the value of the array (done with numbers[2]). Remember: array indexes start at 0, not 1. I'm totally lost. This hint is not helpful to me and there are no more hints. I'm stuck and can't continue within the lesson itself without more hints, exercises or explanation. Also, I think this is brilliant <3. Keep going.
- kongqiu 15y agoGoing to share this with my 8-year-old!
- zds 15y agoTerrific. Let us know how your child likes it! feedback (at) codecademy (dot) com.
- forgingahead 15y agoThis is great -- very intriguing so I got pulled in. Was a non-coder myself 6 months ago (still don't consider myself one) and this is great. Thanks for doing it!
- hacker_ray 15y agoso easy
- michaelneale 15y agoFantastic - I am going to see how my daughter goes with this (8 years old) - previously has been python which was great - but she could do this on her own.
- zds 15y agoTerrific, thanks Michael. Let me know how she does and if you run into any problems - I'm contact (at) codecademy (dot) com.
- michaelneale 15y agoWell she did pretty well, need to spend more time. The problem is the lure of "moshi monsters" (which I am realising is a social network by stealth) - just one tab over ;) It is really fantastic - the subtleties of dealing precisely with a computer (syntax) are often hard to get across, but I like how this eases them into it - but doesn't hide it away with visual programming. One of the greatest pieces of advice I was given before I started programming was that a computer will not tolerate mistakes, fuzzyness, vagueness. It will do your bidding, but no more.
- pythonrocks 15y agoAnyway, you can't beat SICP.
- czzarr 15y agobrilliant and beautiful, congratz
- omarkassim 15y agoThis is an absolutely fantastic idea and is really well executed. What I find to be even greater is that as you run through the thread of comments, zds is responding to feedback and then going back to Codecademy.com to actually incorporate it on the fly. It's 10 hours since this was first posted and I just read some comments on "you should be able to skip registering until later" and it's already available when you get to Lesson 3. A great way to listen to and incorporate the right user feedback into your application quickly and effectively. Really good stuff!
- zds 15y agoThanks so much for the compliments, Omar! We're trying to fix all the errors as soon as we can and get more lessons up ASAP. We need help though! If anyone wants to contribute lessons, feel free to drop me an email - contact (at) codecademy (dot) com.
- jurre 15y agoWould you let me translate it to coffeescript?
- zds 15y agoWould love you to! Drop me an email at contact (at) codecademy (dot) com and we'll get you started. Looking forward to it.
- timinman 15y agoHey great job! (And just in time for whyday) Intermediate coders might also want to try this similar site I recently found: http://nathansjslessons.appspot.com/ http://nathansjslessons.appspot.com/
- BasDirks 15y agoThat's really kick ass. The rewards (simple numbers/badges) work well for me.
- oskarblom 15y ago7/8:ths into it hung chrome and I had to kill the page. All my progress disappeared. :(
- yoklov 15y agoSame thing happened to me while I was testing it out, page crashed so there's no error message for me to paste from dev. console.
- frobozz 15y agoI don't think you determine a passing result correctly. I made several attempts as "Lesson 8: Take a While", all fulfilling the brief, and all telling me "Oops, try again". I wasn't even being particularly perverse on all of them. In fact, when I did try being perverse, I got it to pass even though it technically should have failed. This is an example of perversely passing: var times = 0; while (true) { print( "hello" ); if(times >=100) { times = 2; break; } times += 1 }; The brief is "Your turn! Let's make a while loop that prints "hello" twice. It's outlined in the editor."
- rglover 15y agoThis is great. As a designer, I've wanted to find some sort of learning mechanism that walked me through coding and really explained what each part does. I found TryRuby the other day and loved it. This seems to be in the same vein but Javascript focused (which is awesome because I want to develop a better knowledge of front-end dev). Really enjoy this and hope it sticks around for a bit, I think it will be really helpful.
- MrKurtHaeusler 15y agoI like it. I am however not the target user. Also it is not that original: http://tryhaskell.org/ http://tryhaskell.org/ http://tryruby.org/ http://tryruby.org/ In fact theres already a javascript one: http://tryjavascript.devfu.com/ http://tryjavascript.devfu.com/ But it does seem friendlier somehow that the others.
- mkr-hn 15y agoI think what sets this apart is the curriculum format. You can go back through and review lessons. I don't see something like that on the sites you linked.
- MrKurtHaeusler 15y agoAhh yes very good point.
- mkr-hn 15y agoDid you wipe accounts? It's not letting me login, and I get "Email not found" when I try to send a password reset e-mail.
- robjohnson 15y agoVery interesting intro to JS.
- crag 15y agoI love it. Well done. And thanks.
- 5h 15y agoA 15 year old work experience person I have just ran through this, with no prior programming experience ... seems to have worked very well, grats to the authors!
- gary4gar 15y agoGetting Started with Programming: 100% completed Please add more courses :D
- davidivins 15y agoFYI - found a bug: Yesterday I started doing some exercises, but I guess the site was getting hammered and some of them were never marked as completed. So today I finished the exercises and re-completed the ones that were never recorded as completed. Now I have two "Getting Started With Programming" badges and two "25 Exercises Completed" badges. Just wanted to let you know.
- peterb 15y agoWell done. One suggestion is to use the Socratic Method (http://en.wikipedia.org/wiki/Socratic_method http://en.wikipedia.org/wiki/Socratic_method) like "The Little Schemer". I would love to see "The Little Schemer" implemented on your site.
- peterb 15y agoI just completed the course and it is very well done. If you want to teach to young children (especially boys), then a Khan Academy approach could be used where you narrate the course. Most of Khan Academy's success comes from Sal himself, his personality. It is hard to find natural teachers who show heartfealt enthusiasm for their subjects. Ryan Bates of Railscasts also achieves this. Just my C$0.02. Again, thank you for your work. This is a wonderful direction for education.
- scelerat 15y agoThe hardest part of learning to program for me (thinking back many many years to THINK C) was learning the environment and what all the terms and messages meant. I think basic programming is actually conceptually easy. I remember being frustrated by not understanding the lingo and I think that's where a lot of people starting off get hung up, too. What's the difference between a syntax error and a runtime error? Or an exception? What happens when the compiler spits out some gobbletygook, and now I'm digging through a manual written for people who already know how to program. In this sense the Codeacademy poses similar hurdles. It will report an Error, without giving more context. Why is it an error? Did I quote something I shouldn't have? What does unexpected token mean? OH, I left off a quote. i.e. instead of "Error: Unexpected token ILLEGAL", a better message (perhaps linked from the strict message) would be "The program interpreter couldn't understand what you meant because it was expecting to see some syntax or punctuation that didn't exist. Common reasons are unpaired quotes, braces or parentheses" Because the environment is already somewhat controlled, the helpful messages can have a narrower, clearer scope. Overall Codeacademy is great; I'm recommending it to a lot of people.
- alttag 15y agoI'm a bit grumpy that the site kills my meta key (command, on OS X 10.7) when focus is in the "terminal", so I can't open new tabs or pages in my browser via hot-key. (cmd-n; cmd-t) Can't use the clipboard either.
- jsharpe 15y agoLesson 6, exercise "Otherwise..." is wrong. Here's the code: var number = prompt("Guess what number I'm thinking of between 1 and 10!"); if(number === 7) { print("You got it!"); // Change the following line. } else if () { print("Close! Try guessing a little higher."); } else { print("You were way off! Sorry..."); } prompt returns a string, but then attempts to compare it with === with an int, which clearly doesn't work. This is a really awesome site though, and I'm really excited to see it grow with more and more lessons.
- jsharpe 15y agoIt also seems a bit too eager to accept solutions as correct. For example, you can pass Lesson 6, exercise "Dot your I's and cross your T's" without fixing the = vs == confusion. I put this in to test, and it passed: var response = prompt("Do you like me?"); if (response = "yes") { print("i like you too!"); } It passes because assignments return the value of the variable assigned, but it should fail the exercise, since it's conceptually wrong.
- tnorthcutt 15y agoLesson 6, exercise "Inequality" is wrong for the same reason. It tries to compare the string entered with the integer 5, which again does not work. If you "complete" the exercise as instructed, run the code and enter 5, nothing happens.
- jsharpe 15y agoI suggest, to make this easier for beginners, that instead of having a single hint for each exercise, instead provide a series of hints, culminating in just giving the complete solution. That way people aren't stuck forever on one exercise.
- Troll_Whisperer 15y agoThis is awesome. I really, really like interactive tutorials like this. I do have some programming experience, but being pretty weak in JS I found it educational. Thanks.
- bwanaaaaaa 15y agoI disagree with this approach. Making things so dumbed down only accentuates the depth of the learning curve. By the time I can write code to do something worthwhile, I'll have gray hair. Just show me a python project that can help me play WOW better and show me what to tweak. By the time I get into it, I'll have learned a lot just by reading the comments in the code - and maybe some hyperlinks to web pages that explain what is going on-e.g. pointers, linked lists,etc)
- camelite 15y agoSomewhat newbie programmer here. On lesson 6, "Otherwise", the default code seems to be wrong to me. It takes input from prompt() & assesses it as if it were an int/float, not a string. The lesson progresses with an incorrect solution (answer is "not even close" for 6 and 7"). Works if u look for "6" or "7".
- Gring 15y agoToo much social networking clutter on that homepage. All I see is "Email Facebook like 3K Send Tweet +1 715", then on the right another Facebook logo and another Twitter logo. Imagine a customer that is really happy with what you provide. Do you really believe that this person is unable to recommend it to others without your help? What these logos tell me is this: You believe your site isn't good enough that people will take the 2 minutes to talk about it, but you hope that if you make it easy enough to just click a button, masses of these low-involment-recommendations would somehow make up for it. Which they never do. Great concept otherwise, congrats.
- FuzzyDunlop 15y agoI love tools like this. I was using a mongoDB one the other day which was pretty nice, too. No better way to learn than by example, and you can take a lot more from it than reading a 20-odd page tutorial. This may be a matter of opinion, but I think the order in which new concepts are introduced could be tweaked. You're first introduced to string literals. Then variables are introduced. Then it's back to string literals. Then some variables. Then a tiny bit on numbers which suddenly shifts back to string literals in the same lesson. It seems that introducing the concept of variables is a little premature in those first four lessons considering they're rarely, if at all, manipulated, and aren't applied consistently enough to really understand what they're for.
- schiptsov 15y agoTranscendentally useless. ^_^ Please, visit http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/ http://ocw.mit.edu/courses/electrical-engineering-and-comput... instead.
- bburky 15y agoThis is great. Especially now, Javascript's a great language to learn and possibly is directly useful to many people. A suggestion is to gently scold users who do a variety of "bad javascript" things. You may want to let them know that what they did works, but may cause problems somehow. The first item that comes to mind is accidentally making global variables by leaving out the `var` when creating new variables. Also encourage users to end lines with semicolons (maybe only when using an editor). Currently, if you do these things you can pass the exercises anyway. Arguably you shouldn't be able to pass "Let's Try That Again" in "Variables" if you do it with a global variable.
- bburky 15y agoA typo is the hint in "UpperLowerCase" reads `just type .toUpperCase after it` missing the parenthesis on the function. Additionally if the user actually does this, they don't get an error and instead get something they probably don't expect: > "asdf".toUpperCase ==> function toUpperCase() { [native code] } Maybe sometimes don't always output the evaluated result of what the user typed. Or just output an error also with it.
- rasur 15y ago@zds, it's difficult for users of foreign layout keyboards to access certain symbols, for example '@', which on some european keyboards is achieved using alt + G. It'd save a lot of annoying c'n'p if you could fix this. Cheers R.
- figbuck 15y agomoar lessons!
- halala 15y agoHi I have problems running codecademy. Using windows XP, mozilla 6.0. Anybody with advice? Peace
- halala 15y agoHi I have problems running codecademy. Using windows XP, mozilla 6.0. Anybody with advice? Peace
- wowwcher 15y agolesson 4 part6,"Saving your substrings"---I can't get it! help~~~~~
- brackin 15y agoI'm a total noob and was able to complete this and really enjoyed it I think you just need to start adding courses so people can actually start using it a lot.