This really all depends on how long you have been developing and how well you are known ...
If you are a known developer getting steady freelance work is very easy, otherwise its almost impossible and a paycheck is not always guaranteed. You also have to keep better track of your finances for when it comes time to pay taxes, buy your own insurance and worry about outsourcing to India..
Working for a company you have the assurance of a guaranteed paycheck and job to go to, you also don't necessarily need to be a known developer.
You also have the added plus of benefits and other perks .. but you don't get to pick your hours and you have to deal with other people.
Self-Made Websites ( Portfolio or Other? )
This could be a source but not a reliable one, I wouldn't even consider this as a form of Cashflow, unless you get lucky and come up with a "big hit" and can cash off the advertisement.
All in One ...
Freelance + Company Job is to much to handle at one time ( unless you enjoy truly programming for life ) and having a self-made site is a plus since it can work by itself but as I stated before. It's not anything I would rely on.
Programming is not a special field, the ways to make money are the same was you have in any other business:
1. Work on staff for a company
2. Work for clients on a contract basis (this counts as working for yourself).
I prefer a company because it is guaranteed and has benefits. I have bills to pay, mouths to feed, I can't just not have work for a month. Contacting can make more, but is too inconstant for me.
And since this is business related, there is a dilbert associated with it.
Company work has been the most consistan work me plus you dont need to worry about finding your next client, and doing accounts etc.. I quite enjoy the company of the people I work with as well so thats a bonus.