Joshua Paling

So. My microcourses idea sucked.

The short version of the above link is this: Newbies could do with more structure at events like Dev Hub and Rails Camp. We could make a bunch of short (1-2hr) 'microcourses'. Each would cover a specific topic, and could be be picked up and taught, impromptu, by an experienced rails dev, to a newbie.

I (along with others) tried to implement this idea, but it just didn't really work.

We did start to make some courses. We even taught them at Dev Hub, but the whole thing just didn't go.

The first time I taught them, I gave a 5 min into talk, slides and all, to the whole of Dev Hub. Only 5 or so people took a MicroCourse. Those who did, liked it. The next 2 Dev Hub's, with just a short announcement about microcourses, no one turned up for one.

What went wrong?

Did the courses themselves suck? I don't think so. Three of the courses were developed for, and taught at, Rails Girls Next. They were well received. The crux of the problem was simply a lack of interest. People didn't want to come to Dev Hub and take a short course. They wanted to hang out, eat pizza, drink beer, and hack on their own personal project.

I still believe that a lot of the peeps at Dev Hub would benefit greatly from a) some more structured learning, and b) a step back to programming basics and foundational concepts. But Dev Hub just isn't the right set up for it.

Now that I've been involved in trying to help newbies learn to code for another 6 months, I've realised the microcourses idea had a few other fundamental flaws.

Learning to code isn't a micro task

It's easy to forget just how much knowledge you've gained since learning to program. It's easy to think you could sit down with a beginner, start explaining variables, classes, objects, methods, and have them basically follow along and grok it.

Wrong. By the end of my CS101 course, many people still couldn't code. Pretty much at all. It's abstract, and it takes a long time for most. If a semester long CS101 course couldn't teach people, then the idea that someone could learn programming by taking sporadic short courses in an informal context such as Dev Hub is fantasy.

I'm still all for alternative (non-university) paths to learning to code. Things like General Assembly, TreeHouse, CodeSchool, etc. But anything that works will involve a LOT of time, self discipline and persistence. The microcourses idea just won't cut it.

Social Coding is Cool

The idea with microcourses was that each student / mentor pair would be doing a course of the student's choosing. They'd be doing that task 'alone, together', so to speak. But there's a certain extra level of excitement when other groups are working on the same problem. There's excitement in having a retro with other groups, comparing strategies, and showing off what you achieved. Microcourses didn't have that.

What was the aim of microcourses again?

To teach people to code, and to allow informal mentor relationships to form.

So what will work?

Lucy had an awesome idea. Free study group, pay $50 but get refunded if you attend all sessions. Regular, structured, as a group. It apparently worked well. In fact Greg said it was "Like a party, only more fun". I'll bet it was!

Hack Night is also really cool. Everyone working on the same problem. Senior / junior pairs. Great stuff.

Pretty much all the existing Ruby community events are great in one way or another.

What will work at Dev Hub?

Nothing. I mean, Dev Hub works and is valuable in its own way, just as it is. But I really think given its current nature, attempts to make it more formal won't work. There's talk of arranging presentations for Dev Hub. Unless they're very high quality, I imagine most people won't be interested. Dev Hub is what it is. It's awesome, but not formal.

Dev Hub people should keep going to Dev Hub, but supplement it with other more structured learning.

What will work at Rails Camp?

I initially wanted to run microcourses at Rails Camp. I now know they won't be a good fit. However, I do think something more organised for newbies would be great. The initial idea for microcourses came out of a discussion at Rails Camp, about how to make it better for newbies.

Here's some ideas that might work:

1) A 'hack night' type of session - 2hrs working on Ruby Warrior for example. (Starts easy, gets hard, great for all abilities, fun problem, the enticement of finishing levels, and everyone is working on the same task).

2) An 'official' 1hr senior / junior pairing session where you can work on a personal project (or on a microcourse, if you don't have your own project). While you can ask to pair with someone any time at Rails Camp, it's intimidating if you don't know anyone yet. This would be held early on in the weekend, to help break the ice.

3) I've also thought of trying to prepare a kind of 'basic vital concepts in programming' presentation that goes over ideas like variable scope, classes vs objects, and fundamentals I see a lot of people not grasping as well as they should, as soon as they should.

4) Related to 3), there could be a presentation on 'vital ruby concepts' that others coming from different OO languages need to know about - eg. Classes are objects, blocks, class macros, etc.

You could do all the above things, spread out over the weekend, as a kind of "Orientation Track":

10am - 12pm Sat: Ruby Warrior Hack Session 3pm - 4pm Sat: Senior / Junior pair Session 3) and 4) would just slot in amongst the other Rails Camp presentations. 5 - 5:30pm Sun: Retro - what worked, what didn't

That's only 4 or 5 hours total.

The whole thing would be informal, optional, and wouldn't take up too much time, so it doesn't feel like a segregated, separate version of the camp. And it would focus on bringing people together, forming friendships, and having fun. That's what Rails Camp is really all about, and what'll entice people to keep grinding forward in the long journey of learning to code.

Have feedback? Other ideas? Think my idea will / won't work? Tell me in the comments!