Don't contract as a contractor to businesses that are programming themselves. Build things for businesses that will be the end user. Most of these types of businesses have less of a notion of how to go about getting tools that will help their business in the first place and it can be a hard sell unless they have an immediate need. Sometimes you have to really learn about the specifics of how the business functions an…
One other benifit of working for the end user is that in many cases you end up being paid for maintaining (for example being a server admin for a web app) the application you wrote for them. This can be a nice source of recurring income.