Comment Degrees of independence (Score 2) 142
When switching to contracting you get to choose a tradeoff between responsibility and reward (extra flexibility, diversity, profit). The more responsibility you take on, the better the reward. Some of the extra skills that are desirable in freelancers are: software project management, marketing yourself, learning about software intellectual property and contract law, communication skills, business skills, and ancillary skill sets (e.g. web design, system administration, marketing). Freelancers with these skills are worth more, can pick from larger and broader contracts, and have more control over how they work (e.g. telecommuting).
A lot of freelancers get started by leaving their job and working for that company on a contract basis until they start bringing in outside work. Joining a consulting company is a good option in that you can focus on programming and you get to work with like-minded people. (The down side is that you rarely get to pick what you work on and you only get half of what the client is paying for you.)
Personally, I took the road less travelled. A year and a half ago I had just about given up on freelancing when I landed a large contract developing the back end for Worldisround.com. I work 30 hours a week from home and since I am the only techie I have full control/responsibility over the site implementation and administration. The contract has a 'startup' feel to it, without the additional risk or long hours. The contract has been very challenging and rewarding in every way.
For more information on freelancing, I highly recommend checking out Guru.com. I don't know how many job connections Guru has been making but their articles are invaluable. It is also helpful to go through the process of creating a Guru profile and comparing your profile with others' as a sort of introduction to self-marketing. A recent Guru.com article, Independence Day, might be a good place to get started.