Growth

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.

 

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.

Dev Bootcamp Rap Recap: Week 7

You’ll hear a lot more about Phase 3 in the coming weeks. This one’s more of a retrospective. I feel like I’ve come so far so fast, and I’m eternally grateful for the lessons I’ve learned at DBC. Check out the rap recap below, and read along with the lyrics below that. Have a great week!

The apprentice sat down next to the master and asked her how to use new tools to follow his passion.
She looked at him and smiled and took his hand like a child, and guided him to a table with blank canvas.
He sat scratching his head, cleared his throat and he said, “I wanna do bigger things! This really ain’t much.”
“You might be right,” she replied, “but way before you define a new art, first you gotta master a paintbrush.”

That’s how it felt the day I started out,
I thought I’d hold the whole web in my hands and stand tall and proud,
I sorta scoffed at the process people were talking ’bout,
and when I looked at the lessons I had a lot of doubts…
At first glance it all seemed esoteric and abstract –
I wondered if they’d ever bring us past that,
but as I moved from algorithms to a class act
I started craving the next challenge out the grab bag.
And as I flash back, marking my time here, it’s quite clear:
the real challenge was beating my fear!
All my ignorance masquerading as arrogance
is so apparent when I compare it to what I idealize in the present.
My mind is a weapon with double edge; if I never apply inner pressure then I’m only gonna hurt myself. 
I learned why help’s the greatest word I can speak to strive for the best of my potential
and I bet that I’m stronger than ever,
better for for the wear, aware of my heart and my head
I’m honestly at peace with who I’ve become,
and where I’m trying to go, cause I’m in the zone and remarkably stretching. 

I always thought that I could be like this.
I’m not perfect but I’m working like a fiend and I can see my gifts:
I learn best when I’m thinking with hands on,
I’m hoping I can keep with the plan to tinker with craft and stand strong.

And someday I’ll get paid to code
but it’s something money cannot buy that makes me go, 
I’m just a student who’s achieving in leaps,
loving the art of making beautiful and meaningful things.
I know the sky is the limit,
cause I write lines a little different than I used to
as I improve through the time I’ve been given.
Not just in Chicago, I’ll never stop coding cause I’m walking a long road,
here I go!

Dev Bootcamp Rap Recap: Week 6

I did it! I got through Phase 2 in one go, and I was so happy and proud of the effort I put in. Then Phase 3 hit, and the pace didn’t change. I feel like I’m hitting my stride, gaining more stamina when it comes to long coding sessions and grinding through the work in spite of feeling stuck on new problems. In the flurry of activity, I lost my hold on my blogging routine, but hopefully I’ll rediscover my balance this week. In the meantime, enjoy this rap recap. It’s a week late, and I’m trying to explain why in the lyrics. Read along below the video.

I know it’s a little late to ship this,
I know that I slipped out of existence,
cause I was turning my focus to JavaScript,
working and hoping that I could commit enough to live 6th week only one time,
and speed through the crunch time,
my social presence went from a feast to a lunch line.
I never guessed that I’d lose the heat from the sunshine; 
I was hidden and living at the peak of a CRUD grind. 

I kept reaching for a punchline only to grab lines of code from my troubled mind,
and catching up was the name of the game
my frantic pace was insane, I couldn’t even try to bust rhymes.
My priority shift was quite enormous: I quit from nightly blogging and missed shots to talk to my kid.
I had to sacrifice a lot for my wish to reach the Phase three spot but I did,
by dropping off of the grid.

I guess I did what I had to, banging on the door of potential until I passed through.
I’m hard-headed but finally understand dudes saying doing more than just coding can be a bad move.

And that’s true but I honestly think it’s worth it to try,
that’s why my rapping is returning to life,
I might not do it perfect – I’m uncertain and shy,
I might get down on myself and feel nervous at times, but that’s all of us!
Any programmer can lose confidence,
breaking links can make you think you’re an impostor but,
if you can weather the lows you can get back in the flow; 
I happen to know that it feels like an awesome rush.
So try not to play it safe –
test limits and get driven to win it working crazy late.
And let the struggle be your saving grace,
cause this emotional roller coaster is crazy but it makes you great.

No, I Don’t Play Football – Some (Revisited) Thoughts on Stereotype Threat

