« Inspired by Kanye | Main | Oh here we go »
Teaching is actually kind of hard
Have you ever seen something that you wanted to be really good, but realized, no, it wasn't? Like, you were thinking this could be awesome, but then when you get into it, you realize it's just kind of...bad. Yes John, we know, Star Wars Episodes 1-3, let it GO.
HAH! Stupid voices inside my head, that wasn't what I was talking about.
No, but you were thinking it.
Shut up, go back to building the harp trap.
W00t! I'm outta here!
Okay, now that's done. So here's the thing: there are a lot of people a lot who have an interest in learning how to program, and would like to teach themselves. The problem is, pretty much every self-paced course makes the same mistake: it leads you through a bunch of rote lessons, that you fundamentally don't care about, and you lose interest because you can't stay interested enough to remember what you did ten minutes ago.
Those are the good ones. The bad ones leave out info that a n00b would care about, are inconsistent in their presentation, etc. Which brings me to the subject of this post...CodeYear. When I first heard about this, I did enough research to realize that it was a cool idea, and was in a language I've wanted to get better at for years: Javascript. I don't do real well with dot languages, but JS actually has some value in my personal and professional life, so I've some motivation. I'm also not new to programming, I've done it in a few different environments over the years, including some visual 4GLs, and of course, my latest fun toy, AppleScriptObjC.
So I'm new to JS, but not programming in general. Hell, almost finished that CompSci degree once.
But I get into CodeYear, and well...damnit. The first day, the day when you want to hook people...and it's just rote monkeywork, boring exercises, and inconsistent presentation. For example, semicolons. Now, some languages require them. Some don't. In JS, they're optional. However, if you're going to use semicolons, then explain why they matter, why you're using them in the lesson, and enforce their use. Even if it's just for "if you ever want to learn a different language, this is a good habit to get into". But be consistent. Don't say "you should use a semicolon after each statement", then, when I leave one off accidentally, not even mention it.
Really, here are my thoughts on it as I'm going through day one:
it's monkeywork. For example, i messed up because I forgot a semicolon. Instead of taking that as a chance to teach me why that's a bug, it just tells me I screwed up and moves on. In another example, I deliberately left off the semicolon, and now I don't get an error. So do I need that or not? If I'm new, I don't know.Why isn't there a semicolon in the substring() lesson