Work

Rockets’ Red Glare

Action and reaction. Fire and force. In order to soar in one direction, a rocket has to burn furiously against the space it wishes to leave behind.

I’m a lover, not a fighter. I’ve always been a little miffed that my country’s anthem-choosers went with “bursting in air” over “sea to shining sea”. The shining seas are really nice. Bursting is…upsetting.

I remember sitting in classrooms and being told about taxation without representation. About people who were tired of giving so much to a king who cared so little about what they really needed, people who chose to risk what stability they had to fight for something better. And the story always seemed unreal to me, a touch too epic and yet a little too simple, like a fairy tale. Or a koan. Or a parable.

And it was too simple. A 2016 Google search demolishes the distortions and oversimplifications of a 1996 textbook. There was deep loyalism and colonial infighting and there were issues of distance and time and administrative friction and there was religious fervor and exclusion and there were countless tortured slaves and slaughtered indigenous people casting ugly shadows all over the Founders’ stated ideals.

There was also the fact that the colonies were doing alright by themselves in the years leading up to 1776. Why revolt when life isn’t revolting?

But anyway, I’ve been thinking about how rockets work.

So there’s this game called Just Cause 3, and it’s basically GTA meets James Bond meets Batman meets Tropico. You push various buttons in various sequences to make uber-badass Rico Rodriguez run and drive and fly around a sun-soaked archipelago that cowers under a dictator’s iron fist, and you shoot this and blow up that and grapple-tether those two other things into a collapsing heap and rinse and repeat until a town is liberated.

And then you liberate all the towns in a province. And then you liberate all the provinces in a region. If you were wearing a tan shirt instead of a blue shirt, you’d say “conquer” instead of “liberate”. You’re not really a good guy here, so much as the most violent person in the world, whose violence happens to oppose the violence to which most other people in that world have resigned themselves.

The game’s creators understand this grey area they’ve put you in. It’s right there in the name.

For what did you blow up everything in that police station?

A just cause.

And why did you tether a deer to the back of a stolen sports coupe and use it to sideswipe that military motorcycle at 160 km/h while shouting “meat nunchucks, baby!”?

Just ’cause.

The game gives you an unlimited supply of remote mines; you stick a few to a statue of the Evil Bad Tyrant Dictator Guy, grapple up to a rooftop for a better view, trigger the explosion. After enough mayhem, you unlock rocket boosters on the mines, and you can stick them to the back of an empty car, set them off, and watch them propel the car forward (towards the entrance to a heavily-guarded base, perhaps) before detonating after a few seconds.

Fire and force. Action and reaction.

To push forward, you have to put things behind you.

And I’m writing this post so I can hear myself admit to myself that there are things in my life that I am afraid to put behind me, because I’m afraid of moving forward.

I’ve been doing alright by myself, more than alright by any modern standard, but I don’t feel free at all.

In the wide world outside the video game, where my potential for movement and exploration far exceeds the 400 square miles of Rico’s sandbox, I still find myself on the couch, dutifully spending another weeknight living out someone else’s power fantasy. I’ve used a helicopter to hit the ceiling of the game’s skybox, just to see if I could, but there are streets in my own neighborhood that I’ve never set foot on.

I spend 7 hours a week on a train to or from work. 28 hours a month. 330 a year. Between right now and when I’m nearing retirement age, I could potentially spend 10,000 hours getting better at any number of things. All I’d have to do is quit zoning out on Twitter, stop hate-reading bad editorials or idly browsing deal sites, and maybe open a book or a notepad instead.

I get 90 minutes to eat lunch. I keep telling myself I’ll bring my Maschine to work and spend 60 of them figuring out how to make music on it. Instead I hop online again and drink at the bottomless content trough while overeating McDonalds and trying to convince myself that what I’m doing is self care.

I have four waking hours every weekday that aren’t devoted to work or commuting, and my daughter gets one of them, and dinner gets another, so how the hell am I making time to keep up with multiple shows on Netflix and Hulu?

I am losing too much time and energy to things that don’t have my best interests at heart.

