I’ve been freelancing for almost four years, doing mostly development work (mobile/web). There is a lot to be said about freelancing - here are the pros and cons, IMHO:
Flexible hours - work when and where you want (works only if you work out-of-office - i.e. not in a client’s office).
There is no clear distinction between work hours and personal hours. Work is not a 9-to-5 thing anymore - Clients can call and email you during evenings, weekends, etc. (and you’ll have to answer them and work at those hours). Trying to make rules for yourself (e.g. I won’t work after 19:00) is very hard to accomplish.
Additionally, you need to spend a few hours a month dealing with bureaucracy - reporting to IRS, your accountant, etc.
Mostly better pay - Although a freelancer’s hourly wage is usually much higher than an employee’s, you shouldn’t directly compare the two. A freelancer has to spend from his own dime the following: Health care, social security, pension, vacation days, sick days, down time when no work is available, etc. As a rule of thumb, you should divide your freelancing hourly wage by two to get to the equivalent employee wage.
Freelancing is not a stable thing - you may have down time, with no income (that’s why you charge more).
Also, getting paid takes time - depending on your clients, you may get paid only after the end of project (+ some extra days afterwards). So when starting to freelance, you’ll need prepare for a first few months of no income, even if you are working on projects. Sometimes you might need to act as a debt collector and chase your clients and remind them they owe you money (I once got paid seven months after a project was finished).
Working from home means waking up and going to bed whenever you like. Not having to work for work’s sake, or making it look like you’re working so your boss won’t bother you.
On the other hand, working from home can be hard for some - It’s hard to concentrate and not switch to Facebook every three minutes when you’re working at home in your undies. Possible solution: Rent an open space office with other freelancers.
Another downside - There’s no social interaction - no work buddies to talk to during the day and have lunch with. To mitigate this, I schedule lunch with friends (since most live and work in my area) and go out for beer every evening (while not worrying I need to get up early the next day).
You can generally have more free time - if you decide not to take on a lot of projects, you can work 2-3 days a week and get a better pay than you did as an employee. You can use those 2-3 extra free days a week for hobbies, traveling, startups, etc.
Additionally, changing your life style is easier: I’ve had a routine cycle of working six months as a freelancer, then working 6-12 months full-time on a startup (did this cycle three times). As an employee, it would have been extremely hard for me to get a job after the third time (imagine what my CV would have looked like).
That’s why freelancing is ideal for this - the options are simply countless - Want to work two days a week and learn acting for the rest of the week? Much easier. Got bored after a few months of acting and want to do yoga instead? No problem.
Although you can take more vacation days (no need to go to your boss and justify yourself), you won’t always do that: You can’t always control how many projects you’re going to have at a given moment: Going away for a month or two might cripple some projects, or you might lose existing clients if they need you for a new project and you’re unavailable.
This is especially true if you’re going to start a consulting business and work with employees of your own
Working with clients
You learn the art of negotiation - Learn to value your time, negotiate with clients, evaluate projects, when to be soft and when to be hard with clients. This is a very important business skill, which will benefit you in any venture.
If you don’t like negotiating, that could be a real problem. You might consider working for consulting firms (that do that for you but take a significant commission).
Additionally, each client is actually your boss, so multiple clients = multiple bosses (lots of hassle and pressure). Some clients might think that since they pay you “a lot” (in their opinion), they own you and can boss you around. Important lesson learned: Most potential clients won’t be a good fit and you shouldn’t work with them. Whether it’s because they don’t pay well, too bossy, micro-manage you or simply because you don’t like the project.
Another problem is that you need to constantly find new projects / clients, and you might invest hours of your time emailing, calling and meeting with potential clients. As times goes by, you’ll start getting better at vetting clients, and invest less time in this process. For example, I usually bring up my pricing right at the end of the first phone call, so I wouldn’t waste my time meeting with them if they simply don’t have the budget.
That’s about it. If you have any other pros/cons I haven’t thought of - I’d love to hear them.