Aston J

Stop knocking Rails – it’s easy to learn!

Posted on: April 5th, 2012 by AstonJ 9 Comments

It seems fashionable to knock Rails as beginner unfriendly these days, but I think that’s wholly unfair – because I found Rails *much* easier to learn, and a better option for web development than most (if not all) of the other ‘options’ (some I tried, some I researched and rejected). Easier because Rails is written in a more natural, easier to understand language, and better because Rails teaches you a tremendous amount of best practises that would otherwise take you a lifetime to learn. It also saves you from wasting weeks or months agonising over which technologies to use or methodologies to follow – that in itself is priceless, and that is a large part of why it is so appealing to (and a good bet for) us n00bs.

Almost anyone can learn almost anything, if you just go about it the right way. Let’s explore that here from the perspective of learning Rails.

First up.

What is a beginner?

A person just starting to learn a skill or take part in an activity.

And how do you learn anything?

You start at your entry point – based on what you already know.
And then you keep progressing, by learning what you need to know, next.

Rails is easy.

Ruby

Anyone wanting to learn Rails is in luck – because it’s written in Ruby – which is arguably one of the easiest languages to learn. Imagine learning a comparatively powerful framework in another language – that is if such a framework exists ;) but anyhow, I did. I tried to learn CakePHP in PHP – let’s just say I’m glad I made a lucky escape when I did!

Learning Material

How many other frameworks has as many learning resources as Rails? And it’s not just the sheer amount of what’s out there, it’s the quality – of both Ruby & Rails material.

Eloquently written books, beautifully crafted online courses, diligently prepared screencasts. Then there’s the usual professional training courses, and other community initiatives, such as camps and conferences.

There’s so many because both Ruby and Rails have a unique buzz about them – and an army of passionate Rubyists, who love helping others see what’s so special about this magical thing they have found and grown to love. Check out my What’s Special about Rails article for the low down.

Learning Curve

You can learn practically anything if you learn it from the ground up. The ‘ground’ being based on your current knowledge of course. Again, luckily for us, Ruby & Rails has learning material to suit people of all levels – from the absolute beginners to the hardened language geeks. So whoever you are, whatever level you’re at – you can find a spot to jump in.

Back to beginners – so how *do* I learn Rails?

I was there, a n00b – and the hardest thing wasn’t learning Ruby, or Rails, it was working out how best to go about it (maybe that’s actually what people have a gripe about – that people are just not learning it right?). Anyway, I just wanted someone to give me 10 or 20 steps to become somewhere close to a proficient Rails developer – and I was prepared to do every one of them – just so long as I knew that I would be close to my goal at the end of it (which was to create my own custom sites, relatively quickly – ie not have to spend 10 years learning or getting experience to do it).

I never really found such a prescriptive guide. So did lots of research into well thought of and highly recommend learning material, did most of what I found – then came up with my own Best way to learn Ruby & Rails guide – in just 15 steps, you can go from knowing practically nothing, to having enough knowledge to build your own custom site. If you dedicate the time, you can do it between 3 and 4 months. Yes – just 3 or 4 months!

With a bit of self-belief and hard work – you can do anything that Tom, Dick or Harry can do. And there’s no reason why you can’t do it that little bit better, either.

Tags: ,
  • Robbie

    Hi Aston,

    I can develop things in Ruby on Rails quick and fast but the problem I find is deployment, I have a Linode VPS and have gon through some online Tuts but they all vary in technique :( have you a system you use or method that you could share with us.

    Additionally I would like to host multiple apps within the workplace for admin purposes but am stumped how to do it, do i need an apache server on ubuntu or is there another way to do this?

    Kindest Regards

    Robbie

    • AstonJ

      Hi Robbie,

      I would definitely agree with you that deployment can be confusing – there are just so many different ways to go about it!

      If you have a VPS I recommend checking out this Railscast: http://railscasts.com/episodes/335-deploying-to-a-vps and there is an excellent book called Deploying Rails (from pragprog.com) that you might want to look at too.

      For your local versions, you could try http://pow.cx/ or just use your own machine with the usual rails server – just fire-up each of your rails apps on different ports, eg, rails s -p 3001 (which should then be accessible via your machine’s IP, eg 192.168.0.5:3001) then rails s -p 3002 for the next app and so on. Just make sure your machine’s firewall is not blocking the ports.

      Personally, I have my own dedicated server (which also hosts PHP sites) so I go about it a little differently to what’s currently fashionable – I use mod_rails which is an Apache module, I find it fits well with my current (non Ruby) stack :)

      Hope that helps!

  • Robbie

    Hi again Aston,

    Thanks for your advice, I will give it a shot.

    In another note I noticed that you are also from Wales and was wondering if you knew of any rails user groups around?

    I live in Carmarthenshire but am also up in Barry now and then to visit the wife’s family, if there is anything in the Cardiff area I could plan a visit around it.

    Kindest Regards

    Robbie

    • AstonJ

      Hi Robbie, sorry I missed your comment.

      There is a Cardiff Ruby group – you can find more details here: http://www.cardiffrb.com

  • Matt

    Aston,

    Great site here. I like your style of writing.

    I’m a new to web apps/ruby/rails and find it’s pretty difficult to learn. However, websites like yours are helping me a lot.

    Do you have any other site suggestions where I can learn more? I have the basic concepts down of how rails works but now I’m just trying to figure out how to create a user login screen so that I can start to build an app around users and content that they generate.

    Also, I found this guy online, @schneems – he is a teacher based out of Texas and started posting tutorial vids a few weeks ago. I think are way easier to follow than the ones by the guy on Lynda.com.

    Keep up your great work here!

    • AstonJ

      Hi Matt

      Thanks for the comments about the site.

      Re learning Rails, I have put together a guide (http://astonj.com/tech/best-way-to-learn-ruby-rails/) that will help you learn Rails the best way (by learning Ruby first). You really do need to follow it and learn each step that is covered, or you just risk patching your app together without really knowing what’s going on.

      Good luck!

  • james

    Rails is not easy to learn.

    Your post recommends 15 different resources (around 10 of which are books). In contrast you can pick up one php book and get pretty comprehensive coverage of the topic and get building stuff within days rather than months.

    It’s misleading to suggest that rails is easy to learn. It is really quite complex, and the learning curve is really very steep.

    • AstonJ

      If you want to compare PHP to anything it should be Ruby. You can pick up more Ruby than PHP in less pages. Ruby is incredibly easy to learn – much more so than PHP imo.

      • james

        Ruby is lovely, but ruby on rails is very difficult.Php you can use before you master it, ror you need to master it before you can use it.

        If enough people are saying ror is hard that it warranted a blog post to defend it, then maybe they are onto something.