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.
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.
If you’d like to learn more about how to make the most out of a bootcamp experience, read more in my book: How To… Learn To Code. Get Your Dream Job. Change Your Life.