Author’s note: I wrote this post in June for my Phase 0 blog. The current horror in Ferguson, MO made me think of it again. On dozens of social media feeds, witnesses reported seeing militarized police taunting peaceful protesters, attempting to goad them into violence, as if they were just waiting for an excuse. I see this as an example of stereotype threat in action; the officers came to the scene expecting the predominantly black crowd to act up, and did everything they could to make the crowd believe acting up was what they were supposed to do. It can be dangerous for marginalized groups when other people get the wrong idea about them. But it can devastating when they get the wrong idea about themselves.

It was like being typecast in real life. My fourth grade teacher sat down across from my parents and told them I was not doing well in math because I “just didn’t get” long division. On the surface, that’s kind of how it looked. I’d stare off into space instead of doing the problems when study time rolled around, I rarely turned in my work, and when I did, the paper showed only the answer, with no corresponding calculations. I might be cheating or using a calculator on those, the teacher said. But there was no way someone with my aptitude could be solving those problems in my head. Someone like me wasn’t smart enough.

Except I was. I had been doing the problems in my head, because writing out all my work felt tedious. And eventually I stopped doing the work, because it stopped challenging me. I was a smart, headstrong kid. Other smart, headstrong kids my age were in special gifted/talented courses where instructors harnessed all their mental energy in a positive way. I didn’t get that kind of structure; when I acted out due to extreme boredom, I was sent to the library for hours at a time, devouring books of my own choosing instead of sitting through lessons. Why wasn’t I considered smart enough for the gifted courses? Why was my disinterest in lessons seen as a sign of low potential? Could it be because I was one of only three black kids in my elementary school?

I started high school in a different district, but the attitudes I faced were similar. I lost count of the times I turned down a JV football coach’s sales pitch. I had been a choir kid my whole life, and I wasn’t about to add athletics to my full load of extracurriculars. In fact, I was and am one of the least sporty people I know. But that didn’t stop me from being scouted like an untapped vein of raw talent. In what I can only hope is totally unrelated news, black students were disproportionately well-represented on the football team, even though they made up a small minority of the student body.

I faced the threat of two stereotypes growing up. First, I could have been the dumb, belligerent black kid, and later, I could have been the strong black kid (who doesn’t need to worry about mental stuff because he’s strong.) Obviously, living with either option nets the same result – lowered academic expectations and a general “other”ness that follows you for life once you accept it. But that’s the weakness of a stereotype: it’s meaningless unless it’s accepted.

People in tech do a lot of talking about stereotype threat, but sometimes they get their definitions confused.Throughout my childhood, the danger of stereotype threat was not that other people could have gotten the wrong idea about me. It was that I could have gotten the wrong idea about myself.

In another world, I could have let it sink in that I was probably bad at math, that I wouldn’t belong in a group of smart kids, that I should probably stick to other subjects, that my future would be brighter if I embraced my number-clumsy nature. I could have let myself believe that football was my calling, that I wouldn’t belong with the music nerds and drama heads, that I should probably stick to the weight room and stop pretending I could make any other meaningful contributions to my school’s culture.

But I don’t need to go to that other world to see stereotype threat at work. I’m trying to break into a field with a known diversity problem, one that’s been attributed to self-selection. The argument goes that tech is overwhelmingly male and White or Asian because that’s the makeup of the applicant supply. So why aren’t there more female, Black or Latino people seeking careers in tech? Maybe it’s due to thousands of small social cues that those groups “just don’t get” tech and might be more comfortable somewhere else. Again, the problem is not that these prejudices exist. The threat is that the target will believe the stereotype to be true about themselves. And then the hiring numbers fulfill the recursive prophecy, and we repeat the cycle to the detriment of an industry that could desperately use some fresh perspectives.

So how do we fight back against stereotype threat? Two ideas spring to mind, and we’ve been talking about them at DBC for weeks now. With a habit of mindfulness, people can better monitor their thought processes and more quickly identify distorted self-concepts arising from societal stereotypes. And a well-cultivated growth mindset can build self confidence and counteract thoughts of permanently not belonging or being inferior. If growth is always possible, stereotypes will never tell my whole story, even if some of them start out being true. (And who’s to say I would have had to choose between football and music? Am I not strong enough to tackle both, terrible pun intended?) Like many issues around diversity, the root problems here are systemic, but many of the most easily implemented solutions take place on the individual level.

The kid who “didn’t get” long division ended up getting top-percentile math scores in high school. But that might not have happened, if I’d let myself believe that ignorant teacher. If she’s reading this, by the way, she might stop to consider how uninformed judgements about potential can haunt a child for life, and pray for forgiveness. 

