Why Pay to Learn to Code?
Sometimes paying is necessary in order to earn college credits. There’s also a belief – right or wrong – that courses that charge tuition are better than ones offered for free. In part it’s the old “you get what you pay for" adage; but it’s also the presumption that formal education (and the credentials that come with it, of course) trumps the informal – not just because the education is supposedly better but because of the status afforded to and by institutions.
Many of the new learn-to-code-online resources insist that they provide a high quality, university-level education for free. In other words, their free classes are just as good as those you pay for.
But as I’ve noted based on my own experiences  with several of them, the quality of the materials and the instructor is just part of what makes a class “good” (for me at least). And as such, I ask: how do these free learn-to-code sites work to support learners, individually or as a community? How do they help learners succeed? “Success” can mean lots of things, no doubt, but let’s say here it means that those who enroll will achieve their personal learning goals. Of course, it’s fair to ask how much learners are really supported when they pay for courses. But with free online classes there seems to be an expectation that the attrition rate  will be high. Most won’t succeed.
What obligations do learning institutions and companies have to their students to support them? And is “support” something (or another thing) that would make paying for a course worth it?
(Pay to) Learn to Program with Bloc
I have been stewing about a lot of these questions in light of a recent pivot by the learn-to-code startup Bloc . Bloc has gone from a free browser-based guide that taught people web-development and app deployment to an eight-week online developer boot camp – one that costs $3000 and has a fairly rigorous application process.
Bloc’s history – or perhaps more accurately, co-founder Jared Tame’s history – pre-dates its current “learn to code” formulation. His first startup was OfficeHours.TV  where you could bid on a one-on-one session with various entrepreneurs. Since then, Tame’s been thinking about what it means to share expertise and to teach and learn online.
Recently he penned a blog post sharing some of his insights titled “This is how you actually teach people to program .” I’m not sure the headline’s quite right. It’s less about the “how to teach” than it is “how to maintain user engagement” – two concepts that are connected in a learning startup, sure, but that have very different implications.
Here’s what Tame says about engagement:
I suspect any company involved in teaching people how to program is having trouble with this. Basically, we saw a tradeoff when you are trying to capture a user who wants to learn how to program. You can gather up lots of them if you start with something trivial (see Codecademy’s home page ) but you end up with what we’ve heard others describe as tourists who were not committed. We made a conscious decision that we didn’t want casual users. We wanted the type of person who has tried to learn how to program, got stuck, and gave up. This person knows something doesn’t feel quite right when they try to learn how to program, they just feel anxiety and frustration. It’s something hackers take for granted because we grew up with computers, Freenode, Stack Exchange, and our own nerdy friends, professors, and TAs who helped us when we got stuck.
There’s a lot to think about here: how does a for-profit company’s approach to teaching and learning programming compare to, say, a not-for-profit school’s? What does it mean to serve or ignore “tourists” and “casual users” (not to mention, what are the implications of thinking about informal learners this way)? And what’s the role of a restrictive application process, and what’s the role of tuition in weeding these folks out?
In Tame’s words, “A student pays $3,000 to take the class, and we’ve already found that this works as a great filter to find people who are already motivated and excited about learning to program. Having money on the line is a great motivator, just like having a gym membership.”
Motivated Students versus Motivating Students
But is having to pay for a class really motivation to learn? (Or rather, what kind of motivating factor is it?) Certainly lots of folks do connect "having skin in the game" (or not) to students' success (or not).
And I should note too that, for its part, Bloc does do other things to help keep its students on track. Much of that involves the students determining the programming project they want to undertake, and as such the students themselves -- along with instructors and mentors -- determining what they need to learn in order to do so.
Why pay to learn to program? The answer according to Bloc at least involves personalized learning. But it also involves an application process and a tuition bill that already mark you as "motivated." Who are we leaving out when we have these financial and application filters? And when we don't have these filters -- when anyone can learn online for free -- how are we helping support and encourage and motivate students? Or does all of this -- free or paid -- assume that students are necessarily motivated? How do we intervene when they're not?