AJ Dyrbye

Web Developer and Digital Humanist

Page 5 of 5

Meetups and Hackathons

I’m still plodding along in Codecademy; it’s been busy enough that while I’ve been able to set aside a bit of time daily for it, I’m still approaching the midpoint of the JavaScript modules and have yet to delve as deeply as I’d like in the book I picked up.

However, I found a local JavaScript community meeting this week, Exchange.js, and attended one of their meetings yesterday. I’ve got a way to go before I can follow much of what they’re discussing, but the group turned out to be friendly to both newbies and questions. It was soon clear that part of the point of the group is to discuss concepts and implementations that not everyone can expect to be familiar with, so they can find out more about them. I was able to have a number of good conversations once the presentations wrapped, and will be attending again next month.

The meeting drove home just how few and far between women are in programming language-based communities, though – I was one of only three attending, and one of the others was a business owner trying to get a conceptual handle on what her employees are developing. It’s stranger than I expected. I’m curious to see how the web developer community compares, once I’ve seen more corners of it; my initial impression is that women are still outnumbered, but not nearly as badly. Regardless, I’ve yet to feel out of place or unwelcome.

One immediate side-effect of the meeting is that I’ve been persuaded to sign up for an upcoming hackathon, and will be prepping a pitch for it. I’m sticking with a game concept, as I still think it’s a great, scalable, learning exercise. The concept is still rooted in the text adventure, but I’m now wanting to integrate a simplified version of the D&D 4E ruleset, pare down the party to a single-character adventure and perhaps adapt a game module for the gameplay. I’ll lay out the rough design here in a future post.

JavaScript, PHP and Planning my First Solo Project

So JavaScript has been going well. I’ve been going through CodeAcademy’s modules at a satisfying pace.

In particular, it turns out that my background in PHP has been really helpful. The two languages are more similar than they are different:

PHP vs JavaScript

A comparison of basic PHP and JavaScript.

 

And so on. If/else is structured the same way, right down to the curly braces, and I won’t be surprised to find out loops are too.

The choose-your-own-adventure module was a disappointment, though – it was plunked in so early on that it didn’t convey any of what I’d hoped. Instead of the rough outline of a complex set of possible inputs and outcomes, it set up a yes/no scenario and completed. There’s a second one forthcoming that may be a bit more what I have in mind, but I’m not holding my breath at this point.

That said, I’m confident I’ll be ready to try out the more complicated version on my own in another day or so. I’m aiming for an experience similar to Zork, or, if I can get myself to the point of including static graphics, the early King’s Quest games. Here’s what I’m picturing:

An interface in which users are encouraged to type key words and phrases to proceed, based on the context provided.
Multiple outcomes, anticipating two to five possible user inputs, plus a set of fail messages (“I don’t understand ‘popsicle’”) which may include some easter egg type responses for some input.
Testing user responses will require string matching, with the strings run through a change to uppercase or lowercase function to ensure user input can be case insensitive.
Outcomes are loading into a variable when the user has made a valid choice, with one  other designating the encounter. Layered if/else or switch/case statements then pass the user to the appropriate next encounter.
I’d need at least two functions: One to allow users to quit/restart based on a preset keyword, and one to bring up play instructions.

I expect this would give me the complexity I want while being appropriate for my current skill level. As my skill level grows, I can use it as a framework to practice on. I’m aiming to include some HTML5 and CSS3, and an interface permits users to type directly into a field in the page rather than relying on a series of annoying on browser popups.

I’ll make the game in progress available through my University of Alberta homepage.

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.

Newer posts »

© 2014 - 2021 AJ Dyrbye

Up ↑