What are we teaching people to believe about themselves? How are we priming the pump that sends talent down this pipeline I keep hearing so much about? How many great programmers are out there, unaware of their potential because they’re believing lies someone else told them about themselves?

And who are you, really? What are your strengths? Your limitations? Your passions? Are they there because they exist, or because you believe they do? Because someone told you that’s who you are?

I don’t care if you think you’re a crappy cook or bad at math or genetically predisposed to violence and opposition. Unless you’ve gone out and proven it to yourself, personally, over time, you might be living under the weight of a self-directed stereotype. And that’s tragic, because it means you’ve been more than you think you are this whole time, and you’ve been missing out.

Call it a sunk cost. It’s never too late to take the next step, to do the next right thing. The next time you notice yourself putting you or someone you know into some box, some category, remember that you have a choice. Pattern recognition is an excellent animal defense mechanism and a terrible way to be a mindful human being. Take a breath, take another look, and really try to see the person behind the category, especially if the person is you. 

The worst thing that could happen is you hate how deeply a world built on snap judgements has shaped your thought process up until now.

The best thing that could happen is you love yourself for who you really are.

Dev Bootcamp Rap Recap: Week 4

This week was the toughest and most inspiring yet. So I tried to write a verse as intricate and cross-dependent as the curriculum itself. Lyrics with links are beneath the video, and you might want to do some clicking, because some of these metaphors are kind of a stretch.

Enjoy!

It goes create-read-update-delete,
It’s no delaying the feverish pace we keep.
First we rake db:migrate and seed,
and then we table strings and make them sing.
Cause we’re sitting in with Sinatra, giving it all we got,
delivering something awesome and shipping it on the spot.
We’re dipping our toes in water and dripping a little knowledge to test.
I confess that it’s getting a little harder but we got this, we aren’t weak;
we stay cool and venture out (like a freon leak) into the web
and check the browser for the ERB, and we all see the progress of three long weeks.
Breathe, dog, breathe…because every day is a training one:
breaking CRUD toys with poise and having crazy fun,
raising up hands to ask questions and make ’em run,
staying tough, driven, and with it and never playing dumb.

Dedication is how we handle the pressure
and this user authentication is a valuable weapon.
I’m getting after the sessions. The routes are hooking up,
and that’s how the cookie crumbles when the packets are sending data
in hashes with hexes I’m feeling good which 
means the programming world is where I should live.
Ruby is dope but I’m flexible and I could switch
over to Haskell and that would make me a HOOD-rich codeaholic

…and at least I would be functional
but that discussion should be conducted when I get done with school.
I’m staying grounded about it and in a humble mood,
steady growing my knowledge like the seed of a mustard moves.
I’m journal writing these raps to sort of save state,
plus I hope I’m lighting a path like border gateways.
So if you feel insecure like port 80 observe my short statements
and maybe you’ll try to chase fate,

and witness why I’m believing in where I’m staying –
I’m saying these are some people with dreams and they’re amazing.
See, on the weekend we drink in these validations
’til we’re turnt up like one screen at a pairing station.
It’s apparent we’ll make it cause we’re looking out for each other
as brothers and sisters and getting good at what we discover.
It’s cool, we’re showing up because we love what we do,
and as for practice there’s never really enough to consume.
We stay hungry, but not for the dollar; we ain’t Puffy,
the Benjamins matter less than the drive to create something
and take it from me, if you’re just trying to make money
you’ll find this ain’t funny – the grind is straight nutty. Dig deeper.

I’ll try to help you see these things each week,
computers counting this as release 3,
and I’m on a mission to spit this out from DBC –
bringing more flow control than the TCP.

– Duke Greene

The Dev Bootcamp Rap Recap Repository

Here are all the Dev Bootcamp Rap Recaps I’ve uploaded to date. Thanks in advance for listening and pulling your friends over to your screen of choice so they can listen too.

Look for a new one each weekend here or at my homepage.

WEEK 1 (Full post with lyrics here.)

 

WEEK 2 (Full post with lyrics here.)

 

WEEK 3 (Full post with lyrics here)

 

WEEK 4 (Full post with lyrics here)

 

WEEK 5 (Full post with lyrics here)

 

WEEK 6 (Full post with lyrics here)

 

WEEK 7 (Full post with lyrics here)

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.

Ten Things to Expect from Dev Bootcamp’s Phase 1

I made it out of Phase 1 in one piece, and now all I want to do is look back. That’s probably not the healthiest impulse, considering the likelihood that next week’s pace will make my last three seem like warmups. In the interest of moving forward, I’m going to pack my entire phase into one retrospective post so curious readers can see what it’s like at the beginning of Dev Bootcamp.

