How To Game Any System (And Why It Will Kill Your Soul)

He’d figured out the Rules all the way back in grade school. The Rules never changed.

Rule One: Make a perfect first impression, even if it’s not an honest one. Front-load a compelling performance of your best possible self, and polish that façade for at least three weeks. Then, if you start screwing up later on, they might assume it’s not “the real you” and give you some extra slack.

Rule Two: Present yourself as competent, even when you’re not. Never admit you don’t know something, and avoid situations where you might have to. This includes any situation where you feel tempted to ask for help. If the higher-ups never catch you looking overwhelmed or scared, they might assume you’re so good at what you’re doing that it never fazes you.

Rule Three: Wherever any work you do will be assessed, master the assessment process. Study it early and often, so you can exploit it if you ever start failing in your work. Maybe the test writer always uses better grammar on the correct multiple choice option. Maybe the boss tends to give softer performance reviews toward the end of the afternoon. Maybe someone put together a clear enough rubric for you to reverse-engineer a practice solution in advance, so you can run a rehearsed script even as the proctor assumes you’re improvising. Don’t worry about actually achieving things. Just do what it takes to obtain proof that you’ve achieved them, and people will assume you’re just as strong as a real achiever.

He followed the Rules to the letter, each and every day.

He did this for decades.

He became a master of charming the pants off people. He became a master of pattern recognition. He became a master of making and keeping himself comfortable.

He became a master of bullshit.

He never quite mastered the art of shoving into the deepest pit of his subconscious this little nagging feeling that everything about his life was implacably wrong and somehow getting worse, the wrenching jealousy toward his childhood friends who had managed to learn and grow while he was busy protecting his image, the eternal searing terror at the thought of being unmasked…but he’d always figured that mastery would come in time.

Or hey, maybe he could fake his way out of dealing with that work too.

And then, out of nowhere, a Horrible Thing happened: He obtained proof of an achievement that he genuinely wanted to earn, and then he realized he had no clue whether he had actually earned it.

And he had always followed the Impostor’s Rulebook to the letter, in front of everyone he’d ever met, so who was left for him to ask?

Whose feedback could he possibly trust now?

The problem with trying to game a system is that any “system” you’re in is actually just you and some other people, making choices. You need at least a few of those other people if you want to prove to yourself that who you think are is who you really are.

You’re a social animal, wired to build and constantly update a self-concept based on how you see others react to your choices. You rely on honest, kind (not necessarily nice!) feedback to maintain your self-concept.

So when you fail to practice rigorous honesty with the people in the system whose feedback you’ll need in order to figure out where you really stand, what you’re doing is like putting up a mirror where that other person thinks they’re looking at a window, redirecting an uncomfortably bright light that could illuminate your best next step.

You were afraid of sunburn, so it felt safe at the time. But if the mirrors stay up for too long, your self-concept will wither in the shade, along with any confidence you’d been able to fake up to that point.

The Horrible Thing to worry about is not that the Rulebook will fail you. The Horrible Thing is that it might *not*, and you’ll end up more lost than if you’d never picked up the book in the first place.

The easy way out is never a way out. It’s a cul-de-sac, 1000 miles long and winding, and by the time you finally realize you must turn back around, you may not be walking in daylight anymore.

You can learn all these things on your own time, if you really really want to. Or you could listen hard to someone who’s been trudging his way back for over a year now…

Usually, the fastest way to cure Impostor Syndrome is to stop doing the things Impostors do.

Jazz, Refactoring, and the Clean Slate

Here’s an email I wrote to the cohort I’m leading right now. We’re in week 3 of Phase 1, past algorithms and OO design basics and into SQL and ORMs. It’s also the week of the phase assessment. So there’s some stress. On Day 1, we made a covenant as a cohort, and keeping a clean slate every day was part of that covenant. After a lot of test anxiety bubbled to the surface yesterday, I had an urge to share a song that has always helped me “snap out of it” when I got caught in a worry spiral.

And then I thought about how the song came to be, and I realized the process itself was another object lesson for beginning programmers…

Good morning!

Today’s work will build on what we did with SQL yesterday, and add Ruby and the sqlite gem to the mix. Basically, you’ll be writing your own Ruby methods to execute raw SQL queries and build Ruby objects from the data that comes back. You’ll also end up creating, modifying, and deleting data in the database.

The difference between a site and an app is that a site is static, while an app lets a user create, read, update, and delete data interactively. By writing methods like the ones you’ll write today, you’re taking a big step into the mindset of a web developer.

