7 Amazing Lessons From Dev Bootcamp Week 1

17 Jun

photo of Dev Bootcamp Summer Cohort 2012 by fellow boot Asad Akbar

I just finished the first week of Dev Bootcamp, and I couldn’t be more excited to go back for week 2. The program is definitely not for the faint of heart. There is always an infinite number of things to do and learn, and not enough hours in the day.

I’ve been getting home around 9pm every day, and that’s considered early. A lot of people stay and work past midnight. I’m also lucky enough to have learned Ruby and Rails before, so I don’t have to scramble and learn EVERYTHING from scratch in just a week. However, I still learned A LOT last week, and I wanted to reflect on my learning and document it here before week 2:

1. There Is Always Sand and Water

One of the mentors had a great analogy for learning that I wanted to share. Let’s say your brain is a jar. First you can fill the jar with golf balls all the way to the top. Once you can’t fit in any more golf balls, you can add sand. And even once you’ve added all the possible sand, you can still add water to the jar.

The point is that when you first learning something, you’re grabbing the big (golf ball sized) concepts. However, the second and third time you learn the same thing, you get to fill in all the little gaps in your knowledge.

When I came to Dev Bootcamp, I’ve been working with Ruby for a while, so I knew all the big concepts. Yet, throughout the week I was able to pick up some other concepts that I skipped over initially because I didn’t understand them at the time and wanted to move on to the other big concepts or just missed them because I didn’t know enough to look for them.

2. Programming Is About Communication

I’ve always thought of a hacker as someone who sits in their college dorm or garage or a parent’s basement staring at the computer typing away all by him or herself. Yet, in reality, programming is a lot more social than it seems.

For most projects, programmers work in teams, and communication is a must. Someone will be looking at your code at some point (that someone can even be your future self), so it needs to be readable by other humans. Sometimes that means adding an additional few lines of code and sacrificing the elegance of one line of code just for easy readability.

3. You Can Learn Something Even From A Beginner

Since I’m one of the more advanced students at Dev Bootcamp, I ended up helping out beginner students a lot. However, in the process of helping one student, he ended up explaining recursion to me. Another student did a presentation about cases, which I didn’t fully grasp either the first time I learned about them, but it all came together during his presentation.

I guess this goes back to the Jar with Golf Balls, Sand, and Water analogy. We all pick up different bits and pieces when we’re learning, and magic happens when we’re able to exchange these different pieces with each other, helping each other fill in those knowledge gaps.

4. You Can’t Learn JavaScript On The Internet

We’re lucky enough to have JavaScript expert Marcus Phillips from Twitter help us learn JavaScript once a week. He gives us assignments to complete by googling around, then comes over and tells us why what we googled is wrong when we get stuck or confused, and how to do it correctly. I’m really thankful for having Marcus as a teacher.

5. Reasons For Pair Programming

At Dev Bootcamp, we spend half of our programming time pair programming. Here are some of the arguments for pair programming:

  • It increases efficiency, since programmers are less likely to wander off and read Facebook / Twitter / Gmail, etc. while working with another person.
  • If a programmer quits or gets fired (or gets hit by a truck), the impact is not as large, since there is another person at the company that understands the code base.
  • Bugs are resolved quicker, since the programers can fill each others gaps in knowledge and catch small things like forgetting an end bracket or making a spelling mistake.
  • When one programmer gets tired, he can take a break by letting the other person take over a bit while still helping out.

Overall, I enjoyed pair programming, since it was fun to work with other people, but I wouldn’t want to do it all day long all the time. For people who are more of introverts (like me), pair programming for too long can be extremely draining. I definitely need alone time to recharge. I’d love to pair with really good programmers in the future though, just to watch them code!

6. Good Programmers Refactor

One of the Dev Bootcamp teachers, who is known for writing really beautiful code, showed us the process he goes through to write beautiful code. He first writes out the answer and makes it work, then thinks about how to take out the redundant and long parts, then re-writes everything, then does that again and rewrites it all again. I’d like to get into the habit of doing the same thing 🙂

7. Nothing Compares To Actually Building Stuff

The first week of Dev Bootcamp is focused completely on getting the Ruby Basics, so we just had a bunch of exercises that we needed to complete by the end of the week. Some of the exercises, especially near the end, were pretty challenging and fun. However, nothing was as fun for me as trying to build a small rails app on Friday afternoon. I LOVE building stuff.

Advertisements

4 Responses to “7 Amazing Lessons From Dev Bootcamp Week 1”

  1. jauny78 June 18, 2012 at 7:14 am #

    Super nice post 🙂 I agree about pair programming. Hence I have never done it yet, and I think of my as a social person who loves working in teams, I like having my own time once in a while 🙂

  2. kjd (@RundBox) June 19, 2012 at 4:58 am #

    I love the way you write your posts! Its encouraging and fun to read.

    I would love to have someone to work with, at the moment Im all alone. Don’t have anyone to work with. That would make programming much more fun and you will learn and do a lot more things easier/quicker. Its hard when you can’t share ideas and stuff and if you get stuck you dont have anyone to ask. The internet yes but sometimes its hard to explain just what you need help with.

    Haha, well anyways, great posts! 🙂

    • Natasha Murashev June 19, 2012 at 6:53 am #

      Wow, thanks for the kind words. I checked out your comics, and they’re amazing. You have a real talent. If you combine your creativity with programming powers, there is no telling what you’ll do!

      Also, I’m starting a study group for a few friends in person and virtually on Saturdays at 10am PST. You’re welcome to join if you’d like. Let me know and I can email you some more details.

      • kjd (@RundBox) June 20, 2012 at 6:20 am #

        Hehe cool. Haven’t been doing so much with those comics for about a year now. The recent once I made I put on Facebook, but they are on swedish :p

        Ah that sound awesome! How will you do that? Like a forum or something? or a big chatroom? 🙂 It sounds fun but I’m busy on saturday, but mail me the details and Ill see what it is and see if I can make it some other saturday 🙂

        kjd__1@hotmail.com

        Cheers

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s