Entering the World of OSS

I am beginning the final quarter of my Bloc.io curriculum today.

This quarter is called the “Open-Source Apprenticeship,” and it asks me to create my own open-source software (OSS) project and to make ten significant contributions to other projects.

I started my coursework with Bloc almost exactly a year ago from the day I’m writing this: November 23rd, 2015. It was a huge leap of faith to trust an essentially unproven model: a web-development “bootcamp” taking place entirely online (I’ve stopped calling this a “boot-camp” for a variety of reasons that I’ll be writing about later). But I girded my loins and made the last step in a pivot away from my music career diving in head first to 40+ hour weeks full of study, practice, and 1-on-1 meetings with my mentors.

In that time I’ve learned so much! My coursework covered Back-End and Front-End web development technologies, mainly Ruby, Rails, Javascript, JQuery, and AngularJS. It focused on lots of “non-coding software developer skills,” like version control with git and GitHub, test-driven development with RSpec, and tons of code review and pair-programming with my professional mentors. In my third quarter, which I just finished, I got a chance to learn about the bigger-picture topics that are covered in computer science courses. I implemented many of the common data structures and algorithms, built an ORM reminiscent of Active Record, and made a Rails clone in order to better understand the decisions web engineers make in organizing code, handling routing concerns, and setting up a framework to handle the traditional MVC model.

So, with all that work behind me now, the prospect of jumping into the OSS community to see what I can accomplish is exciting, to say the least. I’ve been brainstorming on several different personal projects that have potential and taking note of tools that I use frequently that I could start to contribute to myself.

Some other goals I have for myself for the next three months are:

  • level up my Javascript skills
  • investigate different JS frameworks
  • find a great testing suite for Javascript development
  • making Pry another component of my Ruby debugging process
  • go to Chicago at least twice a month to meet other developers
  • clean up my prior projects from Bloc for my portfolio