And finding the right mindset is always important. If you want more control over your mindset, being mindful and in the present moment is always a good place to start. As a reminder to keep your slate clean today, I’ll offer an optional ten-minute thought experiment. If you like music stuff, you’ll probably get a kick out of this.

Here’s What Am I Here For, by Duke Ellington (Not the Duke I’m named after, btw; Ask me later.). Try to listen closely to how the instruments pass melodies back and forth to play off the chord progression, almost as if they’re conversing.

After you’ve given that an attentive listen, reflect on the song’s title for a moment. What were you expecting to hear when you first saw it? How closely did the music match that expectation? Did hearing the song help you answer the question posed?

Cool. Now, check out your clean slate meditation for the morning: What Am I Here For, by Lambert, Hendricks, and Ross. Listen to the melodies again. And the words. Oh, the words…

Holy crap, right? Jon Hendricks and his group were among the first to put something called vocalese on the map. They became world-renowned for this and many other songs, wherein they translated entire performances of jazz standards, note for note, into versions with lyrics befitting the song’s original title.

It’s monstrous work, if you ever get the chance to try it. So much attention to detail, meticulous reworking of tiny elements to get the flow just right in each part, without sacrificing content or craft or enjoyability. All to end up with something that is only a little different from what you started with!

Yep…it’s a LOT like refactoring.

It’s also like refactoring in that the LHaR version would have been impossible to create without Ellington’s original. Not “impossible to create as fast or as well,” literally IMPOSSIBLE to create without a first draft, according to the rules of vocalese. How can you match lyrics to melodies when there are no melodies? How can you write to a theme when no title has established one?

Like Good Vocalese, Good Code also relies on a solid-but-incomplete foundation to tower sky high. If you think you’re done in one draft, you’ve missed out on all the magic. Duke Ellington and his band did fantastic work…and yet I only ever play that version as a prelude to the one I just shared with you.

Because the vocalese version is just better. At least it is to this end user. It’s like someone got into my head, peeked at all my hidden needs and worries and insecurities, anticipated the happiest path from confusion to satisfaction, and wrote something that lets me meet the finished product where I’m at and get something out of it that feels deeply personal.

You see it, don’t you?

That’s exactly what users ask web developers to do every single day.

In the mindset of a world-class beginner, there is no such thing as Bad, only Incomplete. It’s true for code. It’s true for developers.

Today, be willing to accept something about your learning that is incomplete, and do whatever it takes to refactor it into something better.

That’s what we’re here for.

That’s what we’re here for.

Why Meditating Will Help You Learn How To Code.

You don’t think you’re in Oz anymore. But if your teachers in Kansas look this much like the ones you had back in Oz, how different can it really be?

You’ve been meditating for a little while now, long enough to know it’s not exactly what you’d thought it was at first.

And that’s an awesome thing. Your disillusionment has given you a tool you can use to immediately improve your coding practice. Even if you haven’t started practicing yet.

Here’s why:

Meditate on a regular basis, and you learn that thoughts can be a mixed bag.

Sometimes they illuminate the path to a deeper understanding than you would have found if they’d never popped up. Occasionally they keep popping up over and over, no matter what you try to do to make them go away. Once in a while, a really ugly and persistent one may test the limits of your sanity and resolve.

And if you’re a total novice at meditation, you probably don’t like encountering them at all. Because every time you do, even if only for an instant, it feels like you screwed something up.

But you fight that feeling, don’t you? You fight it as hard as you can. Because you’ve still got lots to learn, but you’ve been at this thing long enough to recognize that the first thing the world tried to teach you about it was a flat-out lie.

“Sit in a quiet place, all by yourself,” said the world, “and meditate with perfect laser focus until your mind is totally free of thoughts, even as it grows in real time. If you can’t figure out how to do that, you will never be truly enlightened, and you might want to consider quitting your practice altogether, because you might not be the meditating type.”

You know better than that, even now, as a beginner. You understand that working with your mind at this point in your long journey means spending most of your time dealing with thoughts. When something pops up, you pause to acknowledge and address it, and then get back to what you were doing.

And you pity the poor meditator who still thinks a session free of thoughts is even desirable, let alone a sign of mastery. After all, you were once right there with them.

But eventually, your experience taught you that you’d been chasing a false idol.

Because the goal that matters has nothing to do with avoiding the thoughts. Real growth has never been about that. It’s always been about seeing those hiccups in your flow as the gifts that they are.

You already know this. You open these gifts all the time as you sit down with your miraculous machine and try to understand it better. Each break in your groove is a chance to practice getting back on task without missing a beat. Without beating yourself up in the process. Without trying to beat the process.

