Dev Bootcamp Week 2

Time feels strange. On one hand I can't believe two weeks of DBC have already passed, and on another hand I can't believe only two weeks of DBC have passed. The amount of material we covered this week exponentially increased from the first week.

While the first week primarily focused on reviewing ruby syntax and building simple algorithms, week two began to dive into object-oriented programming (OOP). Last weekend the teachers highly recommended us to read Practical Object Oriented Design in Ruby (POODR) by Sandi Metz. I initially skimmed through the book, as reading it in detail would've taken me a few weeks. Overall it was a very well written, and I was able to pull out some key points, however I did not solidify a foundation into OOP like I would've liked.

The earlier part of the week tasked us with different challenges to test our knowledge of OOP. One challenge in particular asked us to create different cookie classes for a bakery using inheritance. I found this part of the exercise to be easy although when we were asked to then shift our initial design from inheritance do composition with factories I really struggled. However, I knew POODR had chapters that covered these topics in depth, so I spent my mornings diving into these areas. After reading more about these concepts, I am feeling much more confident in my understanding. I completed the bakery challenge again over the weekend after reading POODR in more detail and found my solution to be more elegant, and the ideas to come more naturally.

Two other areas we began exploring in more detail this week was the design of a program using models, views, and controllers (MVC) as well as database design and implementation. The databases covered were primarily sqlite3 and PostgreSQL although we researched some others as well.

By Friday we were split into teams to build a project from scratch using everything we had learned so far. My team decided to put a spin on a challenge we had in week 1, Ruby Racer, and give it a betting component as well as basing the game features on a classic racing game, Mario Kart. I believe this was the first time many of us had worked in a large group so it was interesting to implement the best practices for splitting up work amongst team members, bringing it all together, and working across multiple files. My partner and I concentrated on the model and view of the project, primarily the user interface as well as betting component and database structure, while our other two team members built the controller - the actual racing game itself. While this was a very simple project it was a great introduction to working with bigger teams and diffusing responsibility between team members as well as implementing model-view-controller patterns.

Aside from all the constant learning, challenges, and coding throughout the week our teachers set up a few extra activities that gave us some nice breaks. Yoga continues to be twice a week and I am really enjoying it. From my understanding we are doing some very introductory positions and it is extremely difficult. Every session I experience pain in a new area I never knew you could feel before, however I always feel great for the remainder of the day once our session is over. DBC also brought in Vinicius Vacanti, the founder of Yipit, to discuss his journey and how to take an idea and build a product from that. His talk was excellent, and intriguing to hear, especially considering how he is a self taught programmer, and make a significant shift from finance to technology in such a short time span.

One major change that really helped me this week was being able to stay with a few friends who live in the city. I felt after the first week that I was really cheating myself by having a 3 hour commute everyday and wanting to leave earlier than everyone else so I can make it home to get a proper amount of sleep. I am really appreciative of my friends giving me the opportunity to stay with them over the weeknights, and I now have no qualms about staying at DBC until whatever time we are all done working. Looking back at the difference between week 1 and week 2 I realize how much I missed in the later hours of the night, from impromptu lectures, final pushes on a challenge, to just grabbing a few drinks with friends.

Week 3 begins tomorrow, which marks the final week of Phase 1.