Dev Bootcamp logo

(image used with permission)

Dev Bootcamp is a code school that focuses on helping its students to become excellent beginners. Rather than claiming they can produce an amazing, high-level developer in a manner of months, they recognize the need for on-hand experience and instead work to teach a variety of skills that will help its graduates move into junior level positions to begin their careers as Devs.

Starting in December 2014, I graduated from the program on April 24, 2015. My experience in DBC was stressful and often complicated, but I am extremely proud of my performance in the program and was able to walk away with a great start to my portfolio and skillset.

The Reality

Dev Bootcamp does a good job of presenting its intensity upfront, and I have to admit, I did underestimate it a bit at first. It was a little hard to believe that it would actually cost as much time per week, or that I really would be losing 9 weeks of my life during the intensive- but that’s a pretty accurate description of life as a DBC student. They don’t call it bootcamp for no reason.

To succeed in a program like DBC, good stress management skills are essential. Knowing your limitations and boundaries well are a cornerstone of surviving that pressure, and it only mounts as you dive deeper into both the technical curriculum and the team ‘soft skills’ core skill. As graduation nears, the stakes only rise as projects grow in scope and you grow more self-directed.

Staff/instructors take a backseat while you learn how to not only integrate new technologies into projects on your own, but also how to even pick what you use- essential developer skills. Parsing enormous chunks of documentation quickly becomes a second-nature skill as you try to decide between different techs and play around with them before deciding. You learn how to sandbox, how to compare, and then how to clearly and concisely justify your decisions to your teachers and your team.

DBC instructors transition from a teaching role to that of senior dev’s supporting their juniors, though the imaginary workplace they build is hopefully an environment that doesn’t actually exist anywhere. In an effort to build independence and self-sufficiency in their students, they push and prod extremely hard so that students walk away strong and versatile- a strategy for which I’m very thankful.

The Result

Analytically, I can walk away from DBC with a few take-aways in my pocket:

Technical Skillset

  • A deep familiarity with Ruby is perhaps the core skill I acquired through DBC with great experience and knowledge of a variety of associated frameworks/tools, including Sinatra, Rails, Gosu, ActiveRecord, Mongoid, SASS, RSpec, and Jekyll.

  • Javascript, including JQuery, CoffeeScript, and Backbone, was a common companion throughout my webdev projects. HTML, and CSS skills were honed for months as I came to understand some of the intricacies of MVC web development. Understanding REST and HTTP came with time and regular practice.

  • PostgreSQL, SQLite and MongoDB were my database systems of choice, typically through ORM or ODMs in the various projects I built. I learned how to deploy through Heroku and AWS, and how to manage basic infrastructures with continuous integration through Travis and continuous deployment through Werker.

  • Version Control through Git and largely with Github is taught literally from day one, and proper git skills are a focus throughout the entire program. The importance of clean commit histories, managing merge conflicts, and the ability to use different git workflows are a cornerstone of assignment and project management.

Non-Technical Skillset

Agile methodology is taught and used extensively for many of our group projects. The philogophy of test-driven development is discussed at length, and the importance of a healthy and thorough testing suite is impressed heavily on students. Pair Programming is a regular mechanism for completing daily work assignments with pairs rotating throughout the cohort to help with exposure to many different skillsets and personality types.

Future Thirst

I’ve wanted to be a developer for some time now, and I very much enjoyed my time in Dev Bootcamp. I feel very prepared to begin my new career from a place of strength as a junior, and I can’t wait for the next phase of my journey. Now that I’ve got my developer fundamentals down, I can really push forward with these new wizard-skills I have.

With that in mind, I have a few goals inspired by my completion of Dev Bootcamp:

  • Polyglotism: Though Ruby is and will always be my first code love, I want to experience many other languages to discover what my true passion is. I want to be familiar with functional languages, imperative languages, and even strongly typed languages. Here’s what I’m thinking:
    1. C# for gamedev in Monogame/Unity
    2. Perl for future employment
    3. Clojure for functional language familiarity
    4. Rust for curiosity
    5. C++ for reading through ruby source
  • Game Dev: I want to build a large-scale, real game. I have some ideas for what I’m going to do, but there’s a lot of research to do before I dive headfirst into it.

  • Language Source: Someday, I want to be able to contribute to building a language- whether it’s something bleeding edge like Rust, or to help with efficiency of more established languages, this seems like so much fun.

  • Open Source: I want to find open source projects that I care about and contribute to them.

The Future…?

Who knows what it will actually bring? All I know for sure is that it’s going to be terrific, and that it’s time to get started.