Life Imitates Code. Essays by Ka Wai CheungEssays by Ka Wai Cheung from around the web.

Coding ● February 2014

A fast code culture

In vogue these days are short-term, action-packed code schools whose general mission is to teach willing neophytes how to program. These are intense training grounds for future web developers and they are sprouting up all around the world.

I had a chance to visit one on a September evening in a modest timber loft building in Chicago. There, I had the opportunity to speak to a group of students at Dev Bootcamp—an intensive school that teaches you how to build web applications using the wildly popular development framework, Ruby on Rails. There was a noticeable buzz to the 7th-floor room. Students spend most of their waking moments coding, collaborating, and otherwise being taught the full gamut of skills it takes to build a web application in the nine short weeks they’re enrolled. And, if you don’t feel the buzz, you certainly see it on their faces. These people have clearly been in the heat of the battle since the early morning.

Admission into Dev Bootcamp is not cheap (the full curriculum will run you about $12,000 USD), nor easy (they’re acceptance rates rival that of most Ivy League schools). Once enrolled, students are expected to spend about a thousand hours in class for those nine weeks they’ll be learning to code from the ground up.

The natural rise of the coding school

As innovative as these new coding schools appear, they’ve also arisen during a time in Web history that makes their uprising seem inevitable. First, there’s the cost of a traditional college education. When I enrolled at Northwestern University in 1997, tuition cost you just over $19,000 a year. It took only eleven years for that cost to double. Today, expect to pay northward of $55,000 a year if you’d like the education and a place to eat and sleep on campus.

In addition, the sure-job guarantee that once came with a college degree is no longer. With more tech companies hiring technical talent on the merit of real-world experience over the quality of their academic institution, there is a very compelling argument to make that the value of a four-year college degree for budding programmers is no longer worth the cost.

Second, code schools like Dev Bootcamp and Chicago-based Starter League teach in the non-traditional way that’s been popularized by organizations like the Khan Academy. Flip the classroom on its head. Instead of devoting class time to singular instruction by a teacher, mentors spend a lot of it guiding students to do the real work at-hand. Dev Bootcampers spend most of their class time pairing with other team members to work on solving problems. They learn by writing code and seeing how their programs behave instantly, rather than reading from a textbook and digesting syntax that doesn’t yet make sense to them. They are pounding the nails into wood right away, not reading about pounding nails into wood wondering how the hammer feels.

Finally, web development has advanced enough to become accessible to more than the traditional computer science geek. A framework like Ruby on Rails helps cover up some of the tedious, lower-level work of programming in favor of making assumptions. There’s a lot you can build with today’s languages and frameworks without needing to understand how the internal plumbing works underneath. At least, not right away.

These programs are full of willing and incredibly bright students—many of whom are looking to change the course of their careers, or to start a new web-based business on their own. Though matriculation from Dev Bootcamp costs only a fraction of what a CS degree at a four-year university might cost, it still isn’t cheap. You don’t drop twelve grand just to see if coding is something you might find interesting. The end goal for schools like Dev Bootcamp? Ship programmers. Ship them into the real world, working as junior devs on software for established companies or starting businesses on their own.

Having seen the work of Starter League students, both from talking to them (We Are Mammoth held bi-monthly “office hours” for several students at The Starter League) and watching them present their final projects at periodic “Starter Night” events, it’s clear that these courses do pay dividends. In a few months, a student gets more than a sampling of what it takes to build applications. And, the knowledge they can pour into their own apps in such a small time is quite impressive.

But, it is also clear that you simply aren’t going to be an expert web developer in such a short amount of time. I need to look no further than myself. I’m fifteen years into my programming career and still get stumped with problems in my code daily. I still feel like a fraud from time-to-time.

All the real-world problems that app developers face—the ones that stump even a well-worn coder—simply cannot be simulated in such a short time span of learning. If Malcolm Gladwell’s “10,000-hour” rule holds any weight at all, these students are still years away from truly advancing from novice to expert.

The ugly side of the movement

