This is blog post number 1 about my journey to becoming a software engineer.

One of the main reasons I want to complete the apprenticeship with BLOC is the mentor I will be assigned to. I am so curious who he/she will be! Before I get assigned to a mentor I have to complete the pre-work. In this case, pre-work means completing a bunch of modules on codeacademy. At first I thought I had to complete the pro-modules, too. I was a bit annoyed by that because they are not for free. After checking with my advisor Patrick Darmody, it turns out that the free modules are sufficient.

Make a Website

HTML and CSS Fundamentals

The courses above are clearly geared towards people who have never coded before. While I gained nothing from them, they certainly are a good way for newbies to get their feet wet.

Ruby Basics

This is a good course that teaches the basics of both the ruby programming language, and the concepts of object oriented programming.

Ruby on Rails Introduction

This course is really just an intro. Nevertheless, I found it useful since it covered important concepts such as the Ruby on Rails request cycle, the MVC principle (model-view-controller), and data table association (one-to-many and many-to-many). This module makes you create a few websites which gives you an initial idea about how powerful Ruby on Rails really is. If you stick to the conventions (that have been approved by a large part of the developer community), you get a lot of functionality out of the box. As always, when magic happens, one wonders about the details – as a beginner these would be overwhelming. BLOC promises during their into session online that they will teach me how to build a version of Ruby on Rails myself – we shall see 😉

Command Line Fundamentals

Command Line Fundamentals was an excellent course. Not only does it cover the essential commands every developer needs daily, it also teaches a few less known commands that can come very handy when coding. I especially enjoyed the part where they show how to customize your development environment. Tasks such as extending the $PATH variable and adding environment variables to the shell are very important when it comes to making applications run well.

Try Git and GitHub

Git and GitHub make every developer’s life easier. They are tools that cannot be omitted. However, the key to working with Git is to really understand what it does for you. I think of it as a time machine for your code base that has the ability to travel in parallel worlds. The course did an okay job going over the most common commands, but I think it failed getting a newbie to really understand what Git and GitHub are all about.