Curiosity

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!

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)

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.

Careening Toward Craftsmanship: My First Assessment at Dev Bootcamp

**For the uninitiated, arrays are [“structures”, “like”, “this”] and the items in them are counted in order: 0, 1, 2. Hashes are {noun: “structures”, preposition: “like”, pronoun: “this} and you can get their values if you know the right keys: :preposition returns “like”. Don’t worry about the differences too much, just know that they’re similar but different, and they each have suggested uses, kinda like spoons and forks. This post is about how I keep trying to eat ice cream with a fork.**

Alright, alright, Captain Persnickety. It was technically my first mock assessment. But it still mattered, and it still felt a lot like a test.

Thursdays at Dev Bootcamp are solo coding days, and during the second week of the first two phases, the biggest solo challenge comes in the form of a three-hour morning exercise that gets reviewed by an instructor later in the afternoon. The idea is to make something by using principles you’ve been practicing and then get near-immediate feedback on your process and its result.

I was nervous but hopeful when I sat down at my assigned station and started setting up my work environment. I figured I’d do a pretty good job executing whatever method I chose to solve the assessment challenge, but I knew I’d have to be careful about the strategy I chose. I seem to have a knack for choosing the least natural data structure to do whatever job needs to be done. When arrays are best, I choose hashes. When hashes make the most sense, I choose arrays. When it’s time to deal with objects, I choose arrays again.

I choose arrays a lot. Arrays aren’t the best choice for most things we’re working on, but they’re the things I understand best, and I often retreat to the comfort of using them instead of digging deeper in my tool belt. Right now, the array is my Swiss Army Knife. It does one thing excellently (handling small groups of easily-countable data whose order isn’t expected to change frequently) and 25 other things poorly. But instead of going to the hardware store and shopping for a real screwdriver, I keep figuring out how to hold my wrist just so to force incompatible screw heads to comply with the one shape I happened to have in my pocket when I started the project.

That’s what I did on my assessment. We were faced with a few different files and asked to find a way to put them together into something that could complete a task. The objective was kind of like something I might see in the real world someday: read through a set of customer requirements and find the quickest, easiest, most natural way to satisfy them. There were plenty of opportunities to implement the Single Responsibility Principle, which involves separating program functions into single “verbs,” so that no single method performs more than one task. And there was a really obvious opportunity to implement a variable naming strategy we had learned yesterday.

And, alas, I missed it by a mile. I zigged when I should have zagged. I beeped when I should have booped. I arrayed when I should have…well, I won’t spoil it here, because you future boots deserve the learning experience (and also, as a student, I’m contractually forbidden from revealing specific details about DBC curriculum).

That’s not to say I spiked the challenge. My execution was about as elegant as my clunky choice allowed. There were points in the challenge when my strategy was perfect, but I overextended it and fell a little short of my own expectations.

At the end of the mock assessment and subsequent code review, boots get a frank assessment of the phase completion track they’re on – there’s the Passing track, the Repeating track, and the agonizingly nuanced Passing But Could Benefit From A Repeat track.

I’m on the third track, which feels like this huge weight of pressure to accelerate my pace. Maybe I have it in me to pass this time around, maybe not. I’m pretty sure I do. Either way, I don’t think my speed this next week will be nearly as important as my direction.

Dev Bootcamp believes software development is a craft, not an art. Artists get the luxury of using one tool to make beautiful things. Think of a chanteuse’s voice, a sculptor’s chisel, a dancer’s body, an illustrator’s pen. Developers aren’t so lucky. Every year, there are new languages, libraries, APIs, and…other things I can’t think of because I’m a noob…that devs have to lean on to do their work well. It doesn’t make sense to get hyper-focused on gaining one set of expertise when you know it might be obsolete by the time you break even on the time and effort investment. There is space for experts in the software world, but there is much more space for flexible craftspeople who can move with agility through changing client requirements and newly-patched coding tools and anything else that might come up.

I believe I’m here to become more flexible. And I think my teachers share that belief. If we’re to become hirable developers, that means learning how to function in the real world. And real world knowledge isn’t just learning what people are doing now, it’s learning how they are doing it. I didn’t know what Agile Development was when I first got here, but I recognize a lot of similarities between it and the requirements of my former position at a small communications firm: talk with your client frequently, work efficiently, leave wiggle room for adjustments, and don’t grab a hammer and run around assuming everything is a nail. Even though I can mentally grasp these ideas, practicing them is a real struggle, especially because I’m trying to learn a new language at the same time.