If you can learn how to do that, you can learn how to do anything. Not just mind stuff.

But that’s a lot of meditation preamble for a guide on how to improve your coding practice. Let’s move on.

Wait. We’re already done.

Click those heels, Dorothy.

Scarecrow from original Wizard of Oz film with arms crossed.

“It’s pleasant down that way, too… Of course, some people do go both ways.”

Why Coding Will Help You Learn How To Meditate.

Technically, Oz is not Kansas anymore. But if your teachers in Oz look this much like the ones you had back in Kansas, how different can it really be?

You’ve been coding for a little while now, long enough to know it’s not exactly how you’d thought it was at first.

And that’s an awesome thing. Your disillusionment has given you a tool you can use to immediately improve your meditation practice. Even if you haven’t started practicing yet.

Here’s why:

Code on a regular basis, and you learn that errors can be a mixed bag.

Sometimes they illuminate the path to a deeper understanding than you would have found if they’d never popped up. Occasionally they keep popping up over and over, no matter what you try to do to make them go away. Once in a while, a really ugly and persistent one may test the limits of your sanity and resolve.

And if you’re a total novice at coding, you probably don’t like encountering them at all. Because every time you do, even if only for an instant, it feels like you screwed something up.

But you fight that feeling, don’t you? You fight it as hard as you can. Because you’ve still got lots to learn, but you’ve been at this thing long enough to recognize that the first thing the world tried to teach you about it was a flat-out lie.

“Sit in a quiet place, all by yourself,” said the world, “and code with perfect laser focus until your application is totally free of errors, even as it grows in real time. If you can’t figure out how to do that, you will never be truly 10x, and you might want to consider quitting your practice altogether, because you might not be the coding type.”

You know better than that, even now, as a beginner. You understand that working with code at this point in your long journey means spending most of your time dealing with errors. When something pops up, you pause to acknowledge and address it, and then get back to what you were doing.

And you pity the poor coder who still thinks a session free of errors is even desirable, let alone a sign of mastery. After all, you were once right there with them.

But eventually, your experience taught you that you’d been chasing a false idol.

Because the goal that matters has nothing to do with avoiding the errors. Real growth has never been about that. It’s always been about seeing those hiccups in your flow as the gifts that they are.

You already know this. You open these gifts all the time as you sit down with your miraculous machine and try to understand it better. Each break in your groove is a chance to practice getting back on task without missing a beat. Without beating yourself up in the process. Without trying to beat the process.

If you can learn how to do that, you can learn how to do anything. Not just computer stuff.

But that’s a lot of coding preamble for a guide on how to improve your meditation practice. Let’s move on.

Wait. We’re already done.

Click those heels, Dorothy.

"It's pleasant down that way, too. Of course, some people do go both ways."

“It’s pleasant down that way, too. Of course, some people do go both ways.”

It’s Not What The Image Represents. It’s The Image Itself. (But Maybe Not)

Wrong question: “What colors are this dress?” Right question: “What colors do I perceive in this image of a dress?”
thedress

My answer: blue and black. And if you can only see white and gold, covering up the washed out background on the right might help you see the image for its pixels and not what your brain tells you it represents.

If you are viewing the image as a representation of objective reality, your eyes might be color correcting for white balance, like they do when you step outside on a very sunny day or rummage through a drawer at dusk. That color correction, which I think is triggered by the sun glare at the top and bottom right of the image, makes the dress look white and gold.

The right half of the neckline is definitely more gold than black, crop the image if you don’t believe me. And the image is washed out, so the actual black parts of the dress never look completely black. Once you accept the image’s reality, black becomes gold and the blue snaps into white to compensate, based on all the color combinations you’ve seen before in real-life, bright-light situations.

But if you don’t accept the image’s reality, maybe because you work with images or you’re a cynic or you take things super literally (or maybe because, by default, you simply recognize that an image can never actually *be* the thing it is an image of), you see blue and black, because those are literally the colors that are there in the image.

And they also happen to be the colors in the actual dress. It’s on Amazon, it’s royal blue and black, case closed.

But remember: the actual dress is a trap.

This is about images, and how we perceive them, and how we fill in the blanks in our perception without realizing what we’re doing, even if the process is based on believing in the reality of things that aren’t real at all.

And it’s also about how angry we get when other people, through equally automatic and unquestioned processes, arrive at conclusions that directly challenge our understanding of the world around us.

There’s a moral in here somewhere, but I’ve already unfriended/unfollowed the people I would have told it to.

