How to Work as a Programmer From Home

working a programming job from home

Do you hate going to work? Maybe the reason why is because you are stuck in an office. In this article, I am going to share my experience working as a programmer from home. I will let you know what it is really like to work from home as a programmer, and answer the question: is it a goal worth pursuing? Then, I will show you how you can work from home as a programmer too.

A bad case of the Mondays

Whenever I do something on a Sunday, like go to a barbeque, I always hear people talking about how much they are dreading going to work the next day. Everyone usually says something about how much they are dreading it; then one person awkwardly looks at me and says “Well I guess you aren’t upset about going into work tomorrow since you work from home.” And it’s true. I don’t hate Monday’s.

I look forward to starting each workweek because I love programming, and I love helping other people learn how to program too. And luckily enough, that is what I get to do for work: I freelance program and help other people learn how to program through my book The Self-Taught Programmer and my online training platform Go Self-Taught.

One of the biggest benefits of my situation is the ability to work from home. I’ve been working from home for almost three years now, and I’ve never been happier. I don’t plan on ever going back to working in an office. I’ve found working from home has three main benefits: you avoid a daily commute, you are rewarded for productivity (not your total time spent working), and you can set your own schedule.

Avoid that energy-draining commute

I live in Los Angeles and commuting to work in L.A. is a nightmare. Many of my friends commute four hours to work. Two hours there and two hours back. In many cities in the United States, long commutes are the new norm.

When I was working in an office, I was lucky enough to have a relatively short commute. My commute was half an hour. Still, spending an hour driving back and forth between work each day drained me. Cutting my commute dramatically increased my energy and now I get more done each day.

Productive vs. looking productive

The other great thing about working from home is you are rewarded for how productive you are instead of how productive you appear. For example, say you work in an office doing data entry and you are assigned a new project. You’ve been secretly learning to program outside of work, and you write a script that automates your project.

The project would have taken you three days, but now it takes you ten minutes. Because you no longer have any work to do, you decide to go home (and to start working on a new project the next day). Will your boss be ok with that? Probably not. He is going to assume you are lazy and not doing a good job, even though you are very effective. Meanwhile, the person that gets to work early and leaves late is assumed to be a harder worker, even if they are the most inefficient person in the world and it takes them a week to do the same project.

It is like the part in The Office when Michael Scott says, “Jim Halpert. Pros: smart, cool, good-looking. Remind you of anybody you know? Cons: not a hard worker. I can spend all day on a project, and he will finish the same project in half an hour. So that should tell you something.” When you work from home, however, your boss is not biased by how long you appear to be working and can judge you based on your actual performance.

Set your schedule

The other significant advantage of working from home is that you get to set your own schedule. You can work when you are the most efficient. Some people work better in the morning. Others are more efficient at night. Working in an office, you are locked into working from nine to five no matter what.

I like to take a break twice a week during the day and play basketball, and because I set my own schedule, I can do that. I also sometimes work from a coffee shop or the beach (or a coffee shop at the beach), which is a nice change of scenery. Can you imagine how much better it is working from a coffee shop overlooking the beach instead of at an office filled with fluorescent lights?

When you work from home, you can even work from other countries. In two weeks, I’m traveling to Japan to speak at PyCon. After PyCon, I am heading with my girlfriend to Vietnam to continue exploring Asia. I plan to work while I’m there, but working from other countries doesn’t feel like work. Especially when you control your schedule and can sightsee during the day and work at night.

And I’m not the only one that thinks working from home is amazing. Bill Gates just called working from home the number one most important employee perk.

So how can you work from home and say goodbye to your commute, your manager watching you like a hawk, and having a set schedule forever? Well, learning to program of course! So what’s the best way to learn to program? Well, there are several options.


The traditional route is to go to college, but that is starting to change because going to college is becoming more expensive every year, and it is not very effective. It takes you four years to learn to program in school, whereas other options allow you to learn to program in a matter of months.

Colleges are also notorious for not teaching programming well, and not teaching students what they need to know in practice to land a job as a software engineer, let alone a remote one.

Boot Camp

Another route is to attend a programming boot camp. A programming boot camp will get you prepared to program professionally much faster, but they are expensive. They cost around twenty thousand dollars.

Also, most boot camps require you to move to a city like San Francisco or New York to learn in person. If you can’t afford it, or you aren’t willing to put your life on hold, a boot camp might not be the right choice.


Finally, there is the self-taught route. That means learning how to program on your own outside of school or a twenty thousand dollar boot camp. Learning to program outside of school has a ton of benefits. For example, you can do it for much cheaper than it costs to go to a university or a boot camp. You can also focus on the skills you need to build to work remotely as a programmer.

There are a few problems, though. The first is you are likely to get stuck and give up. The other problem is that you are likely to write bad code. That is why it is essential to have a mentor that can do code reviews for you and make sure you are writing excellent code. It is also important to code within a community so that you can get help you when you are stuck.

Climb the freelance ladder

Once you learn how to program, its time to freelance. Freelancing is the best way to start programming professionally. You can do what I call climbing the freelance ladder. That means freelancing on a website like starting with small twenty-five dollar projects and slowly working your way up to bigger and bigger projects as you gain more credibility on the platform.

Eventually, you will work your way up to hundred-dollar projects, then thousand-dollar projects. And the best part is you can start working on twenty-five dollar projects without any experience. Your positive reviews for the small projects gives you the experience necessary to keep climbing the freelance ladder to higher and higher-priced projects, until eventually you are all the way at the top, and you are working remotely from home!


Want to learn to program professionally from home? I’m offering a FREE trial of my training program, Five-Week Coder. You will get the opportunity to join over 1,000 other people in my private Facebook group, get weekly coaching sessions with yours truly, and watch all of my lessons and lectures. I will help take you from a beginner to getting paid for your first freelance programming project. I can’t wait to work with you!




Published by Cory Althoff

Cory Althoff is the author of The Self-Taught Programmer, which Book Authority named one of the best software books of all time.

Leave a comment

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