For this article, I decided to shift the focus from nonprofits to that which makes our company tick–software! Learning how to write software can sound as scary as building a car, but just know there are sources out there that exist to lower the entry barrier.
We live in world of amazing technologies, easy to use and all around us. Your 4-year-old niece is playing Clash of Clans on her iPad, and your dad is hooked on the latest video game on his PC. But the technology behind these 21st century feats is complex and invisible, abstracted away from those who control it. These iPads and PCs don’t provide us an easy chance to do basic programming on them either. For almost all of us, the code that makes these objects work is enigmatic and intimidating.
Before the days of Generation Z, my predecessors could hack their Commodore 64s without a hitch. But today, just try to confront the millions of lines of code behind your Windows OS, or your iPhone. Unfortunately, you can’t even get that far–the legally enforced sanctity of the code will prevent you from even seeing it. And even if you managed to take a look, the code would be so complex you would struggle to understand it, let alone manipulate it.
But what if it was possible to learn a programming language without possessing some inherent talent that seems so prevalent in software writers? This brings me to the programming language Ruby, and to the application Ruby on Rails, which basically streamlines the Ruby language. Ruby, the programming language, is actually fun to write. In fact, the man who created it said his major motivation when inventing the language was to design something that would make programmers happy. Ruby on Rails, on the other hand, is like the training program that lets you write Ruby with ease. Think of it like painting—if the Ruby language is the paint, then Ruby on Rails turns your creation into a paint-by-number. Except you make whatever you want. Here’s an example of how Ruby is different from other languages.
If I wanted to print something to the screen in a language like PHP, I’d need to write:
echo “Is this thing on?”;
If you wanted to write the same thing in Ruby on Rails, you’d write:
puts “Is this thing on?”
Ruby isn’t as cluttered with symbols, and it uses language that is more intuitive to what you’re trying to achieve. While the difference is subtle in an example like this (“puts” makes more sense than “echo,” since you’re putting the text on the screen), when it comes to writing loooong strings of code, minor improvements like this add up over time and make your job much, much easier.
A programming language like Ruby isn’t designed for the Web, but this is where Ruby on Rails comes in. Say I wanted to create a Web page using Ruby, but wasn’t using the Rails framework. If I were to type
puts “Is this thing on?”
in an HTML document, which are what Web pages use, you’d literally see “puts “Is this thing on?”” on that Web page. However, Ruby sidesteps this problem.
Did you know that companies like Airbnb, Fab.com, and Hulu built their products using Rails? Building with Rails also offers a good opportunity to put into practice all the skills you’ve learned so far—from implementing static webpages with HTML and CSS to using programming concepts like object-oriented programming… I know, I know. I’m getting ahead of myself. But take a whack at Rails, and you won’t be far behind.
There are a few reasons why Rails is so great for beginners. Learning to program in Ruby is much easier than in other languages because the language is super flexible and very forgiving, which translates to more time spent absorbing programming fundamentals. Using Rails is kinda like driving an 18-wheeler. It’s crazy powerful, but do you really understand how the 18-wheeler works?
In other words, the fact that Rails takes care of so many things for you will allow you to do a bunch of fancy things right off the bat. But it can be a double-edged sword because sometimes you can get a little ahead of yourself and not really learn the fundamental stuff you’ve got to know eventually, if you want to progress. For that reason, it’s really important to learn Ruby on Rails from the ground up, and in particular, make sure you’re comfortable in Ruby. Preferably, learn Ruby before you dive into Rails. You want to learn how to ride a bike before driving a car before driving an 18-wheeler. You don’t need to be an expert Ruby coder, just comfortable.
Rails is designed with the best practices in mind, guiding you into writing awesome code even if you don’t want to (or wouldn’t know how). This means that if you want to write robust web applications that will scale as you need them to and be easy to maintain as you go forward, Rails is an awesome way to go.
One of the reasons why Rails is so popular with tech startups is that it’s really great for rapid prototyping. You could think of a Rails app you want to build and have it up online and ready to go within a few hours. There are very few frameworks that could make that possible.
You can’t build a mobile app in Rails, no, but you can definitely build a web application in Rails and have it serve as the backend for a mobile app. There is also this thing called RubyMotion which makes it easy to build native iOS and Android apps using Ruby.
You can get a very good understanding of Rails within a few months of dedicated study. And of course, your level of familiarity with programming in general will have a big impact on how quickly you pick up Rails. But if you are an absolute beginner, Ruby and Ruby on Rails are two great places to start. If you have NEVER written a single line of code in your life, the very first thing you need to do is learn about HTML & CSS. Luckily, HTML & CSS are relatively easy to pick up. Then you need to learn Ruby, Git & the command line.
Here are some great sources to get you started on your path to Ruby: There’s Codeacademy, and then there’s Skillcrush, the website that gave original inspiration for this article. Just know that our company is not affiliated with these websites, and I wasn’t offered anything to endorse them. Learning how to code is just too important a skill to pass up, and it shouldn’t be as intimidating as people make it out to be. So good luck!