Word to the wise – your mileage may vary! Every cohort is different, and instructors group off in different ways each phase. And you are unique; you’ll bring to this experience a particular set of skills and expectations that will determine what you get out of your first phase on campus. I’ll try to stick with the big concepts in a way that doesn’t spoil any cool surprises. Hopefully you’ll find something useful here, something to help make you into a better coder someday, or at least help you make a decision about how you’ll be spending the next six months of your life.

Here’s what you should expect from the first three weeks at DBC.

Expect the first week to kick your ass. It’s a system shock akin to being thrown into Lake Michigan in May. While you’re asleep. And mostly naked. You’ll hit the ground running on your first day, bouncing between welcome meals and things-you-need-to-know lectures and personal introductions and code. Yes, there will be code. And it likely won’t be code you enjoy writing. The first week is basically about building algorithms, the little script machines that work under the program’s hood to manipulate data and generate results. It’s a lot of math-y stuff, like telling a computer to look at a list of integers and spit out only those that are evenly divisible by 17, or figuring out how to take a number and convert it into a different type of notation.

There are also a lot of activities that deal with string manipulation, and you’ll even dip your toes into regular expressions, which are basically chunks of gibberish that isolate relevant patterns with the precision of a Google search. When you hear about regexp’s, you’ll be scared and want to avoid them. Do that if you want, but it will cost you a ton of time and energy better spent learning the new tool, and eventually you’ll learn it anyway. This cycle – fear, intentional ignorance, reluctant engagement, begrudging acceptance, and then habitual usage – is at the core of the DBC process. Get used to it, and try to skip ahead to the reluctant engagement part as soon as you can.

By the time you’re done with the first week’s challenges, you’ll have gained a new appreciation for some of the more powerful methods in the Ruby arsenal. To put it another way, you don’t really love your staple remover until the day someone makes you pull out a hundred staples with your fingernails. A lot of boots say the first week of Phase 1 is one of the hardest weeks overall because the material is dry and largely unrelated to the work you’ll actually end up doing as a web developer. But it’s there for a good reason, and you’ll have to learn it if you want to be solid during the rest of the phase, so strap in and hold on tight. You can make it. Even through Sudoku, you can make it.

Expect to stay classy. There’s this thing called object-oriented programming, and it’s all about getting parts of your program to play nicely with one another. That means making sure each part does exactly one thing and doesn’t spend too much time prying into the business of the other parts. After you get past the algorithms from the first week, your focus will shift to OO design practices almost immediately. This will make you dizzy. You’ll be trying to keep track of a class you created, what its variables are, what it inherits from, how to call methods from it, and then all of a sudden you’ll hear, “Oh, make sure you don’t put that there. It’ll work just fine now, but your program will be really hard to upgrade later if you do it like that.” If this was an English course, you’d be learning the basics of nouns and verbs while trying to match rhyme and meter. It’s daunting stuff.

And once you get the hang of it, it’s also the most rewarding stuff so far. Harness the power of Ruby objects, and you’ll be able to build facsimiles of real world systems in code, which is mindblowingly cool. You can make a Band object that contains a bunch of Musician objects and then call something like awesomesauce.kick_out(narcissistic_lead_singer) to make your group sound better. You can make a Congressperson class that inherits from the LazyBully class and add a lot of unfortunate dependencies to it. As I type these words, I notice that each of my arms happens to be an instance of the Gun class. 

The point of all this is to stop thinking of programs as singular things that run in a set order, and start thinking of them as groups of objects that talk to each other in specific ways. This mindset shift is at the core of the OO movement, and it can be hard to wrap your mind around if you come from another school of thought. Don’t worry. You’ll get plenty of practice learning design by making real-ish things and then realizing why they’re not working right (hint: you didn’t whiteboard enough).

Expect to stretch. I have some bad news for you: you have no idea what you’re capable of. Luckily, Dev Bootcamp is here to help you fix that. To unlock your maximum learning potential, they will do everything they can to shake things up and keep you on the outer edge of something called the stretch zone.

Picture a slice of cake, because cakes are circular and delicious. At the tip of the slice, the center of the circle, is your comfort zone. You know exactly what’s going to happen when you take your first bite. It won’t fall off the fork and you won’t bite off more than you can chew because that first part of the slice is so darn thin. In the comfort zone, results are utterly predictable, contentment is totally guaranteed, and growth is absolutely impossible. You don’t want that. Everyone will know you as the person who only takes the first bites of cake slices, which is kind of weird and more than a little pathetic.

