As a skilled coder you actually have far more options than most people do, and for this we should count ourselves fortunate. However not all of these options are to everyones taste, and several of them are actually quite hard to do right.
The most standard way to earn money is to get a full time job with a software development firm of some kind. This can be great if you join the right company, if not it can be be quite depressing:
At the time of writing this, I have a full-time position with a international software firm, but I don't enjoy my day job one bit because of all the red-tape, the fact that projects are often uninteresting or have focus placed on the wrong areas, and that management are often not technical and expect the unachievable (think: "it shouldn't take you more than a couple of hours optimise the core functionality of the script right?") .
For this reason I'm investigating alternative sources of income - primarily online.
Your first option to escape from corporate life is freelance contracting with places such as Fiverr and Freelancer.com. Sadly you still end up having the same problem of working on other peoples projects, which may not be interesting, and where they expect the world in a very short time. Another problem with freelancing is that it isn't passive income, so once a gig is complete it no longer makes you any money. Make no mistake though, you can still make a reasonable amount even part-time on sites such as these (I myself have made a couple thousand dollars working on Fiverr alone).
I will go into the various options for freelance contracts in more detail in later post.
Teaching is an option
If you enjoy teaching programming, you can make a fairly high hourly income tutoring (you can try your hand at becoming an InstaEdu tutor and earning $20 an hour - be sure you know your stuff before applying though as they evaluate all candidates). This is slightly different to freelancing as you won't necessarily be coding, but it has many of the same problems as contract work.
The only issue you really avoid is that students don't expect to know/understand everything instantly, which means that you can often have a repeat customer for 6-12 months and sometime more. A new issue is that you have to try and find a time to work that suits you and the student. There are a good number of sites that will hire tutors - not only programming tutors - the list is too long to cover in this overview article and will have to wait for another day.
Problem summary so far
- The work is fleeting, and once complete there is nothing to show for it in terms of passive income.
- You still have to work on projects that may not interest you, and fulfil other's requirements.
- Non-technical employers still often have unreasonable expectations.
The ideal solution
To avoid these issues the obvious solution is to sell the programs you want to create - or sell their output in some cases. This is actually harder than you'd think, especially if you're not an experienced salesperson or you don't have a large audience to show your products to. In order to help other software developers (and I suppose any other product creators) I'm going to try to document and post my experiences with selling what I create online. I'll be covering everything from deciding on a program to create and estimating dev times, to the where and how to sell it (and everything in-between).
Programs as Content
There are alternative ways to make money to support your programming habit without selling your programs (an option that will appeal to open source enthusiasts).
The first and simplest option is to give your programs away, but include donate buttons. I've found that people usually won't pay for something if they don't have to, so this option isn't likely to be successful on its own. An alternative to asking for donations is to monetize the traffic that your programs attract - this can include things like ad revenue or affiliate sales.
I will be creating articles for all the alternative types of revenue you can make if you have a large enough audience. But before we get to alternative techniques (or any of the non-ideal options mentioned above), our next set of articles will be on the traditional selling of the products you create (or which your programs generate), and all the steps involved in that process. Watch this space in the coming days as this is what we'll cover next.