I am being taxed without representation. By myself.

And I’ve consented to this taxation. I love these shiny toys that eat up my free time and stall my creative drive. And Twitter is dope. And Mickey D’s is delicious.

I am the tyrant king of an island nation of one, and I’ve spent a year caring so little about what I really need that I’ve almost forgotten what it is.

But I haven’t forgotten completely. I’ve tasted better food before. And I used to have more conversations with real people, and no one ever got cut off at 140. And there was a time not that long ago when I made my own toys, created my own worlds to fly around in, wrote my own stories, told my own story.

I put all of that behind me for a good reason: I needed to move very far, very quickly, in a new direction.

Two years ago, over the course of an exceptionally frantic and joyful summer, I moved to Chicago and learned how to build beautiful and meaningful things on the web. It was a lot to learn, perhaps too much for the time I had given myself to learn it. Tyrants set high bars for success.

But I learned it anyway, by casting aside everything else. No TV, just restorative sleep. No hate-reads, just reflective writing. No vidya, just code and code and code and code. I had left my wife and daughter in another state, and some days I forgot to call them to check in.

I was a rocket, and my trajectory was true, and that meant there had to be a million directions I wasn’t going.

I graduated and stumbled into the most challenging and rewarding and fulfilling job I’ve ever worked, and for a while it felt like I had finally arrived.

I mean, on paper, that’s exactly what I did. I don’t have to grind 60 hours to make ends meet anymore. I can afford date nights and pay the sitter a living wage. My work is recognized and appreciated within a community of like minded people whom I admire and respect. I no longer feel like I have to apologize for or explain away my two college dropouts at family functions; they are now prologue to an adventure instead of a tragedy’s motif.

The changes I’ve gone through felt like arrival for quite a while.

But what is arrival to a rocket?

I press R1 and Rico sticks a mine to the top of an unmanned enemy helicopter. In a couple minutes, I’ll have raised enough hell to raise my Heat Level and they’ll call in air support. Someone’s gonna man this chopper and right as they track me down and start opening fire, I plan to press and hold R1, which should trigger the extreme downward pressure of the pre-splosion rockets and cause the chopper to politely “land” before detonating.

Comically, I hope.

And tragically, I realize that I’ve spent the last year and a half doing the same thing to myself. The bladed bird is my creative life, soaring and explosive and hard to control and dangerous, brought to a standstill by a dramatic push to set my future on more solid ground.

But I hadn’t planned for the explosion after, the glut of timekilling consumer joys that would make me forget how good it felt to record something brand new and share it with the world.

In real life, the detonation is agonizingly slow. You ignite the boosters while playing your songs for 50 bucks a night and feeling like the brokest dude who ever conquered the world (or did you liberate it?); a few months later, you’re planning on writing an Internet radio app to help boost album sales for yourself and your artist friends back home; half a year on and you still haven’t put any new music out but it’s cool because you’ll hit 1000 followers soon and you’re getting really good at teaching and the school’s tri-weekly open mics feel like enough of an outlet for that gasping but ever-quieter voice deep inside; another year gone and Aesop Rock’s “Rings” hits your eardrums for the first time and you realize, holy shit, this song is about you. Or at least, it will be if you don’t change your trajectory, find some different stuff to put behind you.

It’s hard to admit, but I used to rap. And sing, and blog, and strum, and fold paper, and cook, and daydream about big stages in faraway places. I used to go to open mics every week and play billed slots on shows every month. I used to spend train rides refining couplets and reshaping clauses. I used to need to restring my guitar five times in a single summer.

And I was flying high, too high to reliably bring enough money home to my family or spend enough time with them when I got there. So I made my plans and set my mind and set my mines and pulled the trigger and found a more down-to-earth way of living.

But something’s bound to burst pretty soon.

And I’m hoping the pastimes to which I once pledged allegiance are still there.

Because I used to be braver than this. I used to be freer than this.