At the other extreme is the panic zone, the outer edge of the cake that’s basically all frosting. Have you ever noticed how cloyingly bitter cake frosting can be all by itself? It’s terrible. Once again, you’re not eating cake, but you’re probably thinking all about it, wishing you could go back to a better cake/frosting balance, even if it means being the “first bites only” weirdo. When you’re panicking from overwork and lack of understanding, your brain shuts down and seeks comfort. But you didn’t pay 12 grand for a cake to nibble at frosting and skinny slice tips. You’re trying to eat some cake here!

So Dev Bootcamp sets you up in the sweet spot, that outer-middle ring of cake where the batter isn’t undercooked and the frosting is just starting to get deliciously thick. That’s the stretch zone, where you’re getting the most calories per fork-bending bite. Except instead of calories, it’s aha moments and hours of focused practice and opportunities to grow in groups. Less delicious, but ultimately more fulfilling. DBC wants you to be safe while you’re here, but safe isn’t the same as comfortable. There will come a day in your first phase when you’ll feel like there’s too much work to do and you’ll never get it done, and you’ll reach out for something, anything you can understand. And then you’ll look at your hand and see that you’ve grabbed on to the thing that made you this afraid yesterday, because in 24 hours your phobia morphed into your security blanket. That quick learning turnaround can only happen when you’re living in the stretch zone.

Expect to stretch. That’s not a typo. You’re going to do some yoga. It’s only five sessions over the first three weeks, but it’s still exercise, and it’s morning exercise, and it will probably make you sweat. You’ll want to bring a change of clothes unless you’re some kind of fitness monster. The practice itself is invigorating and relaxing. Lots of stretching, focusing on the lower back and shoulders (where programmers hold a lot of stress), and core exercises for balance and…organ health, I guess? I’m not totally sure why they have us do this.

Ok, that’s a lie, I think I’m pretty sure. Yoga teaches mindfulness through focus on the breath, grounding practitioners in a present moment that resurrects itself with each new inhale. You’ll want a good handle on mindfulness practice because it helps you recognize your thoughts and emotions while you’re having them. That’s an invaluable skill when you’re working at a fast pace and starting to get stuck. Mindful programmers debug faster because they can catch their poor assumptions as they speak their expectations to themselves. They code cleaner because they have the stillness of spirit necessary to sit back and write good pseudocode before leaping into class creation. And they work better with others because they don’t let their emotions dominate them during times of conflict.

Also, we’re more than just brains in jars. Most of the students here like to work really hard. That’s expected and encouraged. What gets lost in translation is the distinction between hard work and self harm. There is no nobility in skipping meals or depriving yourself of sleep or exercise in order to spend more time coding. You’ll end up burning out somewhere down the line, and it will cost you double the time you thought you’d been saving. Take care of yourself. Remember that your brain is attached to a body. And if you forget, there will be yoga to remind you of how painstakingly connected your brain and your body really are.

Expect pizza on Tuesdays. And expect the deep self-analysis that comes right before it. Engineering Empathy will ground you in reality and encourage you to speak your truth. These are closed-door group sessions where emotions can get raw and people can get uncomfortable. It’s OK. You can handle it. Just come prepared to be honest with yourself and your cohort-mates about how things make you feel. It may seem corny or unnecessary, but consider the companies where you’ll eventually apply. They interview a lot of people who know how to code, probably a lot of people who can code better than you’ll be able to after 9-15 weeks. When they consider you for employment, they’ll be margining how you’ll add to the culture. Are you a positive and welcoming person? Do other people do better work when you’re on the team? Can you look deep enough inward to detect and address your emotions as they shift, or are you constantly flying off the handle and needing to apologize for getting scared or frustrated or pissed off? Can you address a client with empathy and help them feel like their experience and knowledge is valid and valuable?

There’s not enough time to explicitly ready you for all these situations, but you’ll have a fair shot at learning some of the basics of emotional self-regulation and empathy, fundamentals that will allow an apprentice to contribute to a company’s culture long before they’re able to contribute to that company’s code. That’s value that pays dividends, and you’ll want to be able to provide it, so embrace the discomfort (at DBC, ALWAYS embrace the discomfort) and give each 90 minutes your best shot. 