For me, this makes the “learn to code” movement a very delicate one to digest. On the one hand, seeing the discipline I’ve spent so much of my life trying to master opened up to the masses is a thrilling thing. The convergence of education costs with more accessible ways to program makes this the right time for code to be in. Hip. Chic. Times they are a-changing.

At its best, the movement is also spreading the word that programming is a valuable skill to learn when you’re young. Organizations like and aim their teaching to kids. But, they are also about more than just coding. They are about empowerment. They are about opening otherwise dormant paths for our youth. And at a higher level, they are teaching kids how to think critically. Any seasoned programmer knows that their most valuable asset isn’t what language they know, but how they think through and solve problems. However, like any movement whose principal motivation is accessibility, buyers into the movement better be cognizant of what’s actually motivating the sellers.

Popping up in my Facebook feed one day was an advertisement for something called One Month Rails. Right there on the front-page, in gigantic Lato font, was their claim, “Stop waiting for that perfect technical co-founder” followed by, in admittedly smaller font, the words “And start learning to code today.” Total cost? $99.

Cut to hitchhiker scene from There’s Something About Mary:

Hitchhiker: You heard of this thing, the 8-Minute Abs?

Ted: Yeah, sure, 8-Minute Abs. Yeah, the exercise video.

Hitchhiker: Yeah, this is going to blow that right out of the water. Listen to this: 7… Minute… Abs.

Ted: Right. Yes. OK, all right. I see where you’re going.

Hitchhiker: Think about it. You walk into a video store, you see 8-Minute Abs sittin’ there, there’s 7-Minute Abs right beside it. Which one are you gonna pick, man?

Ted: I would go for the 7.

Hitchhiker: Bingo, man, bingo. 7-Minute Abs. And we guarantee just as good a workout as the 8-minute folk.

Ted: You guarantee it? That’s—how do you do that?

Hitchhiker: If you’re not happy with the first 7 minutes, we’re gonna send you the extra minute free. You see? That’s it. That’s our motto. That’s where we’re comin’ from. That’s from “A” to “B”.

Ted: That’s right. That’s—that’s good. That’s good. Unless, of course, somebody comes up with 6-Minute Abs. Then you’re in trouble, huh?

[Hitchhiker convulses]

There’s simply not enough time, in 30 days or 300 days, to acquire all the battle wounds inflicted from working through real software problems. Problems of age that creep up from code that acquires rust over time. Slippery problems of slowing performance due to the ever-changing ways your users are accessing data. Problems of complexity that unexpectedly surface because the number of possible permutations of your application’s state reaches in the thousands or millions. It may just be my own bit of hubris, a small iceberg getting in the way of a gigantic steamship destined to make waves through this new breed of soon-to-be programmers. But, the intent of One Month Rails is clear. This is as much about learning to program as 8-Minute Abs and a Slim-Fast Shake are to maintaining bodily health.

From one student of One Month Rails, who ended up finishing the course in 15 days: (Take that, 7-minute Abs!)

I don’t think it taught me how to code, at all. It taught me the basics of creating an app with Rails and how to edit/modify things. I feel like I could build any number of apps and I could probably Google for the code snippets required to add just about any functionality. Do I feel that would make me a “Rails developer”? No. I don’t really understand how to write any Ruby code.

Creator Mattan Griffel doesn’t claim to turn a John Doe into Steve Wozniak, Scott Guthrie, or even an ego-inflated version of myself. If anything, Griffel’s company demonstrates that you can immerse yourself in a programming framework like Ruby on Rails and hack together some semblance of a basic web application in a few weeks. You might not fully understand what you’re doing or why (the same student above states “I got a brief glimpse into Ruby syntax, though I don’t necessarily understand it yet.”), but, you are building something.

However, the aura of a company like One Month Rails just feels icky. When I came back to the site more recently, they had even changed their tagline to something a little more obviously exploitative: “Get a $16,000 education for only $99.” This is a clear challenge at the organizations for whom One Month Rails is trying to pillage would-be students from—the Dev Bootcamps and Starter Leagues of the world. Are they exploiting—even preying on—the masses who dream of being good enough to quit their jobs, learn a completely new skillset in four weeks, and build their own great ideas?

