Is it Better to be a Programmer or a Doctor?


This post is for those frustrated by the salary peak of software engineers.

As I detailed in Can you Make Big Money in Software, the average salary for a senior developer in the United States is $105,000. Salaries are higher at the best companies in the industry and in specific niches, like finance, but these are the exceptions.

Many developers get stuck at the senior level. Some go into management, and some go off to start companies. But if you want to remain an individual contributor, it’s hard to make 2 or 300 thousand.

$105,000 is not bad compared to the median income in the U.S., but everything is relative. A lot of comments I’ve gotten recently compare software people to doctors, and they bemoan the fact that doctors have salaries that are more than 2X as high.

But is it a fair comparison? Let’s discuss some of the advantages and disadvantages.

Upfront Investment

To be a doctor, you have to do 4 years of medical school and then 4+ years of residency. For more advanced specialties, like some types of surgery, you’ll spend 5, 6, or even 7 years in residency.

Granted, you make money during residency, usually anywhere from 40 to 70K, but with the number of hours you work you might as well be a barista.

A buddy of mine is currently a resident in Internal Medicine, and I think his hourly wage comes out to $8. That’s what happens when you work 80+ hours a week.

Medical school is expensive. You might find in-state tuition, but if you can’t, you’re looking at an investment of around $200,000.

In contrast, you don’t have to do anything to become a programmer. It helps to learn the subject in college, but there are many people in the industry who were perfectly successful with no formal education. Everything you need to learn is available online.

So instead of spending 200K to go to school for 4 years, you immediately begin making a salary, and many times your salary will be higher than people stuck in residency.


Here’s my biggest issue with going to medical school: the lifestyle. Essentially, I’d have to give up my youth to become a doctor. The amount that I see people working in medical school and residency is ridiculous. They work 60-80 hours a week for years, and they’re doing it during their 20s and 30s.

I’ve been through periods where I work 60+ hours a week. Usually I like working, but I have no life when I get over 60. I like staying in shape, and I like dating. I wasn’t willing to put those things on the sideline for many years to become a doctor.

I know people who work as doctors in academics, meaning they work for a major university instead of a private practice. The pay is about half of what it would be in private practice, but it makes your lifestyle tolerable. After 30+ years in the field, they’re still putting in 50+ hours a week. At least once a month, they come in on the weekends because they’re “on-call”. This is the “lenient” side of the industry. The hours and on-call schedule in private practice are much worse.

My takeaway is that doctors are just habituated to working more. They start their careers working like crazy, and then they never reduce their working hours to match the rest of the population.

People bemoan the “high salaries of doctors” but look at what those high salaries cost. When I even hint that programmers should work harder to get ahead, my comments sections turn into a flame war. People start yelling at me because of work life balance, and how dare I suggest they work longer than 40 hours a week! Those same people will turn around and complain about the high salaries of doctors, even though doctors probably work 2-3X the number of hours during their careers.

Career Flexibility

When you become a doctor, you’re basically stuck as a practicing doctor for life. Of course this isn’t entirely accurate, you can choose to do whatever you’d like. But after the huge upfront investment you make, it wouldn’t be wise to quit.

In contrast, programmers don’t have that limitation. Programmers can go into sales, business, entrepreneurship, or completely change careers. Most of us are good at math and logic, which means we could make careers in anything math related. Finance, actuaries, and economics are all on the table for us.

Back when I was looking at medical school seriously, I didn’t know myself well enough to make a 10+ year commitment. I wasn’t sure that I wanted to be a doctor at all, let alone making a commitment for the rest of my life. I figured that once I started down that road, it’d be difficult to stop, so I didn’t do it.

My Thoughts

I don’t like the “salary peak” of programmers, or that you can’t make more once you reach a certain level. Just read my post: How to Avoid the Software Salary Ceiling.

If you’re a programmer and you care about how much money you make, I would recommend you shoot for the top of the industry. At Google, Facebook, Apple, and Microsoft that 105,000 number doesn’t mean anything. Salaries can be 2X at those companies. Then you get all the great benefits of being a programmer: 0 upfront investment with a lenient lifestyle, and your salary is close to what you’d make as a doctor.

If you can’t reach those top companies, then I’d take a much closer look at medical school, assuming you can stomach the hours.

At the same time, keep this in mind: I have numerous friends in training for medicine. Whenever I have any of them to my house, they always make comments about my lifestyle. They talk about how they made a mistake by going to medical school, and they wish they could live like me.

So next time you think you chose the wrong career, remember that the grass is always greener when you look at other people, regardless of what you do.

photo credit: The Stethoscope via photopin (license)