From zero to six figures: How I taught myself to program.


Teaching yourself anything can be a trial and you often find out more about yourself than you would probably want. Eight years ago, I made one of the biggest decisions of my life, which was to teach myself programming. I look back now and can’t imagine my career taking any other route. I’ve made friends along the way, traveled, learned about myself, my limits, and my capabilities. I can comfortably say that teaching myself to program was one of the greatest and most impactful decisions I’ve ever made.

Like most success stories, it’s important to consider the context. At the time, my fiance now wife and I had sold our first home and headed south in search of adventure. One of the catalysts for this adventure was a new career for myself. Previously I had dabbled in all sorts of career paths, including but not limited to Labourer, Pipefitter, Paramedic, and Neuroscientist. It was clear that I still hadn’t figured out what I wanted to be when I grew up. Except I was growing up fast and I knew that I had to make a fundamental decision to shape the future of my career. That’s when I decided to teach myself programming.

Learn the Languages

My first step was an obvious one. I had to learn some programming languages before I could program. Under the guidance of a close friend with experience in the industry, I began diligently consuming free educational content on the internet. I learned HTML, CSS, PHP, and Javascript through sites like Smashing Magazine and NetTuts. A lot of what I was learning had very little context, but more importantly it got me familiar with reading and understanding these technologies.

A lot of focus in the development industry is placed on building. In reality, the vast majority of paid work is fixing. Fixing someone else’s mistakes or changing the way something works. Learning to read an understand code will net you unlimited potential work. I know this because the majority of my work is fixing and changing existing code, and it’s made me the majority of my revenue.

Learn the trade

Once I had a solid understanding of these languages I looked for a way to convert that knowledge into a practical application that I could use to make money. At the time, PSD to WordPress was a valuable skill set with a strong market demand. How did I know this? Combing freelance job boards and industry insight from a friend gave me a feel for what potential clients were looking for. Yielding this knowledge, I began consuming more educational content, specifically around converting photoshop files to WordPress themes.

Make Your First Dollar

Once I was comfortable with this process, I started looking for paid gigs. Like most beginners, I was struck with the chicken and egg problem. Clients wanted someone with experience, but to gain experience I needed clients. The reality is that you need a combination of hard work, persistence, and a little luck to overcome this obstacle.

As I worked my way through tutorials, I slowly added the resulting code to my portfolio. I knew I couldn’t get real client work, so imaginary client work was the next best thing. I also began applying for jobs on sites like oDesk (upwork now), with little discrimination.

It took months before I landed my first paid job, but I remember it clearly. A client needed some bugs fixed on their WordPress site and decided to take a chance with me. I’m sure the fact that I was bidding at $10/hr had some influence on their decision. I happily accepted the job and completed it easily with the knowledge I had been accruing over the past few months. All said and done, I believe I made around $45 from my first freelance job. It doesn’t sound like much but the real value came from the validation and confidence it provided me.

Double It

Once I broke the ice with my first client, it became exponentially easier to get more. At this point, I could tell by the volume of work that I was receiving, that my rate was under market. This is obvious now, but at the time I was pricing myself according to my own assessment of my value.

I learned very quickly that the perception of your value should have no bearing on your rate. The market will dictate what you can charge depending on the services you provide. So how do you determine what the market will allow you to charge? It’s very simple, double your rate. As you get work, continue to double your rate until you begin to notice a drop in volume. Then continue to raise your rate in fixed increments until you reach the sweet spot where your work volume is acceptable in correlation to the amount of revenue you’re making.

Remember, the more you make per hour, the less volume you need. This also has the added benefit of landing you higher quality clients. It’s an odd paradigm but often the clients that are willing to pay more are also easier to work with.

This is exactly how I pushed from $10/hr into six figure revenue. Every couple of gigs I would double my rate until I noticed that I was starting to get less responses from clients. Then, after every large project, I would bump my rate up another $5. After the first year, I landed an ongoing contract at $50/hr creating WordPress websites for a prominent media company. Nowadays, my rate increases have slowed down over time, but the length and security of my contracts have increased exponentially.

Sail Off Into The Sunset

This is how I started my career as a self taught programmer. However, as we all know, the Devil is in the details. It’s difficult to describe the amount of effort and determination I applied in initially learning technologies, in one blog post. I want to assure you it was not easy. But, as they say, nothing ever worth achieving is. If you think that this career path is for you, my best advice is to endure. Push past the difficulties and you will reap the benefits.

Thanks for reading!


Does your resume suck? Have a Senior Developer write one for you at

Connect With Me

1 Comment From zero to six figures: How I taught myself to program.

  1. Pingback: How to choose the correct technologies to learn | Full Bit

Leave a Reply

Your email address will not be published. Required fields are marked *