So I’m declaring my independence – from crafting and polishing my image on social media, from refreshing my feed in search of another like or update or aghast quote tweet to get riled up about, from Netflix binges and memorizing Hulu episode release days, from shopping instead of writing, from critiquing instead of practicing, from blowing up digital regimes instead of making the music that helps me stand up to real ones.

I’m declaring independence from trying to love a little bit of everything as a defense mechanism against forcing myself to fight for the few things I really care about. I’m a lover and a fighter. Some bursts are far more upsetting than others.

The easiest way for Rico to bring down a helicopter isn’t to blow it up or shoot it. All he has to do is grapple tether it to the ground and it will crash all on its own. The pilot AI is too rigidly aggressive to adjust to the tether, and it will pull at the line until it collides with earth and bursts into flames.

But humans aren’t coded like that. We can adapt.

So let’s say you were born yearning to soar, but reality has tied you down to an earth bursting with easy but hollow pleasures.

If you choose to stay where you are, you’ll surely rust from the inside out. But if you choose to fly, you’ll never break that tether, and you won’t be able to get as high up as you’d hoped, and changing direction too quickly or pushing too hard on the attack could disturb your vessel’s delicate balance and put an end to everything.

Why would you risk flight? Why would you even play the game at all?

Maybe you would if you had a good enough reason.

Or maybe the game is its own reward, and you’d give it a shot just ’cause you could.

Happy Fourth. Put something behind you so you can battle for something better. And don’t give up the fight.

 

Advertisements

The db:seeds of Discontent

The pace is starting to pick up.

We learned the basics of Active Record over the weekend, which let us use Ruby syntax to manipulate database information. A big part of the learning curve was practicing how to precisely define the relationships between data tables and translate those relationships into AR associations. We were given a few challenges over the weekend, plus a link to the necessary documentation, and told to get to work. Just like that, we’ve entered Phase 2, where students begin to learn faster than they can be taught, and self-instruction starts moving to the forefront.

Code challenges are getting complex enough that it now takes more time to explain to an instructor why I’m stuck than it takes for them to help me get unstuck. Multiple folders for models (data), views (pages), and controllers (logic) create a new challenge: when something breaks, any one of four or five files could be the cause, and figuring out which one is at fault only gets me a little closer to a fix.

And the clock is always ticking.

It would be an overwhelming situation without the time crunch. But there’s a time crunch. Getting hung up on a challenge and falling behind means playing catchup late into the evening and flailing to stay above water the next day, when they pile on more complexity and take off more training wheels. Today I felt the crunch in a big way, and it wasn’t even really my fault, and it sucked.

The task involved loading a huge list into a database and working with selections from it in Ruby. I had completed the challenge last night, but my pair for the day hadn’t, and I can always use some extra practice, so we got started. After a reasonable hour or so of work, things should have been going smoothly, but for some reason, results weren’t showing up like they were supposed to. Instructors stopped by to give us a few debugging suggestions, and we hammered away at our methods like lunatics, but we couldn’t dig to the core of the problem.  We started throwing up Hail Marys, printing every little thing to the screen in hopes of catching where we were going wrong.

In a moment of desperation, we tested for a ridiculous edge case, and that’s when we finally saw the issue: the database hadn’t seeded correctly. Our logic had been perfect since before lunch, and we had been spinning our wheels and questioning our grasp of the material for no reason. To make matters worse, it was now 4pm and I was exhausted and headachey. My day was basically shot, my energy spent.

And the next challenge was the real test of the day. We worked at it for an hour before the official day ended and I realized I couldn’t maintain focus any longer. Defeated, I slunk home for a nap and a blog break to clear my head.

Now it’s 7pm, I have at least one more challenge to attack on my own, and I’m still hurting from last night’s late recording session. I never like Tuesdays (too much structured lecture, not enough open coding time), but today was the hardest one yet, and it’s not over by a long shot.

So it goes. Not every day is a party. Frustration is definitely part of the package. But I’ll get through my work tonight, and tomorrow I hopefully won’t have to flail so hard. Maybe I’ll even pull ahead a little bit.

