GitHub

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.

Day One: Catching Up, Checking In, Setting Out

Ok, I’m in.

Phase 0 has officially begun. Am I as prepared as I thought I’d be? Absolutely not. Am I scared? Absolutely yes. Can I do this? Absolutely maybe.

I didn’t get through all the tutorials on time, so now I’m scrambling to catch up. That’s why I haven’t been blogging much. I could go on for a long time about mindfulness and workflow and trusting in the next step, but maybe that’ll be next post. For now, a brief rundown on the work I have cut out for me this week:

One scheduled intro session via video. I have to bring questions. I have to have questions. I have to learn what questions I have. I hav until Thursday to learn.

Nine self-teaching challenges. I say self-teaching because I’m the one going through them myself, and also because the lessons teach you themselves, ie I am learning how GitHub works because the lessons are posted in GitHub and the first few lessons are about using GitHub. Very clever. Very efficient. By the time I finished the first challenge, I had a Git account set up and a vague understanding of how version control works. My current task involves cloning to a local repository and learning about open source licensing. It’s briskly paced. It’s fun.

Each challenge requires reflection. I have to write down what amounts to a brief essay every time I learn something, and upload that essay alongside the stuff I just learned. It plays like a reinforcement/debriefing strategy, and it’s working so far. I think. This is still very new.

I had a moment of panic today when another boot sent me an email asking if I wanted to pair program with them and if I knew how, because he didn’t, and I realized that 1) yes, I did want to pair with them and 2) no, I had no earthly idea how and 3) please help me I’m scared. I still haven’t responded to that email, but that’s next on my daily to-do list; if I can’t get over my need for a perfect solution to every problem that presents itself, flawless on the first try, I’ll be washed up before I even begin. This email is a problem that only has imperfect solutions. I need to bite the bullet, admit to what I don’t know, and pick this other guy’s brain. Maybe we’ll figure out the solution together.

I wish I had more time to say what’s on my mind about this process. I’m anxious and excited and puzzled and interested all at once. The way they set it up, it’s like a meeting agenda mixed with a point-and-click adventure game. I need to do things in the right order, but there’s discovery at every turn. It’s wild. You should try it.

Since we last spoke, I know a lot more HTML and a little more JavaScript; I still need a little more of the former and a lot more of the latter. This’ll be the last you hear from me until I get those prerequisites nailed down. It’s one thing to augment understanding by blogging, but it’s another to spin wheels while work sits unfinished.

Priorities. I’ll see you soon.

Follow-Up: The Scoop on Dev Bootcamp

Ok, maybe not “the” scoop. But it’s my scoop. After connecting with several DBC grads via email, Facebook, and Twitter, I know what to expect from Dev Bootcamp. At least I think I do.

This post marks the gripping conclusion of the search I started in this other post. Check the comments in that one for answers, too. Dave Hoover, who runs the Chicago DBC, stopped by to provide some helpful numbers and guidance.

To get my information, I tapped family networks for knowledgeable contacts, talked to people who have hired (and rejected) applicants with a Dev Bootcamp pedigree, asked DBC admissions staff to introduce me to boots, scoured the blogosphere for grads with current contact info, pestered Twitter users with DBC credentials in their profiles, and used an app called BootieTracker, created by a team of boots, to locate Chicago-area students and message them on Facebook with my questions.

I asked a ton of questions.

I wanted to know if the life-changing experience touted on the website was for real, if I would get help when I needed it, if the journey would be worth the effort.

I wanted to know whether people really went from 0 to 60 with no prior programming experience, whether a lot of people were getting kicked out to inflate graduation rates, whether DBC’s stats – 85% hired at $75K per year on average – were accurate.

I wanted to know how people handled the grueling pace of the program, how they felt about pair programming, how they struggled and overcame their setbacks, how they fared after graduation.

I wanted to know what boots wished they had known going in, what the program looked and felt like, what tech companies thought of Dev Bootcamp graduates, what grads took away from the experience as a whole.

I wanted to know everything. That’s what I generally tend to want. And I never get it. But I can get close. And I feel like I got close with this round of research. Close enough that I’ll be plunking down my deposit this week and focusing all my energy on Phase 0 prep. Let’s go over the info that cemented my decision.

