Dev Bootcamp Archives - Gavin St. Ours
This is it. Eight days left in Dev Bootcamp, counting the weekend. (The weekends always count during DBC.)
This morning, we Banana Slugs will pitch our final project ideas to all the gathered cohorts and instructors. They will vote for their favorite ideas, and once we’re done, we’ll break into groups and build the four most popular apps with Rails. We’ll have one week.
It’s going to be a sprint until we cross the finish line. Next Thursday, we’ll present our finished products to everyone, and next Friday will be Hiring Day, our round of speed interviews with employers. And then we graduate. And then we go to the bar. And then the rest of our lives begin.
So, yeah, not so much with the sleeping this week.
(By the way, I’m posting a ton of odds and ends over on Tumblr as I discover San Francisco.)
Something pretty incredible happened during this sixth week of Dev Bootcamp. I found my working groove, a place that I’d only found when recording music or writing fiction, a place where hours slip by while I pour myself into the act of creating, smitten by the work, delighted and surprised as it comes alive from my fingertips. Now, I can add coding to the list.
Yesterday, we were challenged to build anything we want. It was dubbed “The Hardest Challenge Yet”. I attempted to build an interactive fiction app, an idea I’ve thought about since grad school. Last night, just before eleven, I got the core functionality to work. The logic is in place, it reads and writes to the database, and it does the things I imagined it would. I spent most of the day in that groove (stepping away for a counseling session, yoga class, and excellent guest speaker Steve Huffman), and when I got the thing to work, it felt amazing.
This thing that has lived in my imagination was alive on my screen. It’s not pretty and has a million things wrong or missing, but it works.
Today we have our assessment interviews for phase three. I don’t feel any of the stress or panic I felt about my interview at the end of phase one, but I think that’s because I’ve been too busy and tired this week to let it rest on my mind for more than a few seconds at a time.
For the Sea Lions, it’s hiring day. As I write this, there’s some Bob Marley pumping through the speakers as people prepare the room for employers to arrive. We’re about to huddle up.
This week, focusing on web fundamentals, turned out to be a tough one. We built on the database concepts we learned last week and were introduced to Sinatra, a lightweight framework for Ruby web app. It seems like a great way to get acquainted with the Rails conventions we’ll use in Phase Three.
I’ve felt like I’ve been flailing harder against the concepts and code than I have in other weeks. I’ve been frustrated with myself for having trouble with ActiveRecord and routes, but I’m lucky to be working with so many smart and generous people who are willing to help me out during late-night coding sessions. I’ve learned what it feels like when I’ve hit my wall and can’t absorb any new information, usually around eleven or so at night. I’ve learned a massive amount this week and feel like I’m getting my arms around the things that have troubled me, but I still have a long way to go.
On the other hand, my years of experience with HTML and CSS have helped me out in a few of the front-end challenges. It’s nice to have one thing I’m really good at even though I’m struggling with others. I suppose that’s the whole idea of Dev Bootcamp. We’re supposed to be sprinting through the material with only one foot touching ground at any moment. It’s helpful, every once in a while, to look back and remind myself how much ground I’ve covered.
I’m spending this weekend catching up on core challenges, finishing a group project, and getting ready for week five, which will focus on front end development.
Yesterday was the last day of Phase One in Dev Bootcamp. The first three weeks are in the bag. It feels like so much longer than three weeks, and I don’t think I’ve ever learned so much so quickly. Each day was packed down to the minute with challenges, readings, experimentation, mentor meetings, guest speakers, and countless hours of flailing against new concepts and unfamiliar code I broke through and understood it. I wish I’d been better about blogging during the first three weeks, but I’ll do my best to write more during the remaining six.
The first three weeks, known as Phase One, focused on modeling. We worked on Ruby basics the first week, dove into object-oriented programming the second, and got our feet wet in databases the third. I feel like I have a small but solid foundation on which I can build during the upcoming weeks.
But today, I’m going to take this beautiful Saturday afternoon off. I’m meeting up with some fellow boots in Golden Gate Park to enjoy the sun before heading home tonight and getting started on my prep work for week four.
Music has always been one of the most important parts of my life. This year, I started a music journal with my Rdio account. Whenever a song grabs me, pops into my head, or somehow crosses paths with me, I add it to a playlist for that month. As mixes, they’re all over the map and might sound jarring if listened to the whole way through, but each song reminds me of a moment from that month. Here are a few from February.
The White Stripes – “Seven Nation Army”: This is the unofficial rally song for Baltimore Ravens fans and was the official song of our Super Bowl Party.
Blur – “Parklife”: I went to brunch with Sophia for one of the last times before heading to Dev Bootcamp and one of the shops in Decatur played this song outside on the patio. I hadn’t heard it in years.
Baauer – “Harlem Shake”: This silly Internet meme was one of the first things my San Francisco roommates and I bonded over.
Here’s the whole thing, in case you’re interested.
Tomorrow, I’ll start my March playlist. I’m already grateful that I’ve started doing this.
My first week of Dev Bootcamp is done. This morning we received our first weekly assessment via email. It’s a series of five challenges designed for us to apply things we’ve learned so far, and the DBC staff will use it to gauge how we’re doing. At first glance, it looked daunting. Maybe it’s because I was tired or hadn’t made breakfast for myself yet. Also, I had a handful of core challenges left over from the week that I needed to finish by the end of the weekend. I had another mountain of work looming over me, and there was a long way to go before reaching Mordor. That metaphor was clumsy and embarrassing, but I’m too tired to fix it. Just pretend it was genius.
So there I was, looking at a whole new heap o’ work, so I did the thing any responsible, mature adult would: I went shopping at Target.
This morning, I woke up with the prelude to the hint of a tickle in my throat. Hell no, I thought. I must be dehydrated. There’s no way I’m getting sick. Getting sick is not an option. I haven’t been drinking enough water this week, that’s all. I went into to the kitchen to get some whenever I thought of it, but more often than not, my head had been buried in pair programming challenges. A water bottle, I decided, would solve the problem. If I have water in front of me, I’ll drink it, right? I bought a bottle of multivitamins, too. Water’s great and all that, but I’m not screwing around here. I’m working harder than I’ve ever worked in my life, and my body needs to be in top shape.
As a side effect, I’ve lost weight. I’m not sure how much, but I used a skinnier belt notch this morning. It’s probably a combination of my daily hikes up the San Francisco hills between DBC and my apartment, the smaller meals I eat, and the extra energy it takes to learn at this kind of a pace.
I hadn’t considered my body a machine before this week, but now that I’m hyper-aware of the things I put into it and the things I expect it to do, I’ve become more concerned about how it’s running. Verdict: so far, so good. I’m drinking more water now, taking care to eat as well as possible, and taking breaks between long stretches of work.
My walk to Target ended up being constructive for a non-obvious reason. It got me out of the work cycle for a half hour. It was a beautiful morning in San Francisco today. It was nice to get a little air and sun and explore a new corner of the city, and I was surprised by how much it supercharged me. When I climbed back up to the DBC office, my assessment no longer looked daunting. Challenging, absolutely, but I had no doubt I could tackle it.
It’s almost 11 p.m. and I’m about to finish the fifth and final exercise in the assessment. Tomorrow, I’ll wrap up my last few core challenges, read the first two chapters in Practical Object-Oriented Design in Ruby (POODR to the cool kids), and jump into week two. I feel like I’m finding my stride here.
Because we have an odd number of boots in our Banana Slug cohort, I worked solo during Tuesday morning’s pairing session. It felt strange to work by myself again. On one hand, I was able to work faster, but the trade-off was that I didn’t move through the challenges as deeply as I would have by talking through each problem with a partner. I looked at the code others wrote and was able to refactor a bit, but solo work illustrated the value of pair programming. But more importantly, I missed having the human interaction. A huge part of pair programming is getting to know each other, understanding how we operate, and then untangling a challenge together.
During lunch, we had our photos taken. It felt like school picture day, but way less awkward. The photographer was awesome, and I think we all look like rock stars.
In the afternoon, we paired up and worked through the second half of challenges. Ruby Docs is one of the most powerful tools in our kit, but it also usually pays of to have a conversation with a Google search and see if anyone has struggled with a similar concept. There’s a teeming biomass of programming knowledge out there, and tapping into it can be fruitful. That sentence was gross, but you know what I mean.
Tuesday night was our first mentor night, which meant pizza, beer, and a room full of very smart people eager to share all of their knowledge. I met with one of my mentors, and he was amazing. We used a white board to illustrate how arrays handle data, looked through some of my code from that day, and talked about San Francisco. When we meet again in two weeks, I’m sure I’ll have a long list of new questions for him.
I got home around eleven Tuesday night and worked on a challenge from earlier that day, but my brain was swimming with arrays and abstract data structures just out of my grasp.
Wednesday was an emotional day. We spent a good part of the morning talking about empathy and how to deal with the full weight of what we’re trying to pull off here. I think I knew it on a subconscious level, but the core truth of what’s happening here was laid out for us: Ruby could be obsolete in a few years, as could any programming language. What we’re really learning is how to be empathetic engineers, co-workers, friends, family, and human beings. Sure, we’re learning a tremendous amount about coding, but if we can be empathetic to how another person feels, works, and learns, the technical stuff will come along on its own. It’s much easier to talk through a problem when you can trust that the person you’re working with wants to understand how you feel, too.
The simple act of being aware of each other’s struggles, stress, elation, sadness, hunger, homesickness, confusion, and stress (again) made the entire room feel like a safer, more understanding place. It’s difficult to explain, but I’ll continue to try throughout my weeks here. It’s been a profound and positive experience so far.
But damn to I miss Sophia, Willow, and Rocky.
I knew this was going to be intense, but I got my first taste of how intense it will be. And I love it.
My cohort is called the Banana Slugs, and all fourteen of us waited outside the locked doors before class. We introduced each other. Some people I recognized from our Facebook group, others I’d met the night before at a pre-DBC walk to the Golden Gate Bridge. Which, by the way, is stunning in person.
The door swung open and the previous cohort (the Sea Lions) crowded the entrance. They screamed, cheered, and high-fived us while “Gangnam Style” blasted from the sound system. It felt like stepping into the Internet.
We gathered up, introduced each other, and did some icebreakers that had us hugging and laughing with other boots within our first fifteen minutes. A quick breakfast later, the Banana Slugs regrouped in a side room to run through a couple activities go over the day.
And then we pair programmed. I’d never done it before, and it took some getting used to. I’m still not used to it. The way it works is there are two monitors, two mouses, and two keyboards connected to the same Mac, and you work with a partner to tackle some of the programming challenges. Some of the challenges were familiar from the prep work I’d done over the past few months, others were new. (A couple reminded me of Chris Pine’s excellent How to Program).
And just as I was got into a groove, it was time for lunch. Today, they brought us sandwiches, and I was surprised how hungry I was. I’ll need to remember to eat, to drink water, and to sleep. That was advice echoed by the Sea Lions. They’d been at DBC for three weeks and have six more to go. Even though they’re only a third of the way in, the seem like veterans.
We met up as a cohort and went through some logistics with Brick and Anne, two of our instructors. We looked at the nine weeks as a whole, talked about lockers, the kitchen, and how and when to access the building.
And then we went back into pair programming for the afternoon. We picked new partners and dove into the remainder of the challenges. The instructors stick around from nine in the morning to six in the evening, but we’re expected to stick around until we finish all of our core challenges (and have beaten our heads against the stretch challenges long enough until our eyes are mush).
It was tempting to stay late on my first day and dig deep into a particular challenge: write a command-line version of the game Battleship, but as I heard from some of the Sea Lions and all of the instructors, it’s important to pace yourself, especially during the first few days. So I came home, more tired than I’d realized, looked over some of the code my fellow boots had written, now I’m going to bed.
I’m ready for day two!
It’s a basic thing, but I didn’t know it until today. In Sublime Text 2, you can press Command-Shift-P and harness most of the program’s magic without ever leaving your keyboard. Want to change the syntax to Ruby? Bam. Want to convert all your tabs to spaces (if you’ve forgotten to change the prefs to do that for you)? Bam again. Where have you been all my life, Command-Shift-P?
Also, Command-B runs my code, so long as I don’t need to use
gets.chomp or get any input from the user at the command line. Super-quick, super-awesome. Like I said, they’re two small, very basic tricks, but I have a feeling I’ll use them every day.