But it’s not like I don’t have help. My favorite mentor has a way of spotting me staring off into space, taking me off to the side, and directly challenging all of my most comfortable habits:

“You’re good at leading in a group; maybe try hanging back sometimes and letting other people lead. You’re good at experimenting with code directly; maybe try reading the source code of other people’s successful experiments and getting some information that way. You like to be the one who’s talking and sharing; listen more today. You’re pretty slick with those arrays…but can you do the same stuff with a hash?”

There’s a lot of nuance to this process. Our optimal DBC learning flow is in the stretch zone between comfort and panic, but sometimes I’m stretching into new design principles and I realize that I don’t understand how a hash can get the next step done and I smell panic and retreat to the comfort of an array, and now I’ve managed to occupy three spaces simultaneously, even though it might outwardly look like I’m just stretching.

Take a step back, though, and the shape of things becomes clear. I came into this program as someone very comfortable with doing very few things, like eating pesto and writing songs and making my daughter laugh. I will leave it as a more well-rounded developer and a more complete human being. I fully expect that the stretching I do into new and uncomfortable data structures will prime me for the kind of stretching I’ll need to do when my employer suddenly decides I need to know another coding language, or when the job environment transforms to accommodate a glut of new programmers, or when science realizes pesto is highly toxic when people consume it as much as I like to.

I need that kind of stretchiness, because so much in my life is up in the air and dependent on the result of these 9 (12? 15?) weeks, and I’ll probably stay up in the air for a long while as I figure out what happens after. This assessment was a fun little awakening, a bell of mindfulness ringing far outside my comfort zone. The code review feedback I got today told me that my capacity to understand is not my problem, it’s actually my comfort zone.

As for my capacity to slog through repeated practice, enduring the fear and frustration that comes from learning new ways to say the coding ideas in my head…I’m not sure if that’s in anyone’s comfort zone. At least not at first. And yet here I am, in a place where I get to see my trajectory in time to change it, and I get to decide if I’m ready to make those changes every single day.

This is what I paid for, this safe space for wild reinvention of my oldest habits, this invitation into transformative discomfort, this contract negotiation between the person I am and the person I am capable of becoming.

It’s the first time in a long time that the two of us have been in the same room, but I’m confident that we can hash something out.

OO – It’s Magic, You Know…

Aaaaaand there it is.

They say it eventually happens to everyone who does this. You’re sitting through another lecture about mixins or watching someone assign instance variables during a coding demonstration, and suddenly something snaps and it’s all objects.

Everything is a object.

This post is an object that contains a string. The phone I’m writing it on is an object that receives messages from Twitter. The pillow under my head is an instance of the Pillow class, which in turn inherits some characteristics of the ThingsKidsFightWith class. (Did it have to inherit those things? I’ve been told inheritance should be avoided unless it’s absolutely required by necessity or design.)

My typing thumb is an object that receives messages from my brain object telling it to watch out in that lower left corner of the iPhone keyboard object, or else the microphone button object will send a message to the phone speaker object and I’ll end up with this annoying beep object that I can’t keep from initializing even if my phone is on vibrate, unless I remember to tell my volume button object to send a message to the ringer object and disable its function.

What did the lawyer say when the witness refused to swear on the Agile Manifesto?

“I object!”

There’s a mock assessment object in the “tomorrow’s events” hash. I have to receive a bunch more messages from this ebook object before I pass out tonight.

This post is short because I’m studying, and because I’m exhausted, and because this post never needed to be long from the start. It’s enough for me to write the Minimum Viable Post and add features to it later, based on my next conversation with my readers. Tell me how you’d like this post to evolve and I’ll see if I can address your concerns in its next release.

That’s actually not a joke. The comments are down there for a reason. Consider this as an experiment

object

oh, dammit. Make it stop.

Stuck, Stuck, Loose

It’s almost like they did it on purpose.

