09 2 / 2012
Rookies at Work, Part 3: Missing “parts” in the Rails for Zombies course at Code School
As you might know from my previous post, “Rookies at Work, Part 2: Look who I met on the path to computer literacy,” I put Microsoft C# aside because I found Ruby on Rails more appealing as an absolute beginner. Instead, I chose the Rails for Zombies course provided by Code School. It looked like an ideal starting point for a coding rookie… but the first signs of doubt are cropping up.
I reached out to Gregg Pollack, an instructor at Code School, and he encouraged me to share feedback with his team along my learning path, which I’m happy to do in this blog post. If you picked Ruby on Rails as your entry point to coding as I did, read on. You might learn what likeminded rookies struggle with on their path to computer literacy.
While writing, I’m pausing the third section of the first Rails for Zombies course, because I believe three essential parts are missing.
Missing Part 1: Teach by example.
In the Rails for Zombies course, you’re building your first Twitter application. It would be cool if Code School provided a link to an app identical to the one you’re supposed to build. You could then click through it to see which functionalities you’re going to design and implement.
It’s a “Begin with the end in mind” approach that makes it easier for a student to connect the dots. It’s similar to building a house: Your architect might create a miniature model of your home and, in addition, present a master plan with all the functional details, like doors, windows, etc. It’s tremendously helpful to start a project with an example of the desired result. Can you please fix that, dear Code School instructors?
Missing Part 2: The big picture.
If you don’t have the big picture at the beginning, you’re stumbling through the course like a blind mole. It would be’s pretty simple for folks at Code School to fix that and it would be tremendously helpful for us rookies to understand Ruby on Rails in the context of building web applications.
Missing Part #3: Understanding the ecosystem.
As a beginner, you start with a blank slate. Besides learning to code, you also want to familiarize yourself with the Ruby on Rails ecosystem. Some guidance in the form of additional homework assignments would be very helpful.
That’s it for today, except for one question: What’s your opinion on the length of my blog posts? Previous ones were fairly long, and I’m wondering if you prefer reading shorter or longer posts. If you vote shorter, I can split the content into smaller chunks. Of course, I’m also curious to hear what you guys at Code School think about my course suggestions, along with my rookie compatriots. Just shoot me a line at Twitter @RafaelKnuth or leave a comment in the box below. Thanks!
The picture above belongs to Code School. I shamelessly borrowed it without asking permission to publish. Hope the Code School guys are fine with that! (Please let me know otherwise.)Tweet
31 1 / 2012
Rookies at Work, Part 2: Look who I met on the path to computer literacy
At last — an ideal entry point to learn coding from scratch! My first blog post on this topic, “I’m On My Way to Computer Literacy: Care to join me?” was followed by a conversation with a group of smart web developers, among them Wiktor Schmidt, CTO of Netguru. He advised me to learn Ruby on Rails and get started at tryruby.org and railsforzombies.org, which I promptly did. After checking out both sites (which I really enjoyed), I returned to learning C#, a programming language written by Microsoft within their .NET initiative.
I spent a long, frustrating weekend attempting to find an entry point into the world of C#… and finally gave up. Sorry to say, Microsoft is doing a poor job in getting an absolute beginner like me on board. Let me explain: I strongly believe computer literacy will become a basic skill in the future. For our children, learning programming languages will (and should) become as common as learning French, English, Chinese or any other language.
It’s all about democratizing access to technology. I envision a world in 2040 or 2050 in which coding is as popular as driving a car. Everyone will do it! Students who want to organize and share schoolwork, music bands hoping to sell concert tickets online… Everyone will write code.
Microsoft provides tons of C# content at Channel 9 and MSDN (Microsoft Developer Network), and there are books, such as “Microsoft Visual C# Step by Step” and “Beginning Visual C# 2010” (both of which I purchased), but none of these resources is suitable for an absolute beginner (although the authors claim they are). So, let’s take a look at what Microsoft is doing wrong, what the Ruby community is doing right and what Microsoft can learn from the folks at Ruby.
… Hello, Ruby.
Don’t get me wrong. I’m a huge Microsoft fan; I believe it’s the most underestimated and underappreciated tech giant on the planet. But Microsoft makes it incredibly difficult for us rookies to get started with C#. Take car manufacturers: The reason many companies in the automotive industry produce toy cars for children isn’t because toy cars are profitable. They produce toy cars for children to establish a relationship with future customers at the earliest stage possible. Microsoft isn’t providing the right toys for the vast toddler group I represent.
Millions and millions of people use Microsoft products daily, just as I am while writing this blog post. So why does Microsoft make it so difficult for us to learn how to create our first apps? I don’t get it and I suppose no one outside the Microsoft Empire does either. In stark contrast, the Ruby community provides exactly what rookies need. That’s why I turned to Ruby and turned my back on Microsoft C#.
Come on in. The door’s open.
The first neat thing about tryruby.org is you immediately start writing code on the webpage without being asked to register. I went through this short interactive course about eight times just for the sake of getting used to Ruby. With each repetition, I gained a better understanding of the language. Once I felt comfortable, I registered at the Code School for further courses. Although they charge a monthly fee of $25 US-dollars, I gladly paid it, simply because I had the opportunity to try Ruby before buying it and I was convinced it’s the smartest path for an absolute beginner.
When you want to get started with Microsoft C#, on the other hand, you have to register at MSDN, get a Hotmail account (“Why do I need another email account?”) … In essence, you have to scale a mountain before you even begin.
One foot in front of the other.
After a few rounds at tryruby.org, I started the railsforzombies.org course at the Code School. The goal is to build a Twitter application for the growing Zombie Walk community. So what’s a Zombie Walk? A gathering of people like you and I who dress like zombies and walk together… such as Seattle, Washington where more than 4,000 likeminded living dead did just that. It’s where I met my new friends in the picture above. (I hope the Code School doesn’t retain a zombie lawyer who’ll kill and eat me for using the photo!)
As a novice, you feel pumped by the prospect of having something cool to show off once you’ve completed the course. “Hey, friends! Look at my Zombie Walk app for Twitter. I made it myself. No big deal… it was fun and pretty easy.”
Now, let’s look at Microsoft’s path to learning C#: You can buy books, each 600-900 pages with endless tutorials and technical deep dives. Throughout, you ask yourself, “What the heck is this good for?” I searched the web and stumbled upon other beginners, at stackoverflow.com for example, trying to find tangible learning materials with usable, real-life examples:
“Does anyone know a good C# tutorials (example) step by step? It should be not a description of libraries, foundations and the OOP concept, and so forth, but the writing of any application step by step. For example, a mail client, telephone directory, a simple graphical editor, audio player. Thanks!“
No, Microsoft doesn’t provide that type of learning experience.
Learn by doing.
The Rails for Zombies course contains a collection of videos, each averaging 5 minutes. You can also download a presentation with screenshots from the video and, best of all, each video comes with four to five homework tasks to complete online. Every time you press the “submit code” button, you receive a selection of extra opportunities to play around with code. It’s terrific!
OK, so Microsoft gives you the opportunity to write your first old school app at the very beginning. It displays “Hello word!” on the screen — and that’s where the fun begins and ends. That’s 80s style, guys. Zap me back to the future… now.
Seal it with a KISS.
Because Rails for Zombies videos are short, I watch them up to five or six times. I also complete each of the homework assignments several times for the sake of memorizing the conventions and getting used to the Ruby language. As I wrote in my previous post, understanding comes with practice.
Now, let’s look at the video courses targeting absolute beginners provided by Microsoft’s Channel 9. Each course is 20-minutes long, which doesn’t sound like a lot of time. But in contrast, the average 5-minute Rails for Zombies course is exactly the hurdle you’re able to take as an absolute beginner. A 20-minute course — quadruple the amount of content — will kill you. I learn far more from watching a 5-minute Rails for Zombies video five times and completing each homework task, than I do watching a 20-minute Microsoft C# video once. Length matters.
I mentioned the indigestible amount of content Microsoft C# books offer. When Amazon delivered these two bricks, I thought, “How many months or years will it take me to become halfway literate with C#?” Flipping the pages, I recalled an old joke about two medical students poring over the Yellow Pages. “Do you understand this?” “Nope.” “OK, then let’s memorize it.”
I hate the idea of learning things I may never use in life, especially if it takes 900 pages to do so. Instead of “knowing a little about a lot,” it makes more sense to “know a lot about a little” as Donald Ervin Knuth, legendary software pioneer and Professor Emeritus at Stanford, advised in a cool video.
You can only win a rookie’s heart by applying the KISS formula: “Keep It Simple and Stupid” or “Keep It Simple, Stupid.”
If at first you don’t succeed…
Learning code takes a bit of pluck, regardless of the language you choose. Your first coding experience as a rookie will be painfully frustrating (unless you’re Dr. Einstein). I was near tears when I tried to solve my first homework in Rails for Zombies. Every line of code I wrote was wrong, even the simplest ones. I felt the folks who created the course were actual zombies sitting in a dark cellar, laughing at the crude code I typed in the online form: “Har! Har! Har! This guy must have a small brain. Small brains are delicious!”
But after a while, I gained a different view of the course creators: They provide an almost ideal framework to learn Ruby by doing (read: by making mistakes and learning from them). I finally was able to complete my first homework and proceed to the next course, repeat courses to ensure I didn’t forget anything and so on. It’s a pain in the beginning, but the Ruby folks understand you have to get real about coding from the onset.
Everything under one roof.
At the Code School, you’ll find everything necessary to write your first Ruby for Zombies app. With Microsoft, you’ve got Channel 9 and MSDN sites in various language versions. For example, the German MSDN site looks different from the English site and contains different content. It’s also incomplete: Some links are dead, others steer you to outdated content and some code samples are broken.
When downloading the English-language version of Microsoft Visual Studio 2010 (which is necessary to write code in C#) on the German site, I was mistakenly provided a localized, poorly translated version that didn’t match my English-language learning materials. After an unsuccessful try, I had to uninstall the cheesy German version of Microsoft Visual Studio 2010 — which took ages, because it’s split into 40 pieces of program I had to remove one by one. I had to outsmart MSDN by downloading the English version from the English site and… Arrrggggh! This is no seamless, user-friendly experience.
An open plea to Microsoft: Please do better.
I’ve been harsh with Microsoft, but for good reason: I know Microsoft can do better. Look at the big picture: The world is changing. We’re living in the Digital Age where computer literacy — including the ability to write code — is becoming a basic skill that should be taught to billions, instead of a small sector of society… just as the Industrial Age required the masses to be taught to read, write and calculate so as to spark innovation and create wealth. Tear down the walls and democratize coding skills, Microsoft. Or someone else will.
I’ll continue to share my learning experience on the path to computer literacy. Watch for the next post and shoot me a line at Twitter if you’d like to chat: @RafaelKnuth.Tweet