A counselor, who helps facilitate the EE groups, is also available for half-hour private sessions funded by DBC. It’s up to you to sign yourself up if you feel you’d benefit from the space to get away and be totally honest with someone who will never look at your code. Personally, I think everyone should give it a chance at least once. I check in with the counselor once a week just to make sure I’m processing everything in a healthy way. There is so much to learn, so many personalities to get used to, so many expectations that get tested and torn down and rebuilt every day. You don’t need to go it alone. Use the first phase to reach out and seize every resource available to you. Especially the ones that take a minute to ask you how you feel and if they can help.

Expect to work with others. If you already know Rails and Angular and Node and Swift, and you only have experience working on projects alone, I’d still recommend that you try Dev Bootcamp. The relationships alone are worth the price of admission. Anyone can conceivably sit at a computer and teach themselves how to code, but DBC ups the ante by making you code next to a peer for more than two thirds of the time you spend on campus. This has benefits and drawbacks, and why the heck would you want to learn what they are in an environment where struggling with interpersonal issues could cost you a job? It’s safe here, so get used to it here. 

Get used to being the slow pair. Get used to asking tons of questions and admitting when you don’t understand the answers. Get used to feeling sad that you didn’t know more today and letting it drive you toward pushing harder tomorrow. Get used to watching someone better than you do something well, and get used to practicing their tricks and shortcuts on your own time while the lessons are still fresh. Get used to expecting their normal to become your normal someday. Get used to raising your expectations each time you code with someone strong. Get used to navigating, explaining your understanding of the code out loud and pulling up docs on your laptop to support the driver with researched answers to questions that come up. Get used to driving, plodding along as fast as your slow fingers will let you while your more experienced friend helps you make the most efficient decisions possible. In short, get used to something like being an apprentice in the real world.

And get used to being the fast pair. Get used to having your knowledge checked by a barrage of questions, finding new and painful humility each time your answers don’t quite match up. Get used to feeling sad that you went slower than your optimal pace today and letting it drive you toward pushing harder tomorrow. Get used to putting your methods where your mouth is and showing another person all your secrets, doing your best to lead by example without screwing up too badly. Get used to practicing your shortcuts and tricks on your own time before your workflow is under scrutiny and you share responsibility for someone else’s progress. Get used to being upset when your pair didn’t learn as much as you hoped they would, and asking yourself how you could have been a better leader. Get used to the art of teaching by asking questions, tracing back your own learning to guide someone else along until they arrive at the same understanding. Get used to driving, showing your pair how you do things and taking frequent breaks to make sure they understand why you did them that way. Get used to navigating, patiently (so patiently!) easing your teammate through the process you understood in minutes, even if it takes hours. Get used to getting the most out of your friend in a way that makes them feel like they matter, like they can contribute, like they made the right choice to be here. In short, get used to something like being a team leader in the real world.

Expect to work weekends. The atmosphere is different in here on Saturdays and Sundays, and you won’t want to miss it. Everyone’s laid back, but everyone’s focused. There’s a lot of joking and YouTube video sharing, and there’s also a lot of shop talk and review of the week’s material. It’s likely that you’ll enter your first few weekends with some unfinished core challenges from the week before. The weekend is your time to catch up or get ahead. You’ll have some weekend challenges to dig into, and your instructors will highlight the stuff from the past week that they think deserves the most attention. Redo lots of challenges. Build lots of toys and break them and rebuild them. Pair up with someone (or if you’re really feeling feisty, try grouping up) and work through a project from start to finish. Don’t skip the whiteboarding step, because the weekend is the best time to check your fundamentals.

During Week 2, my cohort had to build an app that generated winners and losers at random. Did we put our names into it and see who was the best one Saturday afternoon? You bet we did. Did we put real money down on the game and get really jealous of the winner? No comment. Rest assured that the weekends are awesome and you’ll want to be here to soak in that awesomeness. You’re trying to immerse yourself in code, why would you take a day off? if you want to relax at Dev Bootcamp, I think you’re better off timeboxing your day and finding a couple hours to work out or read or (ahem) blog multiple times throughout the week, rather than working like a fiend for five days and only having time to sleep and do laundry after the gong rings on Friday afternoon. 

Expect to ask for help. The pace is fast. The language is foreign. But you’re smart, right? Always the quickest kid in class, the best speaker in the meetings, the comfortable master of whatever past domain you lorded over, perched atop whatever throne you used to claim. Yeah, um, get ready to get blood all over your crown. Everyone here was the smart kid. Everyone. Chances are, you’re in for a rude awakening if you expect to coast on your own awesomeness. You’re going to struggle to keep up here, and you’ll struggle a lot less if you admit that you’re struggling. So just admit it and get some help.

