The Three Keys To Successful Self-Employment In Programming And Consulting: Introduction

Some of the more common questions in the Computers & Internet | Programming and Design category on Yahoo! Answers center on the business side:

  • What programming languages should I learn?
  • What do I need to know to start my own business?
  • Am I too old to change careers / Is the market saturated with my type of programming?
  • How much should I charge / How much money do designers or programmers make?

The problem is that these are the wrong questions to ask, because they’re exceedingly ancillary to business success; or, more accurately, they’re not the right way to think about being in business.

The most basic advice I can offer about being in business for yourself — and this applies to any trade — is that your success is entirely dependent on three things, in order of importance:

  1. Who you know. Your social network — people who know you and respect you, and the people who know and respect the people you know — is the single greatest key to doing well in business. You could be the greatest programmer since Linus Torvalds, but it won’t mean a thing if you can’t find and keep customers.
  2. Drive and attitude. Your social network is built, and strengthened, on your ability to put in effort and be positive at all times.
  3. Your skills and smarts. Yes, you do need to be able to do the work you contract.

But just so I can be thorough, let’s address those common questions.

What programming languages should I learn? Whichever ones you find interesting and fun to use.

Seriously, there’s plenty of work to be found in any but the most ancient of programming languages, and you can even find work in those. You can hop on over to or and see plenty of work for hire in all sorts of languages.

What’s more important than knowing a specific programming language is understanding some simple concepts. You should understand the ideas behind object-oriented programming, since almost all contract programming will use that methodology, and you should have a generalized understanding of how to properly structure data, by which I mean, you should understand how relational databases work, and be able to look at some information and know how to put it into a relational database.

There is one basic language every programmer eventually needs to know fairly well: SQL. Which flavor you learn doesn’t really matter, since 9 times out of 10, one SQL statement will work on other SQL-compliant database platforms, and that one time it doesn’t, you can generally get it to work with minor adjustments.

But as I noted before, the languages you work in should be about what languages you feel comfortable writing. You need to be comfortable to be confident, and you need to be confident to project the right attitude, and you need the right attitude to build and strengthen your network.

What do I need to know to start my own business? You’ll need some really basic advice about complying with any local or state business laws (such as the need to register or license your business, liability insurance, workers’ compensation insurance, etc.), and you’ll need some basic advice about complying with local, state and federal taxes.

At the fundamentals level, running a business isn’t really any different than running a household with a child. But some people need tacit proof they were pointed in the proper direction, so for them, help is available.

For basic help with starting a freelancing business, I recommend using SCORE. Some of what they want to talk about — business plans, loans / lines of credit, etc. — don’t really apply to freelancing, but they can at least familiarize you with the business laws and regulations in your area, and help you get a leg up on paying taxes.

Plus, since they work through the US Small Business Administration, they often know about special programs and benefits you may qualify to receive, such as loans, grants or special consideration for government contracts.

There’s also the For Dummies series of books, which really do hand-hold you through the process. One, Freelancing for Dummies, is written from the viewpoint of a freelance writer, but for most intents and purposes, magazine articles and computer programming are pretty much the same.

There’s another book, titled Home-Based Business For Dummies, which is geared more toward eBay sellers, Herbalife sales and the like, but which also contains good, basic rules about working from home, and is more geared toward balancing being at home with being productive. If you worry you’re the type who will be distracted if you work from home, try this book.

For Dummies also publishes Small Business for Dummies, but I consider that to be more for those who are going to sell inventory or open an actual office, neither of which really applies to freelancing.

One more important item: Good records, especially financial records, are absolutely critical. Managing your cash flow (the amount of actual money you have in the bank) is a lot easier if you know what work is coming up, what work needs to get done and which payments are overdue.

I use Quickbooks Premier Edition for my business accounting. Yes, the program is very expensive, has a learning curve, and constantly prompts you with upselling offers, but I assure you, you’ll make up the cost and time when you see how well it helps you manage your business. Plus, if you use an accountant, this is what he’ll want you to use to manage your books.

Am I too old to change careers / Is the market saturated with my type of programming? No and no.

I’ll get deeper into these topics in a future post, but again, there’s plenty of work for everyone in every genre of programming, and if anything, being older helps when you freelance. Unless you’re a total ass, advanced years means a larger network, and the larger your network, the more success you will have.

How much should I charge / How much money do designers or programmers make? This is the entirely wrong way to think about pricing and measuring your success, but most people think this way because they’re used to working for a wage.

You should charge as much as you think you can make from a job and you can make as much money as your network, drive, attitude and skills allow. I know that sounds cavalier but it’s the gospel truth.

Your work is valuable. How much it’s worth depends on two assessments of value: Whether the amount of money you’ll make for the project is more rewarding than watching Oprah or taking the kids to the beach; and whether your customer would rather part with the money you want for the project than continue to suffer the problem you will fix.

Pricing is a bit more complicated than that, and again, I’ll address it in a future post.

But you can’t get into freelancing and think, “I want to make $30 an hour,” or, “I need to make $40,000 a year,” or, even worse, “I will charge the average of what other people charge.”

You do want to have a realistic picture of what your financial needs are — mortgage, insurance, food, etc. — and know that you can find that much business in your market, before you decide to freelance full-time.

But the Law of Attraction is 100 percent true: You can’t think about the money you need to make. You can’t focus on an hourly rate. And you most certainly can’t lump yourself in with everyone else in your industry in any way.

You need to think in terms of having success, not meeting bottom-line criteria. You can’t think, “How much does everyone else make?”, you need to think, “What do I want to accomplish with this business? What does freelancing give me that being someone’s employee doesn’t give me?” Again, it’s about drive and attitude: You should be motivated to freelance because it’s the better option for you than working for someone else, and you should have the attitude that what you want to accomplish is not determined by other people, but by you.

The money will take care of itself if that’s the case.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  • Check out the Commenting Guidelines before commenting, please!
  • Want to share code? Please put it into a GitHub Gist, CodePen or pastebin and link to that in your comment.
  • Just have a line or two of markup? Wrap them in an appropriate SyntaxHighlighter Evolved shortcode for your programming language, please!