Help for Newbie

This may sound strange, but I am looking to get out of my sales career
and into web development - I'm looking for a bit of career help and
direction around what technologies I should learn to get where I want to
go... so far, Ruby on Rails seems like a very compelling choice... but
at the same time a bit daunting for a newbie.

1. Working as a freelance developer - doing contract work either from
an office or from a remote location (i.e. the beach)

You need a track record to get these gigs (in my experience). That means either some menial work in someone's office, or visible apps you have developed yourself.

There is a disturbing trend to see job ads aimed at web designers that ask for Ruby on Rails experience - IMHO this isn't a very likely combination of skills; any business trying to combine those skill sets probably doesn't understand what they are asking for (although there are some excellent developers who can do both...).

2. Creating my own application(s), or applications with a team of
people to hopefully leverage into a profitable business (so I can spend
more time on the beach/travelling/playing with kids/etc).

You don't mention your sales background, but most developers lack skills in selling, and, more importantly, don't want to have them. This may be the easiest way in for you, but is unlikely to lead into programming if you are actually successful at it.

I'd appreciate any advice on:
1. A roadmap of technologies that I should know? (i.e. if I want to
learn Ruby on Rails, what else do I need to know understand (assuming I
know nothing)) Also, what other technologies should I learn to make
myself a well-rounded web developer / web application developer?

As an experienced freelance, you should understand HTML, CSS, SQL, AJAX and Javascript, more or less in that order. Specifically MySQL for working with Rails. You should be able to deploy your apps on your own servers (MacOS X or Linux - probably Debian) as well as hosted servers. So some basic Unix command line knowledge required. You'll almost certainly want to develop on MacOS X, anyway.

Alongside Rails you'll want to know about web servers - Apache, Mongrel; version control - Subversion; and deployment tools - Capistrano.

General programming knowledge, of course; Object Oriented programming to a reasonable level (ie, not C++). Ruby is a given. If you want to be seen as competent, good Ruby knowledge is important.

2. What are my prospects of making money as a developer (i.e. what are
typical pay ranges and what kinds of lifestyle/workstyle do people have
(work in offices? work from home? free time? what is the best
recommended way to set up your freelance business - what kinds of jobs
to take on, etc.))

Programming salaries in this general area at a reasonable level are less than half what they were 5-10 years ago, and don't look like they will be going up anytime soon. Entry level salaries have held their own - ie, at a low level. Blame India, if you want to (I wouldn't, but it's a popular pick). I would of course welcome any concrete evidence to the contrary on pay scales :-).

3. Any other resources I should use? Web forums, Chat rooms, books,
websites, blogs?

This mailing list and the ruby-talk one. There have been a couple of lists of blogs posted recently; aggregates most of them.

Books: ransack the Pragmatic Programmers library - you'll want their books on Ruby, Rails, Unit testing, version control, and the original The Pragmatic Programmer, at least. Kernighan and Pike's The Practice of Programming is sort of a master's level coverage of the same topics.

You want the O'Reilly books on HTML, CSS and Javascript. You should also look at O'Reilly's "Head First" books on HTML/CSS, AJAX and whatever else - although they have a very particular style that I personally hate.

I'd also add in David Black's Ruby For Rails, and the O'Reilly Ruby Cookbook.


> 3. Any other resources I should use? Web forums, Chat rooms, books,
> websites, blogs?

Besides what's been mentioned, there is a lot of very helpful free
information online about HTML, CSS and JavaScript - tutorials,
references, etc. You might find all you need there without having to
actuall buy books on those. is a good one, as are many