As a regular full-time programmer for a company, you enjoy some job security and a guaranteed paycheck, but you're expected to spend all your hours programming -- at least 40 a week, often more. Becoming a freelance programmer allows you the freedom to set your own hours and work on projects that really interest you. It does require organization and some business smarts, but you'll find that there are several types of business models to choose from.
Occasionally, companies or individuals may need a programmer on a project basis. If you create an attractive website that comes up in the search engines, through paid advertising or search engine optimization, customers may contact you directly to discuss projects. You can also earn this type of work by posting your resume on job boards, specifically stating that you are looking for freelance work.
Bidding on Projects
Certain websites like Guru.com or ScriptLance.com act as intermediaries between freelance programmers and clients. The client will post a job description and qualified candidates will prepare a bid, including the time it will take to do the project and how much the project will cost. After comparing offers and portfolios, the client selects one. After you finish the project, the client will rank you, helping you to build a reputation on the site to attract more clients.
Some companies will hire freelance programmers on a semi-permanent basis. You might work on-site with the company, earning a regular paycheck while you work, but the project will only last a short time. This offers the security of steady money for the duration of the project, but also some freedom, as you can work somewhere else when the project finishes.
Create your own software program, then sell it to make a profit. The advantage of this method is that you do the work one time, but continue to earn money off of the work. Consider programming practical software like budgeting or organizational software, games or apps for the iPhone.
Selling software isn't the only way that you can generate an income from your programs. You can also create free software programs to give out. To make money doing this, you should offer a "premium" version of the software that includes more features. Alternatively, you can charge people for handling support issues.
You don't have to do all of the programming work yourself. If you have a knack for picking up projects, you can outsource the work to other programmers for less money, check their work, then collect money from the client directly. This business model allows you to take on several clients at once, potentially earning you more money as you scale up your business.