There will be instructors, junior instructors, TAs, boots from the advanced phases, and brilliant peers all around you at all times. All that’s asked of you is that you raise your hand and expose your ignorance. People think the secret to success at DBC is an insane work ethic and ungodly hours, but that’s mostly true for those who would rather bang their head against a problem from 2 hours than ask an ignorance-exposing question and get help in 5 minutes. Your time is valuable and your money is valuable, and you’re trying to spend a lot of the latter to save a lot of the former, so why waste minutes being stuck when there are so many unstickers handy? 

I can’t stress enough how much my work improved after I started asking for help. My first week, I burned out in three days by trying to prove to myself that I was smart enough for this, as if I had signed up to know things rather than to learn them. My second week, I asked so many questions and signed up for so many mentoring sessions that I pissed off my pairs and got a warning message from an instructor telling me not to be a help hog. Week 3, I found my happy medium and I’ve never felt so relaxed about getting so much done in my life. The discomfort’s still there (are you seeing a pattern yet?), but now it’s more like a petulant but good-hearted roommate, and I get to enjoy this process way more than I did when I was killing myself trying to solve things better than my instructors. I’m not that guy. You’re not that person. Save time and a headache and be the one who asks for assistance when they need it.

About those mentor slots: there’s this great thing called Pairing is Caring, where coders in the community, many of them DBC grads, stop by for a few hours and help people understand things better. You’ll be able to schedule an appointment with someone dedicated to working on what you need to work on, and that 60-90 minutes will help you accelerate your learning in the best way possible. Imagine pairing with someone way faster than you who isn’t impatient and wants you to drive the whole time. It’s such an awesome way to gain understanding. You might even come away feeling really strong about something you thought you sucked at, like I did when I sat down to work at a challenge with a mentor and realized that all my initial instincts were the right ones for the project.

If you miss out on PIC mentors, take advantage of the weekend pairing board, where students from Phases 2 and 3 write their names and available weekend time slots. Take an hour on a Saturday (because you’re already here, right? Right???) and link up with someone who recently finished that nasty challenge you’re stuck on. Not only do they know one possible solution right off the bat, they probably remember their thought process and can help you along the same road. There are so many ways mentoring goes right and so precious few ways it can go wrong. Take the plunge. Get a mentor. You won’t regret it.

Expect to make friends. I came to Dev Bootcamp thinking about the things I’d need to learn and worrying about whether I’d have time to learn them all. I’ll leave Dev Bootcamp thinking about the people I’ve met and worrying about whether we’ll keep in touch. At tonight’s graduation party for the exiting Coyotes, a few of us started talking about how hard it normally was to meet new people, especially new people who weren’t like the people we already knew. And yet here we are, with our vastly different ages and backgrounds and experiences, and we’re all becoming really good friends. This place is not normal.

I’m not saying I’ve forged a deep bond with every single person in my cohort, but we’re all connected nonetheless, and there are already at least 10 people I’d make plans to hang out with even if we had to connect over something other than code. They say the acceptance process is so selective because DBC is looking for certain types of people they think will flourish in this strange environment. I believe that theory 100%. To a person, all my fellow Bobolinks have a strong drive to learn and succeed, coupled with this deep-seated optimism and openness to try new things. The whole space is like a resonating chamber for positive human energy, and it’s helped us form the kind of bonds that don’t happen by accident. Simply working together for three weeks doesn’t explain our level of camaraderie. This is something deeper, and it’s really special, and I’m grateful to be a part of it. Learning code alone gives you a sense of accomplishment. Learning code at Dev Bootcamp gives you that plus a sense of belonging. Get ready to sink into it, and stay wide awake so you can enjoy every second. Get everybody’s phone number in the first three days and create a DBC group full of the best buddies you don’t know you have yet.

tweet TWEET! #JustBobolinksThings

Expect to succeed. Always, always, always expect this. You wouldn’t have signed on for this journey if you didn’t believe in your potential or the program’s, so trust your initial thinking and see it through. Work every single day. Get done with every challenge you can and try to venture into the stretch challenges too. Stay late enough to finish what you started each day, and get home early enough to give yourself a real shot at a fresh start in the morning. And trust the process. You are good enough for this, and you’re ready enough for this, and all that’s left is for you to get started and see how much fun you can have while being awesome.

