Learning How To Write Software Isn’t As Hard As You Think


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.

Am I ever going to have to learn more traditional languages, like Javascript?

The truth is that if you ever want to hold the title of Rails developer, you are going to need to learn JavaScript. It’s not a prerequisite for learning Rails, but it is a skill you will need as you progress. As you go deeper and deeper into the world of tech you will find that you need to be passably fluent at a fair number of different technologies. Luckily, it becomes easier and easier to pick up new languages and frameworks as you gain experience.

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!

Clay Harmon writes content for Aplos by day and makes up novel-sized stories by night. When doing neither, his Kindle e-reader is close at hand, or he is drinking coffee and losing at video games on his computer. Raised at the gateway to Yosemite, the occasional trip into the Sierras gives a quick fix for an addiction to mountain air and serves as inspiration for future books cooking in that brain of his.

Leave a Reply

Your email address will not be published. Required fields are marked *