In short, I am the ideal user of Codecademy and have really enjoyed the experience relative to other resources available.
In short, I am the ideal user of Codecademy and have really enjoyed the experience relative to other resources available.
I have to pry...what is the most useful thing you've been able to do with what you've learned so far? I've taught Ruby to beginners and though it hate the configuration process, at least I can show how to do useful things pretty quickly, like writing a loop to pull down a set of webpages. I want to teach JS to beginners but can't think of useful things to do...there are neat things, of course (such as JQuery animations)...but I'm looking for practical tasks.
Alternatively you can do this entirely with localStorage, problem there is that you need to provide an extra lesson about why localStorage doesn't work "online" (across the network).
I definitely think javascript is at a state where it's actually easier to understand the underlying principles of programming, i.e. why design decisions are made and how each component is integrated with the next component. Contrast this with rails where everything is magic, and I would much rather learn from a bottom-up kind of approach. When the front-end logic is all taken care of, Your next lesson will be to build "the part that parse.com is taking care of". So you throw up a sinatra app maybe, provide 2 REST endpoints etc. Thinking about applications as a composition of integrated services (database, database api, UI, application logic, etc) proves a lot more understandable and also has the benefit that it's a very mature way to look at things actually!
Just writing this get's me excited to start teaching my friends again. The problem is it's very hard and very exhausting (in a good way but I only have so many hours in the day!)
The biggest problem for me keeping the iceberg manageable. I should let them know just how many TONS of stuff they will eventually need to know, but ideally I want to do that in a procedural fashion so that it makes elegant sense.
I can't imagine how frustrating it is for a total beginner to understand the mechanisms, even if they are web desires with some experience with the DOM.
The good thing about teaching a language like Ruby or Python is that you don't have to build a webpage. In fact, most people are very content with not publishing on the web...and so they are reluctant to study JS because they think it's only for web development.
But with Ruby, you could write something that sucks in Craigslist results and reformat it so that you don't have to click through to see the pics...and then store it as a local file that is written to every 5 hours...I did this plenty of time when doing a furniture search...
I know you can hack Google tables/fusion to do some of this, but that's a whole new layer of things to learn...whereas everyone gets basic text files existing on the HD
I think it probably just comes down to preference. I'm positive that a large portion of people that "want to learn to program" really mean "make a web application", but that's not to say that scripting isn't equally rewarding/fun. HN is filled with cool posts about how to make little command-line utilities that do xyz -- yes very nice indeed!
Lastly, FWIW, I sure am glad you say "ruby" as opposed to "rails" because I can't imagine the DOM being harder to learn than everything that rails is taking care of for you under the hood.
But yeah, ruby != rails. That is most definitely something I clear the air about right away.