You don’t need to go any further than their student project gallery—screenshots of six sites that, upon closer inspection, feel like a part or two was missing in the IKEA web-making kit. A featured site that no longer exists, another site that returns an error upon using its sole feature, an unfinished barely begun Pinterest knockoff. One would think that the project gallery would be a curated list of One Month Rails’ best student projects. And, when you consider these are students who bought into the promise of a $16,000 education for the cost of a nice pair of jeans, this best list feels just about right.

By no means am I trying to discredit its students for the work they’ve produced. The quality is about what I might expect if I were to learn a new discipline from scratch and produce something in four weeks. But, I do have a problem with organizations like Griffel’s who make a hundred bucks a pop on wildly exaggerated claims. In a featured story on their site, a student claims the course liberated him, allowing him to “build anything that [he dreams] of without spending a penny.” He adds:

Most of the other courses were a big freaking waste of time. I was looking for something that showed me how to do basic things quickly (login/logout, validations, etc. etc.), and your course did just that.

It should go without saying that the gap between understanding authentication and validation and building anything you can dream of—regardless of the reachability of your dreams—is rather enormous. In one month, you certainly aren’t getting a $16,000 education, let alone the knowledge to allow you to build anything.

Rails isn’t a beginner’s framework

David Heinemeier Hannson—the creator of Rails—is well aware of the conundrum with Ruby on Rails. The very tenets that it lives by, the heavy lean toward conventions and rapid development, are the ones that somehow get forcibly bent in all the wrong directions by all the wrong people. On Hacker News, DHH writes:

If you optimize a framework for beginners, you’re optimizing for learnability. That’s great for the first few days or even weeks of learning. But once you’re past that, it’s not so great. What you care more about is the usability of the thing once you know it…Letting learnability win is a short-term relief.

Programmer Rob Yurkowski fervently agrees. Why does he think Ruby on Rails is not for beginners? In summary, really understanding RoR means first, an understanding of Ruby as a language, followed by other software patterns like MVC, REST, how routing works, and database abstraction. To Yurkowski, the beginning Rails developer trying to hack an application together, suffers from vocabulary confusion. Newbies end up piecing an application together without a foundational understanding, employing concepts they aren’t yet familiar with. “It’s bullshit programming—constructed from half-consumed tutorials and Gists from pitying benefactors.”

Forging the future of programming

On one hand, the mere existence of companies like One Month Rails means we’ve made a monumental leap in the industry. No longer is coding relegated to the sliver of societal outcasts once stereotyped by the pocket protector and thick-lensed eyewear. It is becoming a mainstream discipline, and it’s even cool.

On the other hand, a company like One Month Rails and its cheaper, quicker competitors surely to-come, will test the ever-thinning boundary between the camp that really wants to learn how to code and the camp that's in it to get their business off the ground as fast as possible—too impatient to find “ that perfect technical co-founder.” The notion that an education in code can be expedited like fast food has me more than a little worried.

Does this mark the beginning of an onslaught of naïvely-written applications that won’t stand the test of the time? Is the overall quality of the web app set for a downward spiral as more and more people try their hand at coding through these ever-shortened curriculums?

As an industry, then, we owe it to the next generation of programmers to make absolutely clear the dividing line between writing code and coding, much like we might between paint-by-number and painting. If you want to really learn to program, an intensive course like Dev Bootcamp might be the right place to start, followed by a few years working in a real organization and learning under people that have endured the battle scars of programming. You can immerse yourself and become a great programmer in just a few short years. You can learn this stuff without passing the debt to your grandkids.

But, companies like One Month Rails are not a replacement for real learning—they are exploiting the same mindset that wants to believe in get-rich-quick and get-slim-fast schemes. In much the same way that the fast-food craze of the 1950s begot the global medical epidemic of the 1980s and beyond, these “30-day” claims are as irresponsible as they are unhealthy.

Originally published Feb 20, 2014 at We Are Mammoth. Go to the next essay in Coding, “There will never be a programmer in the White House”.