Whatever happens, my motivation still runs deep. And we’re actually making simple web applications now, which fires me up even more. Even on a crappy day, the reality is that I’M DOING THIS, I’m becoming a web developer, and the occasional outrage (why did you not seed properly, db?!?!) isn’t enough to knock me off course.

Every setback is a lesson. Every struggle strengthens my resolve. Days like this are the ones I’ll cherish the least, but ultimately they’re the ones that will matter the most. Bring them on.

But please, not again until next week at least. I’m tired.

Kryptonite

As I sat there on the floor, looking up at my partner’s stern and disappointed face, I wondered how he’d managed to read my mind, and why my mind was so full of disgust, and whether I’d have anything new to add when it was my turn to attack myself.

Today was Engineering Empathy day again, and they say the second one is the hardest to get through. I hope so. I don’t know if I can do anything harder than today while I’m here.

The topic was the superego, that little bundle of rules and judgments and narratives, and how it sounds when it attacks you. Split into pairs, my cohort took turns unpacking all our inner self-doubt and self-loathing and self-destructiveness, one on one, face to face. I sat while my partner became his superego and I became him, and it was my job to look him in the eye and listen to all the terrible things he liked to say to himself when things got hard.

Then it was my turn. Stand up, look down, see myself, lash out: “You disgust me…everyone thinks you talk too much…why don’t you try another Netflix binge if being an adult is so hard…you’re going to fail again…”

And so forth. It was a long two minutes, but when it was over, I felt like I’d barely scratched the surface. Turns out I have a lot of ways to tell myself I’m not good enough. I had suspected as much, but anticipating an exercise like this one was way different from being right in the middle of it and realizing how invested I am in cutting myself down at any given moment.

I wasn’t the only one shaken. From the looks on people’s faces, I’m guessing a lot of us left that room in worse shape than when we’d entered it. But by the end of the day, I was grateful for the experience. It kept me from beating myself up when the challenges started to change.

Last week, most of the work we did was algorithmic, with one or two optimal “solved” states and infinite ways to get there. I thrived in that environment. Today, I missed that environment about as much as I miss my family back home.

We’re diving into the deep end now, building things that model real-world objects, sticking to a few key principles. Object-oriented programming has design guidelines, and following or ignoring them can mean the difference between code maintainable by total strangers for decades and code that no other programmer wants to touch. The rules have flipped. Now we’re facing challenges with infinite solutions and a scant few acceptable ways to write them.

As my pair and I struggled with the day’s open-ended challenges, we kept running into brick walls. This class wasn’t specific enough. That method was superfluous. Such and such variable was set with the wrong scope, or named wrong. I’m not sure if we correctly implemented a single data structure.

What really stings is the knowledge that today was likely the “key” day of the week, the one where the most crucial concepts are solidified and tested. All that buildup, and I feel like I flopped on the execution.

Or did I? I keep thinking back to the morning’s exercise, and then forward to the afternoon’s frustration, and I can’t help but notice that my self-talk sounded frighteningly similar in both situations. “You’re not prepared enough for this stuff…you take things too literally; design principles won’t stick to you…you probably don’t belong here…you disgust me…”

The superego session has already proven invaluable. Could I have been more prepared for today? Sure. Was my work good enough for my own standards? Nope. Do either of those things have anything to do with who I am as a person? I strongly doubt it.

I’m still upset with my poor grasp of design principles, but I’m learning that the other thoughts I’m having about today, the ones less about today and more about an ingrained instinct to “should” myself to death, those thoughts aren’t facts and I don’t need to carry them beyond the last word of this post.

I’m learning that some days I’ll ask for help a lot and get it, and the schedule will be full of meetings and lectures and improv and I won’t get much done regardless of how hard I push myself in between. I’m learning that sometimes pairing means getting to struggle with a friend and recognize that you’re not alone in not getting everything right away.

That was the big takeaway from the Superego Session. We all had similar fears, similar ways of yelling at ourselves, similar strategies for getting away from conflict by any means necessary. By suffering together, we lightened each other’s load a little.

