Discovering the Creative Side of Code

Noah Eakin
5 min readNov 3, 2020

This post is all about the whimsical, imaginative language that undergirds what at first glance appears to be cold, utilitarian code. Before we get to splats and kebabs, however, I should quickly share how I came to be delivered on the doorstep of such unexpected irreverence.

.shift-ing expectations

When I first began the pre-work for Flatiron School’s software engineering bootcamp, I had absolutely no prior coding experience. There were no bad habits to unlearn and no good ones to draw from. All I possessed were a few misplaced expectations about what the work of coding was like — namely, that it required cold logic, pragmatic analysis, and a detached practicality.

Carrying my assumptions lightly with me, I began my journey. My focus initially was simply on absorbing the material — a vast new language, even a new way of thinking. It was several weeks before I could look past the immense question of “Can I do this?” and replace it with the much more important question of “Do I enjoy doing this?”

Creative vs analytical

This question had been quietly lurking in the back of my mind, threatening to spoil the fresh start I had undertaken. It had to do with those assumptions I mentioned earlier. Of the many reasons I decided to pivot to software engineering, unleashing a creative side that I count as one of my strengths was not necessarily one of them. Calculus was a struggle for me, art an old friend. Binary — no thanks. Music — more please.

But then, just as I was awakening to the idea that much of coding is actually solving puzzles, I began to notice some curious terms sprinkled throughout the READMEs. Where I expected austerity and formality I found glimpses of whimsy and irreverence. With visual flair and imagination these labels helped to chip away at the serious veneer I had thought characterized the coding profession. Below I have compiled just a few of my favorites that helped helped me see the creative side of code.

All creatures great and small

Camels walking through the desert
“lookMaWeAreFamous!”

Let’s start with the animal stuff. As if the abundance of cat memes in software engineering slide decks everywhere wasn’t enough of a giveaway, coders as a group seem to have a strong affinity for animals. Take camelCase, a styling convention whose name cheekily mirrors the humped profile of the unusual mammal. Or the equally playful snake_case which perfectly captures the low-profile slithering of it’s reptilian namesake.

Moving on to Embedded Ruby (ERB), the seemingly arbitrary keystrokes that make up an expression-printing tag <%= can be distilled down to a simple ‘squid’ visual. The < is the body, moving right we have our eyes %, and lastly we arrive at the prominent pair of long tentacles = outstretched towards whatever Ruby code we want displayed amidst our HTML. When so much of syntax comes down to rote memorization, it is helpful to have fun, memorable associations to help with the task.

Tasty code

Tasty kebabs laid out on a table
are-you-hungry-yet?

Next, let’s talk food. Sticking with ERB, a non-printing tag <% becomes a double-scoop of your favorite ice-cream complete with cone. Another helpful visual metaphor, and perhaps a reminder to treat ourselves every once in a while?

Moving on to Rails, I encountered kebab-case for the first time. It’s hard to look at a URL-path-now and not imagine wordy morsels waiting to be plucked from a skewer. Yet another visual metaphor that clearly conveys its meaning while injecting a sense of play into the proceedings.

Methods that paint a picture

Man pushing a large boulder
Keep calm and .push on

*pop*

Reading that might conjure the image of a plump grape being plucked from the vine, which is more or less what is happening with the .pop method. Of course, you have to name your method something so it makes sense to convey its purpose through that name, but it should be recognized when you really nail that association. I can almost hear an audible, satisfying *pop* whenever I pluck an element from the end of an array with this method.

Other mainstays like .push .shift and .unshift rely on a similar visual language. To remove an unnecessary layer of nesting within your arrays, use .flatten. To remove a selection of elements with scalpel-like precision, try .slice. All of these use language creatively to translate abstract concepts to a visual style that clicks in the user’s head.

Simple punctuation brought to life

Four examples of splattered ketchup

Lastly, I’ll touch on punctuation. I’ve been using asterisks in writing since I was a kid passing notes in school, but I had never noticed how much it looks like a ripe tomato has been smooshed neatly on the page until I heard it called a *splat*.

Another staple, the exclamation point, turns out to be overly cumbersome to say when you start counting up the syllables. Using ‘bang’ gets straight to the point with comic book flair. Moreover, the ability to change a method like .select from non-destructive to destructive by appending a bang to it makes sense when you consider the obvious associations with the word ‘bang’.

This last one is definitely more niche but one that I appreciate. I still occasionally mix up semi-colons with colons, but that’s less of an issue when you think of : instead as vampire bites. Of course!

The art of coding

Now that I am further along in my coding education, the creativity needed to approach a problem, consider all of its possible solutions, and then get the most out of your tools to implement your chosen solution seems obvious. Coders are creators just like artists or musicians, building out complex, innovative software, sometimes even building the tools they use to build the software. Little morsels like the ones I’ve illustrated above hint at the playful heart of software development. Making the improbable mundane is typically not a point A to point B endeavor, so look for levity and humor in the unexpected twists and turns along the way.

--

--