Repeating is not failure. Not knowing something is not failure. Screwing up on a challenge or assessment is not failure. Being the slow one in the pair is not failure. Failure is quitting, and it’s nothing else. And if you were planning on quitting, we wouldn’t be having this hypothetical one-way conversation right now.

So if you’re scouring the web trying to get more ready for this thing, I’m here to tell you that completing Phase 0 means you ready right now. Anticipating more outcomes feels safe, but safety isn’t where your growth zone is. You won’t get hurt by trusting the process and jumping right in. Just keep it simple. Pat yourself on the back for getting your submissions done, show up on time on Day One, and come expecting the ride of your life.

A Farewell to Phase 1

I’m moving on to Phase 2, and that means a lot of things.

It means I’ll be leaving a quarter of my cohort behind. Several of us will benefit from a repeat, and you can already feel this invisible line forming, separating what had been a cohesive unit into two distinct groups. Once I knew that one particular person was repeating, it was easy to spot the others around him, all clustered together at the far end of the space, digging into Ruby tutorials, reviewing code samples, decompressing, venting, commiserating.

It’s a weird energy to sit with, as someone who can only attempt to empathize. We learned about the difference between sympathy (“at least you can learn even more now”) and empathy (“sounds like you’re having a really difficult afternoon; I’m here to listen if it helps”) in our first Engineering Empathy session. But when the chips were down, I kept spouting sympathy instead of taking the dangerous dive into a shared emotional funk. I wish I had chosen kinder words. More than that, I wish I had spent more time pairing with struggling people in my cohort. Maybe if I and my quicker peers had invested the pairing hours, more of us would have been ready to move on today. I’ll never know for sure, but I’ll probably wonder about it right up until Phase 2 slaps me in the face.

That’s another thing about passing. It’s technically the fifth day of Week 3, but the curriculum thinks it’s the second day of Week 4. Assessment takes a lot out of me, and I struggled to get much coding done in the afternoon following my code review. That doesn’t mean there’s not plenty to do. We’re plummeting into ActiveRecord now, which means digging through file trees in search of the right programming object, tracking tricky variables through multiple parts of interconnected systems, and holding on to enough Ruby and SQL knowledge to debug and test every line of code we touch. And this weekend-long taste of ActiveRecord won’t hold a candle to our first three days in the next phase. It’s going to get very hard very fast, and I’m hearing that we should plan to add an hour or two to our work day in order to keep up.

As this new challenge takes shape in the distance, the first instinct is to get a better look at it by asking people who just conquered it. And that raises a different issue, because the Salamanders ahead of me have at least three among their number who passed their phase but would have preferred a repeat. Even the people who are smart enough don’t feel like their smart enough. One guy explained the dilemma in real world terms:

“Why are we here, right? We’re not here to pass assessments and do core challenges. That’s what we do here, but it’s not why we came here. We’re looking for a new kind of career, and we took a huge risk to find it. We all spent twelve grand to come to this place where we won’t receive a degree or official certification. Once we finish, we’ll be competing against CS grads and people with years of industry experience. The interviewer won’t care about whether we spent three weeks or six learning the real web app stuff. All we’ll be able to bring to the interview is what we’ve learned and the app we made in Phase 3. I want to be able to collaborate on a bomb-ass app, and I don’t think my skills are there yet. So I’d rather repeat and get my skills up on that level before I commit to a final project.”

I’m excited to be entering a phase that ignites such a deep passion for excellence. I’m looking forward to working on stuff that exists beyond the memory required to run a disconnected Ruby app. We’re about to start building things that will live on the web, and that means there will be layers of complexity and frustration caked around every little morsel of achievement. It’s going to take a deeper level of commitment, to the material and to each other as a cohort, for us to pull through this next three weeks. Our number will decrease as we leave some people behind, and it will swell again on Monday as we join the repeating Salamanders on a steeper path. And through all this flux, there’s a graduation tonight for the Phase 3 people who actually built bomb-ass apps, people who were agonizing over bugs and presentation plans and elevator speeches for prospective employers while the rest of us were blissfully splashing around in the shallow end by comparison.

It’s easy to get wrapped up in the ecstasy of self-improvement and forget that there will be a scary job search at the end of the rainbow. Every transition brings the reality into full relief, and with it a bunch of new work that will help prepare us for it. So passing isn’t really a celebration, and the weekend after isn’t really a breather. It’s the inhale before a deadlift, the gasp before a skin dive, the puffing up before blowing out dripping candles and making a wish.

Right now, I’m wishing for stamina. This next step will be ridiculously tough.