After each paired Two Minutes Self-Hate, the listener got two minutes to reflect on how the experience made them feel. A lot of people used the time to try and counteract the arguments they’d just heard: “You made it this far and that counts for something…people don’t look down on you like you think they do…you’re doing a great job so far…I know you can do this…” People were looking at each other with kindness and speaking their truth about the beauty and strength and potential they saw.

Wouldn’t it be awesome, concluded the facilitator, if we could learn to look at ourselves with the same loving kindness we saved for others?

I think so. I also think I have a lot of reading and catchup to do in the next 24 hours if I want to keep my superego happy. And right now, that’s what I’m deciding to do.

I don’t have the time to listen to that voice anymore this week.

How to Fail at Dev Bootcamp (and How to Succeed)

When you do nothing but code at top speed for four days straight, you learn a lot about yourself very quickly. Even though I’m still in my first week, I’ve already been through enough ups and downs to offer some advice to anyone willing to listen. Including my stubborn self. This whole post could probably be summed up as “don’t be stubborn,” but I haven’t written it yet, so I don’t know. Let’s find out together.

How to fail: Panic on your own. Picture a circle inside of a circle inside of a circle. You now understand nested loops. Kidding! The inner circle is your comfort zone, where you feel good and everything is safe and you never grow. The outer circle is your panic zone, where you feel terrified and nothing is safe and you never grow because you keep running back to the comfort circle. In the middle is a whole lot of discomfort, and you’ll be living on the outer edge of that at Dev Bootcamp. The easiest way to slide out of the sweet spot and into panic is to isolate yourself from your many supports here. Stubbornness says “I got myself into this mess, I can get myself out of it…” and then it’s been three hours since you’ve looked away from the screen and you’ve written zero new lines of workable code and you start to wonder about the percentage of boots that get sent home and whether you’re one of them. You don’t want that.
How to succeed: Struggle with a friend. You’ll have counselors, speakers, instructors, mentors, and fellow boots to lean on. Get ready to lean a whole lot. There are signup boards for one-on-one instruction. There are sticky notes you can put on your monitor whenever you have a question. And there are your cohort-mates, who are in the same boat as you and equally invested in paddling forward. There is no shame in pairing up on a difficult challenge, and I’ll say it again because there is no shame in pairing up on a difficult challenge. Thursdays tend to be solo days here, but that’s just a suggestion, and it’s a terrible excuse to cheat yourself out of hours of progress because you were too proud to look around for a buddy to code with. When you have a friend by your side, it’s very hard for both of you to panic at the same time. At least one of you will be pulling the average back toward discomfort, and you want discomfort a whole lot.

How to fail: Explore every rabbit hole. Let’s break down a typical day. You get in at 8 in the morning. You code for an hour. You sit in lecture for an hour. You code for an hour and a half. You eat lunch. You code for an hour. You attend an afternoon lecture or activity. You code for two hours. Now it’s 5:00. You can either try to squeeze in a few more hours or call it a day and start fresh. If you head home at 5, that’s less than six hours of coding, and I’ve faced an average of seven challenges each day here so far. Do the math. If you decide to get cute or fancy or clever or insatiably curious and run off chasing an edge case (“Yeah, but what about if the user has a Chinese keyboard?”) or a strange solution (“I’ll do the whole thing with nothing but bracket operators!”), you will run out of time. I know this because I do this and I keep running out of time. I’m not the only one, but there are a lot of people who manage to get through every core challenge by the official end of the day, and they do things differently.
How to succeed: hop like a bunny. The people who finish by 5 block out their days in small chunks and set deliberate intentions for each slice of time. If they only have an hour to get a challenge done, that’s a great motivator to ask for help the instant they hit a snag in their process. These code bunnies are always hopping, from challenge to challenge, from Sublime to Google, from their desk to the kitchen for coffee, from their own work to a struggling friend for a quick head-clearing help break. The point is not necessarily to understand everything 100% before moving on; sometimes you just have to grit your teeth, accept that the last 25% will take 3 hours that you don’t have, get the challenge done the best way you know how and come back to ask about it later on.

