Learning JavaScript via Interactive Storytelling

To heck with PHP for the moment. I’m taking on JavaScript. I had been waiting for the book I’d ordered, Marjin Haverbeke’s Eloquent JavaScript, to show up in the mail, but now I can’t wait.

Why? It goes like this: I have a Humanities background, so writing and interpretation are like comfortable old sweaters for me. I’d been tossing around ideas for projects I could take on to further my programming and web skills, and hit on the notion of putting together either a choose-your-own-adventure style story or text adventure.

I’m well aware that this is not a new idea – people built novels using HyperCard stacks in the late 1980s and 1990s, while web-based hypertext novels were trendy in the mid to late 1990s. I’m not in it for originality, just to give myself something concrete to center my learning around.

However, I’m not interested in just building another webpage. I want something a bit meatier, that users can interact with on a level beyond clicking one of a few prompts, that can dynamically react without requiring a new page to load. I figured JavaScript would be a good option to implement the idea, and ordered the JavaScript book to teach myself enough that I can figure it out myself.

This morning, I was browsing through CodeAcademy’s stand-alone modules, and stumbled on…a beginner-friendly tutorial for building a JavaScript choose-your-own-adventure.

Go figure.

I’m delighted to be even less original than I thought. The only thing better than hitting on a good idea is finding out that there’s lots of support out there for that idea.

So here goes. I’ll be working on the introductory modules this evening, and I’m aiming to get far enough along to tackle the game module by Monday.

On CodeAcademy as a learning tool

So, today I finally got back to my CodeAcademy account. I’m pleased to be making progress again, as I’d stopped in the middle of one of the later PHP modules, but I completed two steps before it reminded me of why I ended up stalling last time.

I’ve been using the site as a refresher and alternate perspective. I completed their HTML and CSS modules in short order; while it taught me a few things, it ended up mostly being a reaffirmation that I’ve at least got the basics down. The PHP modules have been a slightly different experience. The introductory modules almost entirely tread familiar ground, but I began noticing that I was having a harder time identifying and correcting problems than I was used to.

Once I was a few modules deep, I realized what was going on: I could have the problem solved correctly, but still produce an error because I wasn’t writing a string or variable name or whatnot exactly as the module had been programmed to expect. Human teachers aren’t hung up on these things, as it’s consistency that matters more often than not, so it took me a bit to realize when I was being failed for writing $somevalue rather than $someValue.

This wasn’t a big deal during, say, the Arrays modules. However, once I started getting to material that was new to me, particularly the Object-Oriented Programming section, a few concepts became exercises in frustration. I would get stuck trying to figure out where I’d messed up my code when I’d actually just used a letter case in my variable they hadn’t expected, or substituted my own string for their suggested wording where they were string-matching to ensure I’d echoed the right text. It began to drive me a little nuts, as I was often naming the relevant variables and whatnot consistently. The code would work, but not according to the lesson. Once I’d slogged through a handful of lessons with these types of snags, I took a break, and the break became weeks while I shifted focus first to my impeding thesis defense and then to post-defense finalization.

But, I still want to learn this stuff. Now that I’m no longer funneling most of my energy toward the university, I’m better equipped to persevere. I’m getting enough out of the modules that they’re worthwhile despite the occasional maddening extra layer of troubleshooting to contend with. I aim to go through at least the JavaScript and Python modules before I’m done with the service.

That said, I’m glad that I’m not coming to programming as an entirely new set of concepts. Getting classroom and work experience first has made it easier to work with the site’s quirks and the odd instructions that lack clarity.

Hello, world.

Welcome to my new blog. My name is Amy Dyrbye, and I’m a Digital Humanist.

The Digital Humanities are a bridge discipline. We work within the traditional humanities using, and often building, digital tools and resources. As a recent Masters graduate, I’ve primarily worked on academic projects, doing things like building and maintaining MySQL databases, updating websites, developing sites’ features and user experience, and making sense of my predecessors’ uncommented PHP.

However, I’m done my degree, and it’s time to move on to the next stage. While I may be a so-called Digital Native, it takes work to be truly knowledgeable. I’ve started this blog as a push to keep myself learning, and to document my process.

Here’s to the future.