I wish I would have found programming sooner. Specifically, I wish I would have found Ruby earlier in life. Learning Ruby changed my life.

Discovering Ruby

Server-side programming was something I thought I wouldn’t be able to do. It considered it only for the “smart people.” Eventually, I mustered up the courage to give it a shot.

At this point, I had a fair amount of front-end web development experience. However, it left me wanting more. I, personally, felt handcuffed. I could build interfaces but had to rely on other people to wire them up.

During this time, I spent a fair amount of time on Tuts+. Specifically, I spent a lot of time following Jeffrey Way. At the time he was heavily involved with Envato making content for developers. I went through his PHP Fundamentals course. Slowly, I was able to tie concepts I had been learning in my Computer Science classes with PHP.

For the first time in my life, I felt empowered to be a server-side developer.

It was incredible. However, I was still overwhelmed. In fact, the overwhelming feeling turned out to be a critical point in my career.

I started browsing the internet trying to figure out what other people used to “do server-side programming.” I saw the term “web application” a lot. I saw Java, PHP, Ruby, and Python mentioned a lot.

Eventually, my search narrowed down to PHP and Ruby. A lot of people seemed to use PHP. A fair number of people appeared to use Ruby. At this point in my search, I discovered frameworks.

At the time, CakePHP was popular in PHP and Ruby on Rails was popular in Ruby. Laravel was roughly entering version three. Jeffrey Way had begun to evangelize Laravel. My decision came down to learning Laravel or Rails. At this point, Rails had more resources for learning the framework. Railscasts was active, and Laracasts didn’t exist yet. So, I decided to learn Ruby.

Learning Ruby

There was something about Ruby that resonated with me. I’m not sure if it was the syntax or the hype around it, but I became infatuated with Ruby. I signed up for Railscasts, Code School, and bought Michael Hartl’s Ruby on Rails Tutorial book.

By and large, two things made the learning process exciting. Ruby and Ruby on Rails.

Ruby

The first time I ever typed Ruby code was using Code School’s, Try Ruby course. The course is a project continued by Code School after why the lucky stiff’s disappearance. It allows you learn some Ruby commands without having to fool with installing Ruby.

The simplicity of the syntax enamored me. To be honest, the simplicity appealed to my OCD and was comfortable to the eyes. Learning Ruby was fun and became addictive.

In fact, Ruby’s ease of use helped me learn concepts I had trouble grasping elsewhere.

So, what are some examples of this simplicity?

Take, for instance, taking a string of characters and reversing them.

"Jason".reverse => "nosaJ"

You may not know what a string is or what a method is. However, you likely can read the code above and know that my name should reverse.

Another example: iterating through collections, like arrays and hashes, are descriptive. If you don’t know what an array is, think of it as a way to store multiple things in one place.

ages = [21, 30, 45]
ages.each do |age|
  puts age
end
=> 21
=> 30
=> 45

So, take each item in that array and puts it on the screen. Simple, enough.

At this point, a theme began to resonate with me. Ruby reads like the English language. This readability made Ruby approachable to me, even as a newbie.

Also, as someone who was learning Object Oriented Programming in college using Java, the fact that everything in Ruby is an object appealed to me.

true.class => TrueClass
false.class => FalseClass
"Jason".class => String
1.class => Integer
1.0.class => Float

Rails

Equally important in my journey of learning Ruby is Ruby on Rails. Ruby on Rails took the things that appealed to me about the Ruby language and erected them into a web framework.

Admittedly, at the time I had a bit of trouble installing Ruby and Ruby on Rails. However, once I had it installed, it was smooth sailing.

In fact, I had an enormous amount of power at my fingertips by creating a new Rails app with rails new ...

Ruby on Rails was my introduction to Model-View-Controller.

Using Rails allowed me to learn higher-level concepts, first.

  • I was able to "scaffold" out resources that were database backed and ready to be interacted with in the front-end.
  • It taught me about building REST endpoints.
  • I had the tools to learn how to write tests.

Having this powerful toolset helped me learn how to build web applications. One of the neat things about Rails is that once you’ve learned something, there is something new to learn.

People, including myself, have things they would probably change about Ruby on Rails. However, I would be ignorant to ignore what it has done for Ruby and myself.

Simplicity and Joy

Ruby was designed for programmer happiness, as was Ruby on Rails. The developer happiness these tools focus on resonate with me and provide me with that excitement. As a result, I still really enjoy writing Ruby.

Although I love Ruby, everyone is different, and that’s okay. I have plenty of friends in the industry who don’t use Ruby. I have a few friends who even dislike Ruby.

gasp

Your mileage may vary. Simplicity and joy may hold different meanings to you. Embrace that!

If you’re considering learning programming, I will encourage you to give Ruby a shot.

Meanwhile, if you’re already a developer; I’d love to hear how your language or tool brings you joy.