Tealeaf Academy week three


I'm just coming to the end of week three of the Introduction To Ruby and Web Development course by Tealeaf Academy

It has been a pretty intense time so far and I've built tic tac toe, rock paper scissors and blackjack games in both procedural and object orientated code.

On top of learing Ruby (which is a fantastic language to write in!), I've been getting used to GitHub and now I'm a bit more comfortable at things like setting up new branches and merging them. I've also just setup this blog on GitHub pages using the Jekyll blogging platform. Hope you like it!

Week 3 of Course 1

In week three I've been building the blackjack game as a web application using the Sinatra DSL. I've built some basic web sites in the past using Wordpress and edited the PHP, CSS, HTML, JavaScript, etc but this is my first experience of handling HTTP requests and processing responses.

The first part of the week required me to read the Introduction To HTTP book by Tealeaf Academy and I found this to be very interesting reading. It really helped to break down a lot of my activity in a browser that I just took for granted and gave me a better understanding of how it all works.

I can understand why the tutors want us to work with Sinatra first before we delve into Rails because it forces us to start from scratch and set everything up manually so we properly understand what we are doing. With the blackjack game I was handling GET and POST, dealing with sessions and cookies for more persistant data and then taking advantage of the statelessness of HTTP by using instance variables to create messages that I only needed for particular events and didn't need to persist throughout the application.

I love the Tealeaf Academy style of teaching, getting me to start with small terminal based applications written procedurally and then building the complexity before moving onto OOP and now onto web applications. As the programs built up in size it was easy to see why OOP is so good and also why tests are such as vital aspect of the development process. I expect the same realisation when moving from Sinatra to Rails especially for more complex applications when Rails can do a lot of the grunt work for me.

Extra Tutoring

One other thing that I'm doing that will help push me as a developer is receiving tutoring with a local Rails developer in Edinburgh called Gavin Morris who owns Katana Code. At Katana Code they work exclusively with Ruby on Rails for web applications and Rubymotion to develop iOS apps. This has really helped me to refactor my code, start to focus on testing with RSpec and also documenting my code with the TomDoc specification. It's pretty early days but it's great to start thinking about this at an early stage and start to get in the habit.

Summary

I'm going to use this blog as a place to record things that I find useful as I progress as a web developer and also to record my progress as I work through the Tealeaf Academy courses. It'll be a place I can reference back to for useful information and hopefully it'll help others that read this blog.