Bullet points? Bullet points…

  • Most boots graduate. Everyone I spoke with reinforced Dev Bootcamp’s claim that the overwhelming majority of boots complete the program. Though a few do get asked to leave, and others drop out, those are the exceptions that prove the rule. In general, if Dev Bootcamp thinks you’re passionate enough to get accepted, you’ll be passionate enough to see things through. (This only applies to Phases 1-3, which take place onsite. The in-home Phase 0 might have a higher drop rate, but the nature of my search made it impossible for me to figure that out. And I was less interested in doing so, because losing steam at the start isn’t too costly; if you drop within the first three weeks of the intro phase, you get all your tuition back except for the deposit.)
  • Apprentices get paid, too. When I first looked at DBC, the path to becoming a junior developer sounded like this: 1) Apply. 2) Get in. 3) Work hard. 4) Poof! 5) You’re a junior developer. Nope. Not even close. The reality is more like this: 1) Apply. 2) Get in, start learning. 3) Work as hard as you can. 4) Learn as much as you can on your own time. 5) Get a job where you can keep learning on the clock. 6) Learn at work, after work, and on weekends for several months. 7) Somewhere in there, you become a junior developer. For a lot of graduates, step 5 means starting out as an apprentice, someone who does very basic stuff for the company while learning more complex stuff for themselves over 3 to 6 months, after which they either say goodbye (repeat step 5) or stick around as a real developer (step 7 completed, now do step 6 for the rest of your life). The good news is that apprentices in Chicago still make a living wage, anywhere from $40,000-$55,000 a year. Not a bad gig for a fresh-faced boot.
  • Repeating phases is a thing. Buried beneath the “Intensive 9-Week Program” branding is a deep desire to see boots succeed. Students invest a lot in DBC, and it looks like the investment is mutual. These guys really don’t want you to fail. So if you’re faltering at the end of a phase, you can retake it one more time to lock it in. Boots repeat Phase 2 the most. Phase 3 can’t be repeated, because it’s the final project and career planning phase, less about pure learning and more about applying principles in real-world terms. Some boots recommended that I budget extra time and money in case I need to rerun a phase or two. I’m glad I got this information before I settled on a rent arrangement for my stay in Chicago!
  • The command line is your best frienemy. When grads gave me advice about how to prep for Phase 0, learning the command line (Terminal on my MacBook) was the most emphatic recommendation. I need to practice navigating and managing folders and files, calling up help screens and manuals, and learning shortcuts to streamline my time. Since this work is all about the code, and the code is running in the command line, I must choose to befriend it or fight it every step of the way. Those I spoke with couldn’t stress it enough to me; I can’t stress it enough to anyone reading this for help.
  • Less HTML, more JavaScript. Dev Bootcamp primarily teaches Ruby, Rails, Javascript, and basic HTML/CSS. Of the four, HTML/CSS seems to be stressed the least. One graduate said I should refresh myself on the bare-bones basics and then get back to the Ruby and JavaScript stuff. Still, I shouldn’t beat myself over the head with JS, though, since DBC does a good job of teaching everything at the right time, and Ruby comes first. I was told to get the Code Academy JavaScript track done and leave it at that.
  • Pair programming can help…and hurt. Working in tandem is a great way to accelerate your growth, if you and your partner have similar proficiency and learning styles. If not, the imbalance can be a hurdle. Working with someone who leaves you in the dust could inspire you to push yourself that much harder. But it could be discouraging, and someone used to functioning at a faster pace may not take the time to reach back and help you get on their level. Working with someone much slower than you might feel like a drag on your time and energy, though teaching a concept is often the best way to learn it. However you feel about pair programming, it’s going to happen, so be prepared to work empathetically with other human beings. And remember to speak up if you feel yourself floundering, because…
  • Asking for help is good. And necessary. Dev Bootcamp says this, current students say this, graduates say this, employers say this. Knowing when you’re stuck, and looking outside yourself to get unstuck, is a crucial habit to develop. Use Google, Stack Overflow, GitHub, teachers, mentors, peers, whatever you have at your disposal. The students who knew how to swallow pride and ask for help grasped concepts faster and got more done each day. Being humble is always better than staying in the dark.
  • Experience matters less than passion. Some of the people I talked to had walked away from computer science majors. Some came from business or teaching backgrounds and had spent a couple years learning to code in order to solve work-specific problems. Some hadn’t touched code before they started at Dev Bootcamp. But every single grad I talked to was passionate about programming. It’s passion, not knowledge or expertise, that keeps someone on campus for 14 hours a day during the week and 10 on weekends. Dev Bootcamp gives people the tools they need to become “world-class beginners;” you don’t need to bring many tools of your own. But sharpening them takes a lot of time and effort, and passion makes the effort worth it. By the end of the three phases, those who showed the most hunger and drive were the ones who thrived.
  • Success is in the struggle. I had to take some time with this one. I asked several grads, “What were some habits of successful students compared to students who struggled with the material?” One answer: “…Well, what do you mean by success vs. struggle?” Another: “Dude, success comes from the struggle. You’re thinking about it wrong.” My bad. I hadn’t let it sink in that every single person at DBC faces an uphill battle. Strike that, we’re talking mountains to climb. And the successful people are the ones who get in there and strengthen their climbing muscles, the ones who learn by slipping how to grip better, the ones who aren’t satisfied with climbing only the mountains they know they’ll scale on the first try. If I’m ready to feel helpless, hopeless, and afraid, I’m ready to push through that and get to the wisdom that lies beyond.
  • You have to find your own cheese. More about the learning environment: This isn’t a classroom where you listen to lectures about mazes and cheese all day, poring over maze theory and case studies of dairy farms, and then take a test on paper with a closed book and multiple-choice questions. It’s a place where they throw a ton of information at you at the beginning of the day and then say, “We’re dropping you into a labyrinth. There’s some cheese in there. Go get it.” On some days, you’ll find it in an hour and spend the rest of the day teaching others how to find it or building a new labyrinth of your own. On others, you won’t find the cheese at all. The DBC curriculum is designed to reward experimentation and prepare students for a career where they’ll fail at things the first time, all the time. This flies in the face of an academic culture that rewards keeping your mouth shut and not opening it unless you know you know the right answer.
  • If you want the work, do the work. Employers stress that successful DBC hires are self-motivated and willing to push themselves outside their comfort zone. The grads that don’t get hired are the ones who stop learning once the program ends. Dev Bootcamp gives people a blueprint for self-instruction; if a person refuses to learn Java to get their dream job at a Java shop, that’s on them. Some of the graduates I talked to spent months sending out hundreds of applications and doing dozens of interviews. The word “hustle” came up several times. In essence, if you’re the type of person who can push themselves through a 100 hour a week commitment, you can push yourself into the workplace too. But you have to keep pushing, expanding your skillset and fleshing out your understanding by creating real projects on your own time and posting them to places like GitHub.
  • Learning never stops. If you want to be a programmer, there is never a point where you’re “done” educating yourself. Everyone I talked to said they spent big chunk of their free time attending programming events, tinkering with code, learning new languages, and so on. Senior-level programmers are the hot commodity in the web development world, and if you want to get there, you must several years of focus and dedication to take in all the information required to function at that level. Dev Bootcamp functions as a learning accelerator, and that function is twofold: in the coming months, I should expect to learn things faster than I ever have before, and I should expect to learn enough about how I learn to be able to teach myself new concepts as quickly as possible.
  • The rewards are real. Dev Bootcamp claims that 85% of grads get hired and that most of them are making upwards of $70,000 a year. Is this true? Yes and no. Check in with someone a couple months out of school and they’re probably apprenticing somewhere, building up their coding chops. Or they’re still searching for work while attending hackathons and making apps. Wait a year and check in again, and they’re likely working a job they love for pay that skews way closer to the advertised median. It’s all about who you ask, and when. Again, significant work is required to get significant results, but the results are easily achievable. It’s worth mentioning that people also felt their experiences represented those of their cohorts. There’s not a lot of variation in the stories I was told, which leads me to believe that no one’s BSing here.

Whew. That pretty much sums up what I’ve learned from my search. I’ll have plenty of firsthand information to share in due time, but you’ll have to settle for secondhand until I actually start my phases. The lessons I learned are pretty high-level; take away the first six points and this isn’t just advice about Dev Bootcamp. It’s about life. Which is why I’m so excited about it. Everyone I talked to said DBC changed their lives for the better. And no one had lost their passion for learning; if anything, passion intensified once boots graduated.

I love to learn. If I could choose any superpower, I’d want this one right here. If Dev Bootcamp can help me get a tiny bit closer to that level, then I’m in. Let’s do this.

Now, if you’ll excuse me, I have to go wrap my mind around recursion. Time to struggle.

April O’Neil, out.*

tl;dr It’s for real, it’s super difficult, and it’s worth every penny of the $12K tuition if you’re willing to invest the time as well as the money. But only if you love programming. If it’s all about the financial upside for you, get out while you still can.

 
*Don’t ever do a Google Image search for April O’Neil. Please trust me on this, and enjoy the default post image for now.