How to fail: Blaze your own trail. There is a lot of honor in finding a brand new way to do everything there is to do at Dev Bootcamp. There is also a lot of regret and heartache and heartburn and loneliness. But forget about that gloomy stuff. You paid a lot of money for this particular wheel, and no one can tell you not to reinvent it. Who cares if people think you’re stubborn? They don’t know what’s best for you. You do. You’re going to do things your own way even if it kills you. Well, here’s a spoiler alert. It will kill you.
How to succeed: Read the map. Dev Bootcamp works because it keeps getting better. The mentors keep hearing and answering new questions, the curriculum keeps getting tweaked for clarity and concision, the boots’ cumulative knowledge keeps growing as cohorts keep passing the sum of the previous knowledge on to the next cohort, and now you understand recursion. Kidding! But seriously, they know what they’re doing around here. And unless you’re running the Coca-Cola of coding bootcamps in your country of origin, they know it better than you. Trust the process, do what they say in the order they say to do it, and listen really close when some senior boot suggests that you ask for help if you’re stuck for more than 10 minutes.

How to fail: Be a machine. This is it. Your big chance. All these weeks to do exactly the thing you love to do and nothing else. No one to distract you from your passion. Naturally, you’ll want to code all day and all night. You can handle it. You’re wired for this stuff. There’s plenty of coffee in the kitchen. Neo could study for 12 hours straight, and you’re the hero of your own movie, so you can probably rock 13 no sweat. Which is fine until diminishing returns start to kick in. Your head hurts from thinking hard all day, but stubbornness tells you to keep going instead of taking a nap. Now you’re making stupid syntax mistakes and drifting off every few minutes. Your code starts to suck. But machines power through. Machines soldier on. So you keep on going, even though there’s a way to do the same work in way less time by simply stepping back and rethinking your approach, and now you understand the difference between linear and binary searches. Kidding! But you don’t understand kidding, because you are the warrior robot, and warrior robots have no use for humor.
How to succeed: Maintain your machine. Not your computer. Your body. Even warrior robots need oil. You’ll want to compromise sleep. Don’t. You’ll want to skip meals. Don’t. Your brain needs sleep and food, and your code needs your brain, and your success needs your code, and now you understand how the Ruby require method. Kidding? I’m not sure. See, I’ve been fading fast all day and it’s because I’ve been skipping meals and naps. As much as you may wish you could just be a disembodied mind that only has to engage with code and ideas, you have a body too. Respect it enough to take decent care of it while you’re here.

How to fail: Beat yourself up. Ok, so today kind of sucked and you’re stressing about it. Maybe now is a good time to dissect each moment of your workflow and examine all the ways it’s bad. That will fix things. At least it should, but for some reason you can’t move past the recognition of your negatives and into the implementation of your solutions. You were on the verge of panicking earlier because you made some mistakes, so now it’s time to retreat to the comfort of self-pity. Make no mistake, wallowing in despair is definitely more comfortable than pushing past it into action. But how can you act when all you can think about is how incompetent you are?
How to succeed: Lift others up. The best way to stop thinking bad thoughts about yourself is to think good thoughts about someone else. When you’re floundering in the deep waters of a tricky problem, the counterintuitive solution is usually a good one: stop working on it for a while and go help someone else with their problem instead. If you can offer good help, it will make you feel all warm and fuzzy inside. Plus, you’ll build up a sense of mastery that will renew your confidence when you return to the challenge you were working on before. Sometimes the best way to lean on someone else is to let them lean on you. Put yourself in the position to remind yourself that you’re not alone in this, that everyone else is terrified just like you, that most people feel like impostors at some point in the curriculum.

For me, that point happened this afternoon, and I realized I needed to break after the Thursday evening DBCx talk (XSS vulnerabilities, fascinating and relevant stuff from Phil Corliss) for Vietnamese takeout and some serious decompression time at home. Technically, I’ll start tomorrow behind half a day of challenges; last night, my instinct would have been to lose sleep, neglect meals, and power through them alone in my room, all the while taking detours down esoteric paths that had nothing to do with the craft at hand. Today, I followed that instinct and it made me doubt my potential for the first time since I started Phase 1. It’s an awful feeling. I don’t recommend it.

