Entry No. 4

Salary vs Growth?

As a fresh graduate, should you go after a high-paying job, or look for places you can grow?

My answer to this is deceptively simple: so long as the job pays an acceptable salary, ignore salary and pick a job where you can grow.

Or, to express this as an SQL query:

SELECT * FROM jobs WHERE salary > x ORDER BY learning_rate

Why Companies Pay High Salaries

A high salary can be a very unreliable metric to use. This is because companies pay high salaries for one of two reasons: i) they pay you because you’re good. Or ii) they pay you well because the job sucks.

(There’s actually a third reason: because these companies are from overseas, and can afford to pay high salaries, but I’ll talk about that in a bit).

As a fresh graduate, you’re not likely to be very good. You may be on your way to being good, you may be a genius at exams, but unless you created Linux in University, like Linus Torvalds did, you simply aren’t worth as much. Therefore it’s more likely that the company is paying you a lot because the job stinks, and people don’t want to do it.

How can a job stink? Well, when I was just out of university, some of my highest paid friends worked on oil rigs, for petroleum companies. They were petrochemical engineers, and they were paid highly because they would live on oil rigs for months at a time, far away from friends, family, and good food.

Similarly, outsourcing companies sometimes pay high salaries, especially when compared to the average wage. This is usually a Very Bad Sign. These companies do this because you’re not going to learn as much. They also do this because their work is so soul-crushingly boring (imagine integrating SDKs for crappy games day-after-day) that you’ll want to shoot yourself in the head after a bit.

Now, I’m not saying you should get a job with a low salary. What I’m saying is: don’t be motivated by salary, at least not when you’re a fresh grad.

Instead, evaluate the job on other characteristics. So long as the job pays >= average, look at whether the job will allow you to grow faster and become better than all your peers. The second criteria matters more than the first.

Evaluating jobs like that will also allow you to pick jobs from overseas companies that pay high simply because they can. For instance, a company that sells software in the US makes a lot of money, so they can spend a lot on employees in Saigon when they open an office here. This is one situation in which a high salary does not mean a lousy job.

Why Choose Growth?

If salaries aren’t as important, why choose personal growth?

This is obvious if you pause to think about it. Remember when I said that companies pay good salaries because you deserve it? Well, a few years down the road, you will become good enough to justify a high salary. And your friends who started out of college with sucky-jobs-that-paid-well wouldn’t be so easily promoted.

They wouldn’t be so easily promoted because of two reasons: firstly, the rate at which you learn compounds. The more you know, the faster you learn. Sooner or later, you leave those who don’t learn as much behind.

Secondly, we are in an industry that rewards learning. The software world changes very quickly. People who don’t learn to learn, especially in the early years of their careers, will be crushed by the rate of change in this industry.

It is for this reason that I believe picking a job where your rate of learning is high will be the most important thing you can do for your career. This is especially true when you are young.

“Wait a minute!” some of you may say, “That’s not true! Some companies promote you based on how long you’ve been with the company. Others promote you based on how many years of experience you have on the job.”

The best companies in our industry value skills, not years of experience on the job. The companies that _do _ask you for your years of experience aren’t companies that you want to work for anyway. (Think about it: do you want to work for a company who promotes people based on seniority? That isn’t likely to be a company that you want to work for, because your boss is likely to be an idiot. Why is he likely to be an idiot? Because all the good people leave).

A good way of thinking about this tradeoff is that some jobs allow you to invest in yourself. Others allow you to cash out on your skills.

When you’re a fresh graduate, out of university, pick a job that allows you to invest in yourself.

Good Signs

How do you know a company is a place where you can learn a lot? Well, there are a few signs. When you’re interviewing with them, ask the following questions:

  1. Does the company take employee growth seriously?
  2. Does the company provide good mentorship?
  3. Are there code reviews?
  4. Is there a structured on-boarding program for new hires?
  5. Does the company provide you with books, or send you to seminars?

Some of the answers to these questions depend on the kind of company you work for. Product companies and certain kinds of consulting companies, for instance, are more motivated to grow their employees. Outsourcing companies and certain IT departments aren’t.

Be careful which kind of company you work for. Your learning rate matters to your future career.

This post is part of the FCS Career Playbook for Software Engineers in Vietnam. Check the guide for more software engineering career advice.