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.
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
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 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…
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.
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.
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.