The first core challenge today seemed designed to hurt people’s feelings. It involved lots of pattern matching, finicky attention to detail, and a totally-not-obvious approach to building Ruby methods. Oh, and we didn’t learn how to implement the best solution until after lunch. And yet it was exhilarating to grind away at a single thing for 6 hours with no solution in sight. In the process, my pair and I got very familiar (way too familiar, actually) with nested loops and string manipulation.

But then we learned about regular expressions and it was like a switch turned on.

But that was in the afternoon. This morning all my fellow Bobolinks had an Engineering Empathy session in the Room of Requirement, because we’re new enough to need two in two days and because all the rooms are named after Harry Potter stuff. In the EE session, we discussed programming, oppression, and empathy, and how they all might be related. Though we didn’t arrive at a consensus, we all left the room a little more hopeful that we could actually be change agents in the world we were entering, adding to and maybe even elevating the cultures of the places where we’d eventually work.

After EE, everyone got pizza. I don’t know where this pizza was from, but it had eggplant and figs and blue cheese and it would have been the best part of the week so far if the coding wasn’t so challenging and amazing and cheesy and seasoned to perfection. For real, people, I still can’t stop thinking about that pizza. 

And then we dove into regular expressions, also known as regex’s, or regexps (if you’re into impossible-to-pronounce consonant strings). Regex’s look at stuff and try to find coder-defined patterns in it. If someone wrote you an email with a ten-digit phone number, I could use a regex to isolate just the number. In plain English, my method would be to look for three digits, then an optional single character (like a parenthesis, comma, period, or dash, or nothing at all…that’s why it’s optional), then another three digits, then another optional single character, and then four digits. I won’t go into more detail here because I know future boots are reading this and I don’t want to spoil the fun of figuring this stuff out. I will say this, though: STOP BEING AFRAID OF REGULAR EXPRESSIONS. I was, and I shouldn’t have been. They don’t look at all like plain English and that’s literally the only hard thing about them. There’s this fun site called Rubular where you can enter in whatever text you want and then see what happens when you run regex’s on it, in real time. 

With such a powerful tool, you’d think our day-long pairing session would have gotten easier. And it did, but we still felt rusty. So we tabled our challenge to revisit later, during my Pairing is Caring session. Pairing is Caring is an onsite mentorship program where really good teachers use the Socratic method to help you pull your best work out of yourself. After closing the 8-5 “workday” (almost no one leaves before 7 unless it’s for a quick dinner) we met up with our mentor, who patiently and firmly hammered home the principle of single responsibility. That’s when we got unstuck.

Single responsibility means that each method we write in Ruby should do exactly one thing. You wouldn’t want the person handling the money at the restaurant touching your food in the kitchen, so why would you want to get input and return a result in the same method? Following the SRP meant our code was not only cleaner and more elegant, but also less vulnerable against the kind of bugs that render programs unusable all at once. When we broke stuff during coding, we only broke one set of stuff at a time. We finished the challenge on our own shortly after our mentor wrapped up the hour.

Throughout the whole process, we were assured that we were doing a great job, even when we didn’t feel like we were. This assurance was coupled with an expectation that we solve the problem all on our own, so we never got any more than the vaguest of hints to keep us on the right track. We spent at least as much time doing our own research as we spent asking questions, and the balance was empowering in retrospect. In the moment, though, I occasionally found myself irritated that we weren’t just given the right answer when we felt stuck; my childhood traditional education lasted long enough to create plenty of bad habits, and they’re dying hard.

There were eight core challenges today, all of them based on algorithms. That’s kind of the theme for Week 1. I haven’t touched any of the stretch challenges so far, but that doesn’t bug me too much, because our final result on that first beast of a challenge worked cleanly and handled a lot of different types of input with ease. I’d rather understand three things very well than fly through six exercises without pausing to reflect.

Once again, this blog has taken me a half hour past my healthiest bedtime, which means I’ll either have to start truncating my posts, writing more on the subway, or finding a way to get out earlier each day. Not blogging is not an option. When I wake up tomorrow, I know I’ll remember more about today because I wrote about it

It’s not like I’ll need too much sleep tonight anyway. I’m already feeling performance adrenaline starting to bubble up. See, there’s gonna be a talent show tomorrow, and I brought my guitar in this morning. Once again, tomorrow is coming sooner than I expected, and I can’t wait. 