Don’t be stubborn. Take this advice and succeed when you get here. If all goes well, maybe one day I’ll be standing over your shoulder, keeping you honest and focused and not letting you get away with not asking questions.

On that day, feel free to lean on me.

Poem: Unready

The worrying is back and bold and vicious, all talons and heavy wet fur and dark scales that reflect back the way I looked when I first said yes to this.

It’s happening again and I am part of it because I built it, dreamed it up from need or something like it, and it is just like the last time and the time before that.

Before I got here I wrapped the cord around my neck and turned my back on birth. They say they had to drag me stubborn into the work of breathing, had to twist and pull and wrench my head towards the world in front of me. I was not ready to live.

At five my brain was full of letters, wet and heavy with information, and still they held me back. I was not ready to socialize with second graders. I began to repeat myself, throwing out answers and jokes and punches, all of them perfect in their placement and terrible in their timing. I stared down the principal and dared him to punish me harder. I was unbreakable.

Eleven and counting and I cannot advance, the choir director says it’s immaturity but I’m positive it’s because he’s a butt head, so I must sit and watch the best singers travel to the best places and work through the best vocal warmups, and wonder whether I would ever be ready for anything I really wanted when the time came to take it.

I was not ready for college. I was not ready for the workplace. I was not ready for children. So when this begins to happen again and I can feel it breathing hot and loud and impatient like subway wind, I brace for impact and plan my retreat.

But time is an arrow, and none of my steps are backwards, and when I walked past seeing my path I claimed my life and I found my friends and I sang my song, all in time, and all of time will fade and leave me standing

At the edge of the next thing to happen, I turn back to find the reasons not to turn back around. And Love pulls and twists and wrenches my head back again, toward the world in front of me, and I hold my breath and take one more step.

Artists Create, Professionals Iterate.

I don't always build things, but when I do, I'm completely insufferable.

I used to be this guy.

In high school, I was soooooo creative.

I wrote my first song at age 13. It was a forlorn prayer with a single four-chord progression, and everyone at church camp loved it. When my parents split up a few years later, I retreated into songwriting and came up with more material, each tune slightly less insipid than the last.

I was getting sooooo good. I was soooooo special.

I wanted to be the dream chaser, the starving artist, the tortured genius, the auteur. At 17 I thought I was all these things. Actually I was just a snob with a small catalog.

It was the same scene at every family gathering, every coffeeshop gig, every street corner serenade:

“Hey, you sound great! Do you know (popular song every kid with a guitar is supposed to know)?”

“Sorry, I only play originals.”

I was sooooo exacting. Sooooo creative. Sooooo not fun at parties. It doesn’t matter how good your songs are if it’s your job to get the people going and nobody in the room knows your material. Fans flock to the familiar. At the very least, I could have found some kind of balance between originals and covers. Nope. Every single show was the Look At All The Stuff I Came Up With All By Myself Variety Hour.

And don’t get me wrong, my navel looks frickin’ fantastic. But gazing at it never did much more than get me agonizing over perceived imperfections in my work. It’s really hard to enjoy something you have to keep perfecting, all the time.

I told myself I had more leeway for mistakes with my own material than I’d have with someone else’s. In reality, I ended up a slave to my own process, stuck with my own reasons for why my own work didn’t meet my own standards.

I was sooooo lonely.

There is some nobility in going it alone. I’ve watched enough Euchre games to know that. But no one can go it alone all the time without going a little crazy. And no one wants to play with someone who always wants to go it alone.

It’s taken over a decade and a lot of gigs to realize that I could have been a full-time professional musician for years now if I’d committed to learning one good cover a month since I was 17. Bar bands make decent money at the nicer places in my town, and I’m a versatile enough performer to keep things fresh from show to show. But here I am, with a headful of original material that no one can automatically relate to.

