Learning to code is not all kittens and daisies. It's tough stuff but fortunately the Internet is loaded with a surfeit of resources to get you started. They vary from "Teach Yourself X in 7 Days" type books and dense technical reference behemoths to the occasional good blog post guides. If you're very lucky, the subject matter you are trying to learn is taught by dedicated folks producing screencasts like those found at Railscasts, PeepCode, TekPub, Nodecasts, Vimcasts and so on. But watching only gets you so far. Getting your hands dirty and testing your skills is when you really begin to chmod u+w your brain. If you're still with me after this cheesy intro, I'd like to introduce the latest creation from Envy Labs, Code School, which is launching today.
Intro video to one particular Code School course
Envy Labs perfected their learning by doing methods with a site called Rails for Zombies that taught introductory Ruby on Rails programming with a series of 10-minute screencasts followed by code challenges. The challenges use an in-browser code editor and once you're ready to submit your answer the site interprets your code and displays the response (for Rails courses, output is just like rails console). Rails for Zombies came out late last year and was a hit. The Envy Labs team took what they learned and decided to make this interactive online marketplace.
The winning formula is screencasts + code challenges + gamification. I went through Rails for Zombies a while ago and loved it. I was in the beta for Code School and completed one of their new courses, Rails Best Practices, and am convinced these guys are onto something. The material is presented in hyper-engaging format and the challenges immediately put to use what you've just learned.
While they're starting with Rails courses (Envy Labs is a ruby shop), they will be adding others on a variety of subjects with jQuery and HTML5 & CSS3 courses up next. So what's the business model? Charging for the courses of course. It appears courses will sell in the 75 range, with Rails Best Practices currently being on sale for 45. Completing each course gives you public badges to show off on your Code School profile along with discounts on other courses and from selected Code School partners like Inform IT.
A typical code challenge provides you with sample database data, any applicable routes, request and view info along with relevant files for you to edit in the browser. If you get stuck you can redeem some of your challenge points for a hint. The challenges associated with each level are bite-sized problems that are directly relevant to something just covered in the screencast.
You can download the handy course slides for future reference
Code School would not be worth it if the content and screencasts weren't well researched and thorough.. and they most definitely are. In particular, I like how Rails Best Practices does not just teach how to do certain things but rather showed off the wrong way of doing things. Correction - wrong ways of doing things. Gregg would start with some dirty code, then refactor it to still-dirty code a few times, walking through the viewer's potential but incorrect thought process and then showing off some of the better ways to solve those issues. By showing in detail the number of ways most people do things incorrectly, it helps to identify where your current skills fit in and how to adapt them. I love it.
There is no hesitation in my mind — Code School gets 10 out of 10 Stammys. The content is superb and the format is ideal for how most people learn... by doing! I see no issues with the price point either. I could see myself ending up spending the same amount of money on several screencasts or books and this is all condensed down into a smooth experience. Well done guys!
The completed course displayed on my Code School profile
I wanted to write about Code School the second I completed the Rails Best Practices earlier this month — I was completely blown away — but held off until they launched.
Thoughts? Is this something you would pay for if they had a course relating to what you want to learn?