I had really good reasons, though. They were just so incomprehensibly wrong all the time.

The Rockwell station.

You Have To Know What Scares You More

I graduated Dev Bootcamp in September, and got asked to come back on contract as a junior instructor, and that job became full-time official last month, and that meant I finally got to reunite my family in Chicago, so we’re together again and my career trajectory has changed in a huge way and 2014 was the most amazing year of my adult life.

But that’s not what’s important for today.

What’s important is that my family moved to Lincoln Square, right off the Rockwell Brown Line stop. That matters because the train is at street level at Rockwell, which means I get to see a drama play out every morning that reminds me of my work.

The Rockwell station is just west of its namesake street. A street level station means there’s no bridge over Rockwell, just a track embedded in the asphalt and four big lighted wooden arms that come down when a train’s about to cross; it’s a railroad crossing, and sometimes people get hit at crossings, so there are bells and flashing red every few minutes before Kimball-bound trains slow down into the station. Or before Loop-bound trains arrive at the station, load up, and then cross Rockwell heading east.

The timing matters for this analogy. Kimball trains come through the crossing faster, since they’re decelerating from speed. By contrast, you’ll see and hear the warnings for a Loop train before the train has arrived at the station, before it has slowed down to a stop before the closed crossing, before passengers have boarded.

And I say all this so maybe you’ll think differently about the kind of person who would ignore bells and flashing lights and duck under a descending wooden arm to make their train. Maybe they’re not ignoring a clear danger. Maybe they have enough context to know when there’s no danger at all.

For many DBC students, the beginning of Phase 1 is all loud warnings and descending arms. Day One hits and it’s FULL – intros given, overviews covered, rules communicated, and on top of that there are several code challenges to get through in what amounts to only a few hours of core coding time. It’s hard to get through everything on the first day, and if you don’t, the fullness of the day gives your ego an easy out: “surely tomorrow, when there’s more time to code, I’ll get through the challenges easier.”

And then comes Day Two and the pace actually increases and it’s really easy to feel like you’re already in danger of total challenge/day/program/career/life failure, depending on how loud your inner authoritarian can yell at you from inside your head.

Before Dev Bootcamp, you were really good at something, art or negotiation or electrical engineering or parenting or sales or being a full-time student, and a lot of your identity is wrapped up in that first expertise. Society messages to us that everyone’s supposed to get good at something and then make some money doing it, and we get nervous enough about the money part that we forget to challenge whether that “something” really needs to be singular for anyone. It’s not that you can’t take on a brand new skill as an adult (I’ve personally watched hundreds do it since last May), it’s that no one’s ever explicitly told you that it’s totally normal, it might even be the default path to happiness, so all you’re left with is the sense that you’re struggling and that you’re doing it alone, because who’s ever done anything this crazy before?

Well, your cohort’s doing it, so that makes you feel safer. And you’ve got instructors who did it, and that helps a lot. But inertia is powerful, and when your brain can’t get its daily expected dose of expertise dopamine, two days in a row, it can make you panic all the same.

I’ve seen a few people have to leave DBC. Sometimes the program just doesn’t fit a student’s learning pace, and it hurts to say goodbye, because you still know they’re going to go off and become great coders one day, but you won’t be there to see it. But sometimes a student just hits an emotional wall and shuts down, and it has nothing to do with their technical prowess, it’s all about their courage.

It goes something like this: “I know I’ve already repeated this phase, and I really need to buckle down these next three weeks if I want to pull through. But what if I summon a Herculean effort and I’m still not good enough in time? Maybe it would hurt a little less if I just tapped out now and failed on my own terms. At least then I could retain some sense of control.”

This morning, on my way in, I saw the gate start to come down, and three people took off running to beat it. Two ducked under, and the third decided at the last moment not to chance it.

If the train represents a perceived danger, and the wooden arms are the ego’s defenses against that danger, maybe the difference between those who go for it and those who hedge is in the context. Maybe Runner 3 didn’t know it was a Loop train and that there was plenty of time to duck even after the arm had dropped completely. And maybe the knowledge that DBC is a safe place to learn and make mistakes, the knowledge that you’re surrounded by students and mentors and teachers who have your back and will help you succeed, the knowledge that so many before you have found success here by trusting the process and bringing their whole selves into the struggle…maybe that knowledge will empower you to pick your moment, stare down the train and get yourself where you were trying to go.

