Blog

Welcome to my blog! Join me on my journey through my time at Turing.






Module 1

Module 1.

I’ve never been one to sit down and write out my thoughts or feelings so a blog is a new venture to me so here goes nothing:

I made the decision to repeat module one and looking at my first time around and when I completed Mod 1: The Sequel (as I came to affectionately call it) I can honestly say it was the best decision that I could have made.

The first time around I struggled to really understand what was going on enough to be able to ask questions in regards to what it was that I didn’t know, which definitely took some getting used to. By the end I felt I had a decent understanding of what it was that my programs were doing and how they were doing it. That being said I was struggling with how to break things down and how to create solid testing for what I was creating.

When it boiled down to it the decision to repeat was one of the easiest and yet one of the most difficult decisions I’ve had to make in quite sometime. Admitting that you are not where you want to be and that you could use more time and help can be very overwhelming.

Mod 1 the sequel overall was a much more enjoyable experience, the difference in my ability to grasp the information was like night and day. My overall comfort with the information allowed me to help my fellow classmates more (which in turn reenforced my knowledge) and be far more involved in the community.

By far my favorite technical concept is the one that I struggled with the most: TDD. TDD (or Test Driven Development) was by far my achilles heel through all of my first go-around with mod 1 and part of my second time. I understood the importance of it and how it was there to help us but I struggled with what it was that should be tested and how it should be tested. The simple answer to that first question is EVERYTHING should be tested. One day I was looking on Youtube for videos on TDD and I came across this gem. It really put a lot in perspective for me in regards to TDD and set me on the path towards success.

I look forward to taking the things I have learned and the techniques I have acquired into Mod 2 as I continue this journey called Turing.

Rails...with Great Power Comes Great Responsibilty

During our second week of the second module we worked on a project called Bike Share. We essentially created a web application that utilized the information of the bike rental stations in and around San Francisco. This application included information pertaining to the stations, trips that customers went on using the bikes, and weather information on a given day. Utilizing this information we were then required to make tables for storing the database information as well as creating all the relationships. At this point in time we had not learned Rails yet so all of the relationships, foreign keys, and needed to set up our database were created manually after spending time researching how to create such relationships. This process was both tedious and time consuming.

After completing our project we started to learn about Rails. After an hour tutorial we had completed the basic functionality of the Bike Share project that had taken us over a week to complete. As we dove more into what Rails was and what all it did for us it blew me away everything that it took care of for us.

In the Marvel Universe Uncle Ben once told Peter Parker that “With great power comes great responsibility”. With Rails the phrase is just as true. With a single terminal command you can create a full project folder with the necessary sub-folders and files, it will create a Gemfile containing all the necessary gems to run your application. You can also create your migration tables with all the necessary information in it. There are also terminal commands that allow you to create the table, migrate it, and create the necessary models for the application.

This can be both an amazing tool and also cause for some tremendous problems. Utilizing tools like this without understanding what all it is doing for you can lead to potentially large problems with your application. The best advice that I can give anyone is before you start to use Rails to create your applications is to first create one without it. Get familiar with all that goes into creating the tables, the controllers, and the many other things that go creating a functioning application. It will make setup and troubleshooting much easier when you start to dive into making a Rails project.

If you don’t understand all the things that Rails is doing for you in the background… you’re probably going to have a bad time.

Contributing to an Open Source Project

During my final module at Turing we were required to make contributions to the open source community. The apsect of other people seeing and incorporating my work was both exciting and daunting. I was ready to take on this challenge! But first I had to find the answer to an important question: Where was I going to try and contribute?

As I started my process of trying to decide where to contribute I tried to think of open source repositories I knew of. After a few days of research I decided on the gem Faker. I had used Faker ever since module 2 to help me when seeding information into my database or test suites. This brought up question number two: What was I going to add to Faker?

I had honed in on wanting to create something for Faker but I had no idea what, all I knew is that I wanted to enjoy what I was creating. After looking through the Faker extensions and brainstorming what it was that I wanted to make, I decided to share my love for the show "How I Met your Mother" with the developer community and opted to build an extension for Faker. After gathering all the information I wanted to include in the extension I began to familiarize myself with the setup for Faker.

Faker is written in Ruby so overall the learning curve was very small. Most of the challeneges arose from familiarizing myself with the conventions that they used. The entire process of creating the How I Met Your Mother extension took only about an hour. It actually took longer to find the data that I wanted to be in my extension. I made a PR to the faker repository and it was merged within a few hours. Overall it was a very exciting and enjoyable experience.