Two months of Rails Development

Two months ago, I was fortunate to land a job doing Rails development full-time.  It’s been a long slow process, but I’m finally getting a grasp of it.  Or at least pieces of it.  Here is my story:

My Programming Background

For the last 5 years, my background in web development was ColdFusion. It was easy to understand, easy to connect to databases, and quite expensive. What I found lacking were good frameworks. I had grown sick of repeating myself every time I started a new project. On the side, I had been playing with Django and wished I could develop in it full-time. I had even dabbled in Ruby on Rails a bit.

However, there was change in the air at my work, and it wasn’t for the better. I worked for a city government and I pushed for open source technologies as a way to save taxpayer’s dollars. Unfortunately, not enough people higher up cared about this. It looked like management was drinking the Microsoft flavored kool-aid and we were going to become a .Net shop. We had already brought Sharepoint into the office. I knew it was time to leave.

I set a goal to find a job using either Python or Ruby, and if worse came to worst, even PHP. Unbelievably, I landed a job within one month of searching. I was going to do Ruby on Rails development. Professionally! Amazing!

Rails Development

As a new Rails developer, I was fortunate enough to work for a company that has allowed me to learn Rails on the job. For the first four weeks of employment, I spent nearly all my time on Rails for Zombies and then Rails Tutorial. I highly recommend this site for anyone wanting to learn about Rails development. It covers everything from setting up Rails to using GitHub, Rspec, and deploying to Heroku.

I’m now fully engulfed in the development process. I feel overwhelmed at times, but completely love it. The Rails ecosystem is vast and there is a lot to learn. I’m spending most of my time writing Rspec tests and updating models.

I’ve learned a lot in the last two months. I’ve realized that I’ll never go back to the “old” days of coding by myself, coding without a framework, coding without writing tests, and manually deploying to a Java application server. There’s a part of me that wants to go back to my old job and say “Don’t you see how wrong you are? This is how it should be done”. But I guess that the current management isn’t comfortable with a technology unless there are salespeople selling it.

My eBooks library

Since getting my iPad in April, I’ve become a fan of eBooks.  I took advantage of some coupon codes on O’Reilly last month and purchased electronic copies of many of my books.  Here is a list of what I currently have on my iPad:

ePub format

PDF’s

I love the fact that I can carry around these technical books all the time and be able to look something up so quickly just by doing a search inside of the iBooks app.  My only complaint with the iBooks app is that I have to add my books through iTunes.  Would be nice if iBooks supported DropBox.

Web Framework Comparison

I’ve been keeping track of high school football scores in Virginia for quite a while. And I’ve been meaning to create a site to that will provide information on schools, seasons, etc. I also plan to add video highlights as well. Since I haven’t yet settled on a framework, I’ve decided that I will detail the creation of my site in my blog as well as provide video of the design of the site using the three frameworks I’m looking at:

Of course, I’ll be creating all this on my MacBook Pro using TextMate and maybe Eclipse with CFEclipse. And the database will be PostgreSQL because well is there anything better?

So, the stage has been set. I’m still trying to decide which I like better, Django or RoR. There are some things in each that I’m really impressed with. And what about CF with M-G:U? Its the definite underdog. But I write in ColdFusion at work and I’ve been looking for a project to use M-G:U. It could surprise me.

I haven’t worked out the details yet, but I’m thinking that I’ll do one particular piece at a time and do it under each framework for comparison’s sake. And of course, I’m planning to make a screencast showing how each framework handles the particular task.

Now if only I can convince my work to let me have the time off to work on this, while still paying me, then we can make some progress. Otherwise, this will take a while.