However… what if the train represents a path to somewhere awesome, a path you can miss out on traveling if you hesitate for too long? If that’s the case, maybe the arms and bells and lights are the ego’s defenses against personal change, and maybe Runners 1 and 2 weren’t afraid to duck under them because they knew the ego is a vicious liar when it doesn’t want change, and in that context the warnings weren’t warnings at all, they were just excuses.

But that’s not right either. Coding (and, I’m slowly learning, life itself) isn’t about finding the right solutions, it’s about the best solutions available considering the specific situation and the tradeoffs involved. There’s no black and white, just pros and cons and a choice to be made.

And if that’s true, the train is both danger and opportunity. It’s not your death or your salvation, it’s a risk. It might crush you, or it might open its doors and let you change your scenery. But the tricky part is that when the bells start to go off and the lights start to flash, you will need to decide for yourself what the warning means, and you’ll need to act on that decision quickly.

It’s convenient that I ride toward the Loop way more often than I ride toward Kimball, because it gives the analogy another layer. When I hear the bells and see a train barreling westbound toward the tracks, I know ducking the arm would be a stupid risk, not because I’m more likely to get crushed by a westbound train, but because west is not even where I need to go. Hopefully, long before you started DBC, you got at least a kick out of writing code that works; if not, this might not be the right risk for you in the first place.

But that’s hindsight at this point. You’re here now, and you’re uncomfortably new at this, and the work is really hard, and your defensive brain is warning you that you might be in danger. And yet the train that’s endangering you, these challenges, this process, the uncertainty of what comes after, the uncertainty about yourself, is the very reason you left the house in the first place. At this point, you can hold yourself back or push yourself toward the risk.

I don’t know your tradeoffs, so I can’t speak for you. And it’s a scary choice no matter what side you land on. Scary like running through a railroad crossing is scary, because in both cases you’ve grown up being told to never ever chance it: “A career change? At YOUR age? But you’ve got such a good thing going…”

Still, I’ll bet money that while running through a railroad crossing is scary no matter what, one of those runners was more afraid of getting crushed, and two of those runners were more afraid of missing the train.

I graduated Dev Bootcamp in September, and got asked to come back on contract as a junior instructor, and that job became full-time official last month, and that meant I finally got to reunite my family in Chicago, so we’re together again and my career trajectory has changed in a huge way and 2014 was the most amazing year of my adult life.

For me, putting my head down and going for it was the right move.

My New Normal

Whoa. That happened fast.

20 short weeks ago, I was code illiterate. I couldn’t write an if-else statement. I thought string manipulation was how people played Cat’s Cradle. I didn’t know “Hello World” was a programmer thing, let alone how to print it to the console. My creative life consisted entirely of music, and that was cool with me.

Then I heard about Dev Bootcamp, and something stirred inside me. Here was an opportunity to change my career path by changing myself into a more complete person. A chance to unleash my full potential, solve problems creatively, learn new things every day, and then enter a world where I could get paid to keep chasing those goals. I fell in love with the concept almost instantly.

And then it turned out that the coding itself was really fun. I tackled tutorials, wrote little toy programs, read docs, reread docs, cursed at docs, and hacked my way through dozens of coding challenges. Finally I had found something that made me lose track of hours in chunks, for the first time since I’d picked up a guitar.

That was just Phase 0.

In Chicago, I grappled with algorithms and made database queries and build basic apps and learned how to test and optimize and sprint and scrum and stay object oriented. The first week felt like a year of growth. And before I knew it, we were presenting final projects and celebrating our success over tacos and karaoke. It all happened so fast.

But somewhere in there, I stopped waiting to be taught and started seeking knowledge. I stopped hiding what I didn’t know and started asking people to help me learn more. I stopped judging myself by my ability to monopolize all the best work and started appreciating how cooperation makes everyone stronger. I stopped waiting to feel ready to act and started acting.

And now I’m sitting here, with a backlog of blog topics and three unfinished rap recaps, and a best friend at home who’s ready for me to pick up the guitar again, and a family that needs me to find a job and figure out where and how we’ll be living for the next year, and a bunch of mundane stuff that needs to get done every day. Normal, real life stuff.

But now I have this cool new superpower, too, and it’s not just about code. I can learn anything. And I know how to.

Over the next few weeks, I’ll be filling in the blog blanks and telling the rest of my Dev Bootcamp story, so everyone coming in behind me can build on it and make their time at DBC even better. I’ll be re-acclimating to a life without formalized 90-hour workweeks. I’ll be rebuilding the calluses on my fingers as I work to keep my musical muscles sharp for winter recording season.

And I’ll be spending a lot of time coding. Because guitar is great, but it’s cool to have another instrument to pick up when I want to lose track of time.