From Nothing to Ruby

Image from Shutterstock

I’m not sure if there’s anything more intimidating than getting up in front of experts and saying your thing. Especially when you know so little. Here on RubySource, we have the .NET to Ruby and PHP to Ruby categories. But what if you just aren’t a programmer? Where do you start?

A Little History/Why I’m Writing This

I am not a programmer. The last time I studied anything like it was 2002, learning VB or perhaps 2004, learning XML to create websites for phones.

I didn’t go to University, though I don’t regret that. I can see how it could have been advantageous.

There were many attempts to learn in the last few years, with little success. I did find some quick wins with HTML and CSS – I found those extremely fun, so it wasn’t hard to want to do it more and more.

And of course, I’ve never had a job as a programmer/developer.

I’ve always wanted to really learn how to do it. I’ve spent the last few years of work surrounded by them, so it’s been unavoidable. It’s also been a fantastic help, having many people I can ask questions.

So if that sounds something like you, hopefully my journey so far will strike a chord.

Why Ruby?

I love learning it. Learning HTML/CSS was fun, but this is really a step above for me. I get a lot of satisfaction from creating something, and solving problems. Of course, there’s a heap of problems primarily caused by me simply being novice.

Resources I’ve Used

Learn Python the Hard Way

Yep, Python. On the recommendation of a friend and a long time programmer, I more or less got started here. I was told it was one of the best places to start, for many reasons. The objective was not to learn Python, even though you will, but to gain the programming fundamentals that the book teaches.

There’s versions of this for Ruby now, as well as C, Regex, SQL, and a CLI Crash Course, on Learn Code the Hard Way and they are all worth the time.

RubyKoans

RubyKoans has been one of the game changers for me, I’ve learned a lot from it. It’s also test driven, which I hear is pretty big in the Ruby world, so it’s important. There’s nothing more satisfying than getting heaps right in the test, and then being able to read the code and know why it’s worked. Or even when you get it wrong, then returning to the code for a second go and the test passes. The rewarding feeling gets me beyond driven.

It’s also been a great way of figuring out how best to Google the problems that I’ve had, and for things I don’t understand. Though this would definitely not have been possible without the help of…

Pickaxe Book/Programming Ruby 1.9

I’d heard that this was, more or less, the definitive guide to Ruby. However, some months ago when I first purchased it, I didn’t get very far. It’s very, very heavy reading.

However, it has proven absolutely priceless as a reference while going through RubyKoans. I wouldn’t have made it as far as I have without the book.

Just Do It

There are a number of Frameworks for Ruby. The two I hear about most frequently are Rails and Sinatra. Just Do It is a four part series on creating a To-do list in Sinatra by our very own Daz. It’s a cool introduction to Sinatra, focusing particularly on creating handlers, but you also work with Slim, which I thought was pretty neat.

It also has some basic Sass, which I dare suggest you’ll find yourself working with at some stage. There’s even getting things deployed to Heroku, something else I’d say you’ll find common in Ruby.

Michael Hartl’s Rails Tutorial

I’m still going through this, but it’s been wonderful so far. It will take you from the beginning: installing Rails, creating new apps, dynamic pages, version control with Git, deploying, and heaps more. There’s a lot of nitty gritty things that I can’t wait to get stuck into.

The online book is free but there’s a paid PDF, as well as screencasts.

Deploy ALL the Things

Get an account with Heroku, install the Heroku Toolbelt, read the documentation, it’s vast and detailed, and helps you get deploying. Things don’t always just work when deployed, so you’ll get experience figuring these things out. The lowest possible level Heroku offers is free.

Ask ALL the people

Learn from other programmers, because everyone was a beginner once, and will always be a beginner at something. Plus I’d say they don’t want one more person writing sh—y code out there.

Finishing Up Getting Started

There’s so much out there, that it’s a little mindblowing actually. I’m constantly seeing things on Twitter and Reddit and routinely wind up with more tabs open than one man can reasonably consume.

Also, get a text editor that you’re makes you happy. I personally use Sublime Text 2. I carried it over from HTML/CSS and so far it’s fantastic. I learn a little more about it each day. If you use or recommend something else I’d love to hear about it.

If you’ve got something to add, just let me know in the comments. It’d be great to know what has aided other people’s learning, AND what they found fun.

Here’s some resources I’ve either used or have bookmarked for later and didn’t mention above.

Win an Annual Membership to Learnable,

SitePoint's Learning Platform

  • http://dribbble.com/bryandavidk Bryan K.

    Wow! I share a very similar background and experience to yours. Although, I’ve already seen many of your resources. I love the tone of this thread, keep it going! There’s a real need for good content for savvy users (or in my case, a designer) who are completely new to programming.

  • steve

    Nice little post! Good advice for the new Ruby programmer. Thanx for sharing.

  • Chris M.

    I like the premise of this article but the quality of writing leaves me to assume that Aaron is not a native English speaker or he had too many beers before writing. I don’t have time to advise on the grammar or sentence structure but there are some typos in the first few paragraphs that should be fixed. “like” is spelled “lke”. “There where” should be “There were” and others, just look. I like to use have the speech command talk my writing back to me find problems such as these. Thanks for the article, keep it coming.

  • Tony

    This is great, I am right behind you bud :)
    great inspiration here, I just discovered Ruby and Sinatra and love working
    in them.

  • http://twitter.com/showtimeshane Shane

    I noticed you mentioned taking the LearnPythonTheHardWay course. Is there a reason you chose to pursue Ruby over Python? Or maybe you currently use both. I’m currently trying to decide which of the two to focus on. I was curious what your reasoning may have been.

  • http://A-designs.ca Andre

    Thanks for this and i use panic coda!

  • http://daz4126.com/ Darren Jones

    This is great Aaron! I did something similar – I started by teaching myself HTML and CSS. Next I wanted to learn how to build dynamic sites and it was when Ruby on Rails was getting loads of attention so I decided to have a go at that.

    I’d never done any programming before, but I really liked how easy Ruby was to pick up. I found Learn to Program by Chris Pine (http://pine.fm/LearnToProgram/) a great resource and still recommend it to people who want to get into programming.

    DAZ

  • Brad

    you missed the two best Ruby books which are: “Eloquent Ruby” and “The Well Grounded Rubyist”