How to suck at programming #441


You’re outside on a sunny day tethered to your mobile phone hotspot and limited data plan writing code using an editor that isn’t your main tool. Maybe you’re an Eclipse die-hard or maybe you live on Xcode for your day job. Whatever the case, you find yourself in something like a SublimeText, Notepad++, or TextMate for something you are prototyping. You’re mostly familiar with the hotkeys but again this is not your day job editor so you’re prone to get one or two of the sequences from your main tool mixed in on occasion. You go to quickly comment out a section of code when muscle memory kicks in and the next keystrokes invoke Ruby integration. Hi, I’m Cliff. You’re here because your Macbook is currently downloading an unknown Ruby package (or packages) over a limited mobile carrier connection and you won’t know how much is left in your monthly allotment until you finish reading this article. I’m here to share a similar experience that just happened moments prior to my writing.

Welcome to my How to suck at programming series. There’s no particular reason why I’d been listing these tips in random order, however feel free to peruse what I’d posted in the past if you really enjoy the merits of being an awful programmer. I write todays post with hesitation because I’ve been going through a low point in my career and I have been doubting my abilities. Still, this is a must-post topic and I enjoy making others feel enlightened on how to be dumber than usual.

So what happens when the stars align in a perfect arrangement capable of ruining your day/week/month? What do you do when you’ve accidentally invoked an unknown feature in a tool that you only use on occasion? What do you do when that tool spawns an unknown external process designed to gulp down potential gigabytes of data over a limited mobile data connection? Why do we even have limits on our mobile data connections??? (Curse you AT&T!!! I condemn you and your penalties per excess gigabyte!!!) Don’t they have something way better overseas?

My story actually begins in a hospital building somewhere in Mt. Holly N.J. where I shed my first tears but I’ll spare you the extra drama including the part where I finally realized I was too old to still try to bring toys to school (6th grade) and give you the abbreviated version… that is, if you’re still interested.

So there I was stuck in an unanticipated initialization sequence spawned from TextMate. “Initializing Ruby 1.8” is what the pop up window said. It was scary. Mostly because I wasn’t sure what “initializing Ruby 1.8” meant, but partly because there wasn’t a functional close/cancel button on the popup window. I know most Ruby programs usually use Ruby Gems. I know Ruby gems can be a separate download/install and I know that Ruby Gems can potentially download other Gems. I didn’t know if any of this would be part of the initialization.

What was this mean initialization dialog doing to my Mac? What was it doing to my data cap??? What was I doing downloading Ruby??? In an extreme exercise of yak-shaving, I set out to teach my daughter some more Javascript stuff. The lesson ended with my trying to recode Khan academy’s interactive design page in roughly 20 lines of vanilla Javascript because, you know, I thought it’d be cool to show her how things worked on the page where she learned to draw a turkey dinner with the line, ellipse, and image functions.

My reasoning went something like, “I’ll teach her this cool trick and ignore the fact that there is multiple layers of indirection involved. Afterwards she’ll realize how cool the code and her Dad is then we’ll finish the project this week and sell the product to eBay for $500m!” This is because everyone who is anyone knows to sell a Javascript side-project to companies like eBay, it’s just common sense. At any rate, I’m failing at recreating Khan academy, failing as a super programmer, and failing as a father when I realize my daughter has lost all interest in the twist of logic I tried to confidently demonstrate. I also realize she has to leave for a sleepover. Undeterred in my efforts as a script ninja I took my operation to the Cupertino Library where I could concentrate sans distractions.

I finally succeed at hacking together something horrible looking enough to pass as a Frankenstein Khorn-Alch-tradgedy. Proud of my tardy solution, I test it a few times while mumbling how simple the source code behind the more professional Javascript editor should actually be. Who needs You-Tube interactive voice coaching anywayz? This is when I decide to simplify my logic and comment out a few lines of code triggering the unknown consequences of a Ruby initialization.
So if you want to suck at programming, teach your child Javascript. Then get sidetracked on a complicated unrelated demonstration of irrelevance while persisting until you can actually smell your child’s lack of confidence and trust in the air. Ignore all signs of boredom from the little one and continue until they roll credits between you and your keyboard.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s