I want to become a Rails web developer. I am not a programmer by any
means. I have built one static website and am familiar with HTML and
CSS. I know I'll need to learn Rails, and perhaps a list of other
things like SQL, JavaScript, Apache, Ruby etc. but I have no idea
where to start.
Could you please offer any advice on what I need to learn and most
importantly what order I should learn them.
I started rails by reading Beginning Rails from Apress.
It will take you through most of what you need to know to start Rails.
Being a .NET developer, it was quite easy to pick it up but I believe
it is accessible to non web developer.
With Rails, you don't need to learn SQL (unless you have very specific
tasks to achieve).
JavaScript is nice to have (I would recommend you to use jQuery, a
JavaScript framework) but you can have a full web app running without
JavaScript.
Apache? No need, Rails comes with Mongrel.
Ruby ... of course but you'll just need the basics and learn as you
go.
Ryan gave a really good resource, and it will only get better.
After that, start building and keep reading. Read blog posts, read
source from other projects, read tons of books, and then when you
think you can't read anymore ... read a novel and then read another
book. Right now I recommend a few books:
Agile Web Development 3 (Beta PDF right now) from PragProg.com
Simply Rails 2 (great introduction, if a little shallow at times)
Learning Rails (a little deeper and covers different skills at
different times)
The Art of Rails (a philosophical book more than how-to)
Then, keep on reading other books, get yourself some Ruby books and
learn Ruby, learn ... read, rinse, and read again.
All the time, keep building different things. Test all of the time.
Your original sites are going to suck, and you'll look back and get
discouraged, but keeping building and keep going.
If I had to learn rails again I would learn ruby first then drift over
into rails because I think that would give you a better understanding
of how ruby works
If you try to learn Rails at the same time that you learn Ruby you'll
inevitably get to a point where you have no idea about what's going
on. The person that wrote Rails is a Ruby expert and it shows, which
means that sometimes you will have no idea about the techniques being
used and how things work. This is true even if you have a decent
understanding about Ruby (I raise my hand there). However, if you
learn Ruby (and practice it before starting writing code for/with
Rails) you'll be in a much better position when you start using Rails.
- Official Ruby Site - More resources. Look for mailing lists and irc
channels too.
http://ruby-lang.org
After this you can get into the ruby webdev land through the Sinatra
microframework (http://sinatra.rubyforge.org/) just before dive into
Rails. Found that using Sinatra is great to learning more and
exercising my ruby and web knowledge...and it's also a great framework
for really simple apps.
- Official Ruby Site - More resources. Look for mailing lists and irc
channels too.
http://ruby-lang.org
After this you can get into the ruby webdev land through the Sinatra
microframework (http://sinatra.rubyforge.org/) just before dive into
Rails. Found that using Sinatra is great to learning more and
exercising my ruby and web knowledge...and it's also a great framework
for really simple apps.
I learned Rails first and got into Ruby because of it. If you have
programmed before, I don't think you need to know Ruby to do anything
simple with Rails, but you do need Ruby do anything substantial.
"Agile Web Development with Rails" really doesn't require much prior
Ruby knowledge to get a feel for the language. Instead, it encourages
exploration into Ruby. My students love reading it and learn a lot
from it, but then they've programmed before.
If you're completely new to programming, Chris Pine's "Learn to
Program" is exceptional.
Try reading Why's (Poignant) Guide to Ruby. He explains things pretty
dang thoroughly, in an "interesting" way that you won't find anywhere
else.
http://poignantguide.net/ruby/
I found the Sitepoint Rails book (The SitePoint Library | SitePoint Premium
rails2/) very good as an introduction to writing a full on Rails app -
will definitely give you a taster of what Rails is all about.
Also, try watching a few of the more basic Railscasts
(http:railscasts.com) by Ryan Bates ... these are brilliant and I see
them as the equivalent of 'going to a lecture' at university, you get
to see what is happening rather than just reading about it.
Also, sign up for a Heroku (http://heroku.com) account - you get to
run rails apps right in your browser and don't have the hassle of
having to install rails and set everything up.
After that, you should probably get the Agile Web Develpment on Rails
book or The Rails Way by Obie Fernandez - this is a great reference
and very up to date. There are loads of free guides online, not least
the aforementioned official guides:
We wrote Learning Rails with web developers in mind, though probably
with a touch more JavaScript or similar light programming experience.
You might take a look at it and see if it works for you. Coming from
no programming background at all, it may go too quickly, and you'll
want to head back to learn more programming basics. On the brigher
side, though, I think it should help you figure out what you need to
set up and how deep you need to go into various areas. (You don't need
Apache or SQL experience to get through the book, and we try to
introduce and explain Ruby concepts along the way. You don't need
much JavaScript, either, though it's certainly useful background
knowledge.)