I play several more non-original songs now. I can do a pretty good House of the Rising Sun. My version of Gnarls Barkley’s Crazy usually brings the house down. And I found a way to reinvent My Girl in 3/4 time, which always goes over well. I’ve always had it in me to iterate other artists’ work, but I spent my young adulthood favoring the rush of pure creation over the drudgery of artful imitation.

As I continue to mature past my old stubbornness, I’ve started seeing parallels in other professions. Today I got my first letter ever from someone interested in my Dev Bootcamp journey. He wondered if I might be open to applying for a front-end position at his firm after I graduated in the fall. I asked what I’d need to know in order to be a good applicant.

Amazingly, he does’t want a developer to craft symphonies from stardust. He doesn’t want someone who could forge new paths into the creative wilderness by virtue of their indefatigable awesomeness. No, he just needs someone who can turn a designer’s Adobe documents into clean pages that users can interact with.

He’s not asking for originals. He’s asking for really efficient covers.

In baseball, 99% of hitters swing with virtually the exact same form, because it’s what works well. In retail, almost no one’s trying to reinvent the “buy 100, get 10 extra” loyalty wheel. If your buffalo wings don’t taste like buffalo wings, you’re sending them back.

As my dad used to say, “Don’t get cute, execute.”

Which isn’t actually something he’d say, but it rhymes and it fits the premise of this post.

Society needs artists, trailblazers, innovators, disruptors. But society needs a lot more of the kind of people who improve on the work that pure artists do. People create for love, but the money’s in iteration. And there’s nothing wrong with that.

Steve Jobs is probably the most famous iterator of my time. Like Edison before him, he found ways to take the creativity of others and flip it into something reliable and mass marketable. We don’t praise him for inventing the MP3 player or tablet, we praise him for making those things sleek and awesome.

This blog platform is another great example. People use WordPress in droves because it lets people choose iteration over creation. If you have something to say, you can take someone’s template and say it. You don’t need to reinvent the idea of a blog in order to be successful. In fact, blogs that look too unique can be harder to engage with, because people have come to expect certain visual conventions and breaking those conventions is disruptive in a bad way. If you want clicks, it’s best to play ball.

Of course, you might not be in it for the clicks, or the applause, or the cash. Maybe there’s something howling inside you to break free and express itself, convention be damned. You should absolutely try to let that something out. Humanity might need it.

But statistics show that it’s likely we won’t, and you’re just indulging yourself. Accept those slim odds if you want to be an artist. If you want to be a professional, don’t even worry about what the odds are. Just find someone who’s already won the bet and use their success as a jumping-off point for your iteration.

 Of course, there are plenty of professional artists out there, people who break the mold and use effective patterns to scale their success. These types of people don’t stop at pattern matching and blind iteration; they use best practices in tandem with wild ideation to do new things well, and we love them for it. I’m thinking about Pixar and Kendrick Lamar and Marie Catrib’s here, outfits that reinvent their industries without reinventing the wheel. 

It’s good to be able to create and iterate. But I guarantee you that the latter is more difficult. Creation can happen in a vaccuum, but iteration requires environmental awareness. Creation is the lone voice speaking her own truth. Iteration is making $75 per hour as a translator.

Or, if I may use a slightly more crass analogy…

Anyone can learn to please themselves, but pleasing a partner requires attention, empathy, and a listening ear. Pleasing multiple partners in a lifetime requires all that plus the patience to start fresh with a new person each time.

That’s iteration in a nutshell: the willingness to revisit things over and over, to master them through repetition, to gain deeper knowledge of the whole by experiencing each part multiple times. 

If you can build those skills, it’s really easy to make a case for yourself in an interview. If you can’t, expect a lot of this:

“Hey, your portfolio is great! We’d like you to use our style guide to build an internal app for our staff based on this form we made two years ago.”

“Sorry, I only code originals.

(sooooooo unemployed.)

By all means, be really proud of how good you are at masturbating. Just don’t expect to satisfy anyone else with your skills.