I want to learn how to write computer programs and have started with
watching lynda.com videos and going through a couple SitePoint books.
I told a friend of mine the other day that it feels like I am just
learning how to lace up my shoes when every one else is actually
playing baseball. . . any advice for how to best learn Ruby on Rails
and if that should even be the first language.
Ruby on Rails is not a language, it is a framework. You should not attempt
to use the framework until you know Ruby, the language.
Ruby is a reasonable first language, but don't imagine that knowing a
language is the same as knowing how to program. To learn a little bit about
how to program and a little bit of Ruby, (buy and) read Chris Pine's
excellent Learn to Program. After that, you might be ready for
Programming Ruby by Dave Thomas (et al.). After that I recommend both Agile
Web Development with Rails by Dave Thomas and David Heinemeier Hansson (et
al.) and Ruby for Rails by David A. Black.
Currently, I am looking at html tutorials, css tutorials and ruby on
rails tutorials. My plan is to go through each of these books the
next week and move to Ajax on Rails and Build Your Own Ajax
Applications. Any good direction would be excellent. Thanks.
As an aside, I find it distressing when people think they can learn the
craft without real training. It's like thinking that you can learn cabinet
making by putting together enough Ikea furniture. Anyone can put together
Ikea furniture. Anyone can put up a shelf. It takes years of training to
learn how to create quality cabinets.
Likewise, it takes years of training to learn how to program well enough to
develop a system that doesn't suck. If you want to build furniture or
websites as a hobby, go ahead and learn on your own. If you want to be
employed as a software engineer, go get a four-year degree in computer
There are going to be dozens of responses to this with anecdotes about how
someone is doing just fine as a software developer without a computer
science degree. If you can do a good job as a software developer without
computer science training, more power to you. Imagine how much better you
could be with the right training.
Also, if you think you are doing a good job, that doesn't mean you're
right. I've worked with many different developers. Some of them were rock
stars, some of them were incompetent, and the vast majority were pretty
good. All of the rock stars had computer science degrees. None of the
incompetents did. The ones in the middle were a mix.