I have been hard at work completing the third of the four units in Bloc’s Software Engineering Track. This one, Software Engineering Principles, felt as though Bloc was taking the training wheels off. Generally, the first two units (Back End and Front End Development) had the implicit expectation that I get my code to work, but that it did not necessarily need to be pretty. As long as the Rspec tests passed or, in some instances, the web app I had built did nothing more than not crash, my work was approved.

In this section, the bar was much higher. From a purely technical perspective, the coursework was far more challenging, as it required me to build a Ruby object-relational map and a back end web framework using Rack. But on top of that, my mentor’s expectations in terms of the quality of my work were much higher. It was not enough to just make it work; my code also had to be more flexible and reusable, more efficiently structured.

It was an immense challenge for me, a year into my journey to learn to code. But now, BlocRecord and BlocWorks–the ORM and Ruby framework I built–are complete and approved. A developer could pull them off GitHub and build a back-end web application using them, in fact, complete with model-view-controller architecture, database management, and a search engine operation I built in myself. Be sure to check them out.

And now, on to the final section of the course: the open-source apprenticeship.