August 16, 2018

Why Did You Decide to Learn Rails?

Ruby was the first language that I truly enjoyed after struggling to learn Java using the Head First Java book, building web pages with a bunch of PHP scripts and attempting to build an airplane ops application with Laravel.

I had lots of haha, light bulb moments when I was learning Ruby. A lot of things became crystal clear and I could finally explain code to a 5 year old. Ruby was the first language that made me truly enjoy programming! Maybe because the language itself is pretty readable because it’s a high level language or because I had the best teacher Akshaya who helped me figure out how to think about code.

Sorry, I know the paragraphs above do not really answer the title question but I’ll get there. In 2014, Ruby was the language chosen by the tech fellows at MEST Africa as the primary language to teach the students. See, it could have been Python, JavaScript, or PHP but they chose Ruby and I’m super grateful for that choice.

Naturally, the next step after learning Ruby is to learn the web framework Ruby on Rails. So, when we started learning Rails, I also loved it because Rails built on top of all the good things I love about Ruby and added its own layer of goodness. I remember the phrase “convention over configuration” was used a lot when I was learning Rails and I loved that because I enjoy working within a set of rules! I mean, I like breaking rules like the next human but when you’re building a product, there’s already so many unknowns that you’d appreciate having the fundamental toolset for building that product to be consistent or operate within a set of known rules.

While a lot of people struggled with the concept of convention over configuration, it was fun for me because it matches the way I think in a lot of ways.

I like structure, I like coming up with a well thought out operation manual for a particular goal I’m trying to achieve and working within that framework and I think that’s what the Rails team has done for web development.

If you attempt to solve a problem without first coming up with a plan and deciding on a toolset beforehand, you will become pretty scattered as you will want to try so many things to figure out the best choice that it’s possible you will get lost along the way. You would have wasted time and you wouldn’t have achieved a thing. So the Rails team is saying: use this set of toolbox to solve this set of problems without having to start from scratch and decide what set of tools to use whenever you face this set of problems.

I love that Ruby on Rails is utilitarian in the sense that they’ve made all the decisions on the toolset for you beforehand and you just need to follow those conventions while trying to fix your problem. Choice overload can become confusing and trust me, Rails has thought of everything you need.

So, yeah, back to the question - I didn’t decide to learn Rails, it fell into my laps and I loved it because the founding concepts and doctrines of the framework match the way I think. In addition, because I thoroughly enjoyed programming in the Ruby language and the web framework Rails as a foundation, I am able to pick up any language I’m interested in and work with it. I went back to Java - crushed it, I also later learnt Python, JavaScript, Swift, etc. and I’m coming for y’all other languages - looking at you Go and Rust!

Recently, I got super curious about what’s going on behind the hood in Ruby and I’m exploring that using the Ruby Under a Microscope book and absolutely loving it.

This post first appeared in a writing series with my colleagues at Happy Bear Software. Read more about why my colleagues learnt Rails