Day One at Dev Bootcamp

Author’s note: This post is way more epic if you start playing the embedded video before you start reading it. Trust me.

7:14 am They told us to get there ten minutes early and I am right on time. I’m seated facing the rear of the train, barreling towards a future I can’t see. The sun is battling the morning clouds for sky space. I think it’s winning. I hope it wins. I’m struck by the realization that everyone on this train has a reason to be here and a place they’re going. For all I know, each silent stranger is also going somewhere today that will change their lives. I send out as many good vibes as I can muster. I’m not sure if they’ll stick. I hope they stick. I am listening to This Will Destroy You at full volume. It’s not a soundtrack. It is a promise. The music shimmers, swells, soars, stills, shakes, sunders. I am ready to be destroyed. I am ready to rebuild myself. Everything I have done leading up to today is gone. My memories are just the stories I tell myself about how I got  here. I feel underprepared this morning, because I have told myself a story of opportunities missed. I did not remember to write down the small and huge victories that kept me up late at night, smiling at the progress I was making. Wherever I actually am, I am much closer to where I’m going than I was nine weeks ago. This feels like the first day of school. This feels like the first day of summer camp. My lunch is packed. I have forgotten my mittens. I wonder whether the teachers will be nice. I wonder whether I will make new friends. The train veers and comes close enough to the one next to it that for a moment I can see another room full of lives, moving as fast as mine, and my awareness expands and I realize the world will be alright no matter what I accomplish today. I will be alright too. And now we are underground. I am walled in but moving fast. My path is laid out and it will take me exactly where I’m meant to go. I put away my headphones and focus on my breath. This is not meditation. This is a warmup. This is my stop. This is it. 9:19 am I’m in the bathroom and there are ten more minutes of waiting before everything starts to happen. We all entered the DBC space at 8am, greeted by a volley of high fives and Gangnam Style blasting on the PA. After a few icebreakers, we spent an hour introducing ourselves one by one: name, cohort mascot, quirk. New boots (what up, Bobolinks!) and TA’s shared the reason they were here. The Salamanders and Coyotes, respectively starting Phases 2 and 3, shared tweet-sized advice for the newbies: Work your hardest. Remember why you’re here. Always be asking questions. Get sleep. Eat food. Enjoy the experience. And never ever push a commit to the master repository. That last one was phrased “Don’t push the master or you’ll get slapped” and for a moment my eyes were darting around the room, looking for the coder whose mastery had sparked a violent streak. Then I realized the guy was just talking about GitHub. Between the intros and this stillness was a catered Day One breakfast and a bit of time to mingle. I took the opportunity to ask everyone I could about what Week 1 would be like. “They pile so much on you, and then you work late to try and understand it all, and then you wake up and they pile so much more on you,” went one reply. So now I’m in the bathroom writing notes, barely following the letter of the “no phones” rule, which unfortunately seems to extend to Wi-Fi device permissions. Oh well. I’m sure I’ll be too busy coding to care about Twitter. 2:11 pm So many introductions, so many walkthroughs, so much controlled chaos. I’m starting to realize I’ll need to hold back at least a few concrete details of my experience in this blog, so as not to spoil surprises or give away answers. Still, there are moments that stand out, even without detailed explanation. A classic get-to-know-you name game got tweaked into a group refactoring challenge. There was a brief discussion about how to stay outside our comfort zones without slipping into panic as the weeks progressed. Boots gave impromptu talks on pairing, open source code, proper gong technique, speed skating. We learned about personal truth and why The Boy really Cried Wolf. An experienced coordinator cheerfully informed us that she would be here for us, whatever we needed. An experienced boot gleefully informed me that I was going to just LOVE this weekend’s group coding challenge. I’m looking forward to my inevitable Sudoku nightmare tonight. We are out of the gates now, and we’re coding. In Phase 0 we paired with one another in hour long sessions, tackling one challenge before parting ways. Now we are split into four-person groups and told we’ll be pairing with one of our groupmates for the entire day. There are six core coding challenges to complete, along with two “stretch” challenges for those who finish early or stay late. My partner is new to the Mac environment and rusty on version control. Not a problem. He gets to practice the basics, and I get to practice explaining them clearly and concisely. We’re both doing our best and scratching our heads and fist bumping when we figure things out, and it doesn’t even matter that we might be a little behind the average pace, except it kind of does, because I’ll need to get home by 11 if I want to sleep for more than 6 hours. I shrug off the stress and resolve to focus only on the present challenge and give it all I can. Things will work out. Help will come if I ask for it. 5:02 pm Pair programming is like playing a multiplayer video game that rewards you constantly for hours and then hits you with a difficulty spike so gnarly that you wonder whether the rewards were some kind of elaborate and sadistic setup. We were trucking along, plowing through engaging but basic material, and then suddenly 90 minutes had gone by and there was a cluster of TA’s looking over our shoulders and I can’t remember whether they dropped more F bombs or we did but there were a lot of F bombs being dropped. Turns out we had veered off course early on by changing two things when we only needed to change one, and the test file had assumed we would never change the second thing, and so we sat stuck until we thought to start from scratch and do the one thing, after which there was much “oh my GOD”ing and “you gotta be SHITTING me”ing and wailing and gnashing of keyboards. I couldn’t stop grinning through the whole thing though. I love a good challenge, and that was one hell of a good challenge. Afterwards, I’d learn that most of the pairs had gotten stuck on that finicky piece of code, and I felt good for not beating myself up when I had the chance. At this point, my partner was exhausted from the mental effort and ready to turn in for the day. But first, we had to attend our introductory Engineering Empathy session. The topic was feedback. Great companies thrive on it, failing companies stumble over it. A.S.K., actionable specific kind. The instructor stresses that the kindest feedback can be the hardest to hear. Kindness is not niceness. Kindness is loving and fearless. Kindness is respecting your fellow boot enough to tell them that it’s gut check time, that they will wash out at their current pace. It’s telling your partner that their pairing style is crippling your effectiveness. It’s admitting that you might not have the whole story, while standing firm on the validity of your piece of the story. Parallels are drawn between the Compass of Shame and the ways we can choose to deal with feedback. The instructor is given a tissue box. It’s full of feedback that’s difficult to process. He hits himself over the head with it, attacking himself. He throws it at the giver, attacking others. He refuses to take the box, avoiding any confrontation. He drops the box and walks away, withdrawing from the stress. Then he takes one tissue out of the box. It’s the part of the feedback that he can actually use. He does not actually use it. So far, we are all hale and hearty here at Dev Bootcamp. 9:13 pm My partner was tapped out at 5:00. That left me alone and eager to see how much of the code I could understand all by myself. I mostly flew through a basic refactoring exercise with one baffling capitalization requirement. Ditto for the first half of a method chaining exercise. I took a brief break to FaceTime with my daughter. We blew raspberries at each other for five minutes and then I told her a made-up story about Pikachu. My wife had gotten her hair done and she looked fantastic. For the first time since I’d left, I felt a little homesick. We hung up and I ascended the elevator to the seventh floor, ready to get back into my rhythm. Then came my second difficulty spike: an inscrutable chain of methods, a single-line gauntlet that needed a cleaner look. Prime numbers were involved. Squares too. It was a mess. Again, I shortly found myself joined by a bemused trio of instructors, and I felt no performance pressure because this was now our code and we were going to solve it together, damn it. We teased out an artful solution and patted each other on the back, having gained a deeper understanding of array iteration and deletion methods. It was getting late now, and I felt a pang of pressure at the realization that the day’s final core challenge was still untouched. Luckily, it was a challenge I’d already completed by overachieving during Phase 0 prep, and once I worked up the courage to ask a Phase 3 boot to pair up, we knocked out a solution that was elegant and D.R.Y. (Don’t Repeat Yourself; if your code uses the same line or a version of it multiple times, you can write it better). I’m heading home earlier than I expected to, and I’m almost shaking with joy. I made it through my first day without slipping behind. Walking down Grand, I whipped out my phone and scheduled a mentoring session for tomorrow, because one of those stretch challenges I missed looks too juicy to pass up. I’m doing this. I can do this. 11:38 pm In bed, fading, I click Publish on my blog post and put my laptop away. This will almost certainly be my last long blog post for at least a week. Maybe until this is finished. But maybe not. Where I’m from, it’s already tomorrow. I’ll try not to get too far ahead of myself.