CodeGym /Courses /JAVA 25 SELF /The Programmer’s Path

The Programmer’s Path

JAVA 25 SELF
Level 13 , Lesson 0
Available

Why do programmers always look so happy? The answer is simple and a bit disarming: because they do a job they love and they have a lot of money.

Welcome to the world of programmers.

Programmer salaries

I’d like to talk about programmer salaries: what the situation really looks like, where it’s better to work and where it’s not. If you’re not a programmer and try to figure this out on your own, you may end up with a very contradictory set of data.

The point is that the main factor affecting a programmer’s salary is not their qualification, but the place of work. Sometimes, with the same qualifications, the difference between a good and a bad place can reach 2–10 times(!)

At any given moment, your qualifications are constant. You can’t become twice as experienced in a month and get paid twice as much. But you can change jobs in a month and earn twice as much. So let’s figure out where it’s best to work.

Here are three factors that strongly influence salary levels in companies:

1) Whether software development is the company’s core business.

2) Whether the company is oriented toward the international market or the domestic one.

3) Whether the firm’s owner is a Western company or a domestic one.

Note that the city you live in is not decisive. I.e., if you earn 10 times less living in Dresden than your friend does in New York, the factors listed above are at play.

Specific figures

It’s hard to give specific numbers for the whole world. Let’s describe the situation in Eastern Europe, which is generally true for all countries where IT outsourcing/outstaffing is more or less developed.

Here’s how much a Java Senior Developer with five years of experience might earn, depending on the level of the company they work at:

Level Monthly salary Description
1 $200 — $500 At the very bottom are firms where IT is a non-core business line, the customers are on the domestic market, and the owner is the state. For example, an IT department in the tax office or another government agency.
2 $500 — $1500 Below average are IT departments of various non-governmental organizations: banks, etc.
3 $1,000 — $2,500 Mid level — companies that develop software.
4 $3,000 — $4,000 Above average — companies that develop software and have customers from the West.
5 $4,000 — $5,000 At the very top — companies that develop software, have Western customers, and also a Western owner. There are few of them. Open positions are not frequent, and getting in is not easy. But they do exist.

What’s the strangest thing about the current situation?

Half of all programmers work in level-1 and level-2 firms.

Want to know the catch?

There are hundreds of open programmer vacancies in level-3 and level-4 firms. These companies are ready to offer higher salaries and usually — much better working conditions.

A real-life situation: there are two Java Juniors. One goes to work for $100 a month (at a level-1 firm), and the other — for $1,000 a month (level 4). Why take less?

What you can achieve if you don’t slack off

If you continually work on self-improvement in programming, your salary, starting today, will change roughly like this (± a few hundred dollars depending on the city you work in):

Plan

0–3 months (Apprentice)

You know very little about programming. Maybe you studied it at school and/or university, but very superficially.

Your task — learn programming and study Java.

Your goal — get hired as a Java Junior at a company no lower than level 3.

During the first three months in the plan you don’t earn anything, because you’re simply learning programming. In the future, when you have a family and a bunch of loans, changing specialization will be much harder. To fix a mistake, you’ll need to set aside money for a year of normal life. Don’t make silly mistakes.

3–15 months (Java Junior Developer)

You’re already working as a programmer, and your experience grows every day. Don’t take it easy. You still have a lot to do before you can rest on your laurels.

Your task — study the technologies you’ll need as a Middle developer. Which ones exactly? The world changes. We can recommend things now, and life will change everything. Find a few job postings on the internet and look at what they require. Be sure to read Bruce Eckel’s “Thinking in Java”.

Your goal in your first year as a Java Junior — grow to the Java Middle level. No one says it’s very easy, but it’s quite possible for a determined person. This will immediately bump your salary to around $1,500.

Year 2 as a programmer (Java Middle Developer, level 1)

You worked hard last year, and now you are a Java Middle Developer. With a salary of about $1,500, you can live comfortably. At work you get serious tasks, and your experience grows like crazy. You’ll reach Java Senior Developer in two to three years. There’s no point rushing this process. You won’t see a big salary jump anyway.

Your task — study design patterns and read Steve McConnell’s “Code Complete”. Improve the quality of your code and your teamwork skills. You can make it a rule to read one IT book every week. Then in a year you’ll be 50 books smarter than the rest. Don’t put this off: you won’t have more free time. It’s quite likely you’ll start a family, or it will grow if you already have one.

Your goal — choose a few technologies in which you will specialize as a Senior developer. You won’t learn everything anyway. Being a guru in a small area is a good plan.

Year 3 as a programmer (Java Middle Developer, level 2)

You’re already an experienced Middle developer and are thinking of becoming a Senior Developer. That’s nice and prestigious. Your salary exceeds $2,000 (data for Kyiv). From this moment, the demand for professionals like you exceeds the supply. You can always find a job in a couple of days and are unlikely to earn less than you do now — unless you do something foolish.

Your task — continue studying your chosen technologies. Work better. Not for your employer, for yourself. Ask to join projects with promising technologies (such as Big Data at the time of writing this article). You’ll be spending 8 hours a day in the office anyway, so why not get a bit more money for it and, more importantly, invaluable experience that you’ll need later.

Your goal — change jobs. There are good teams everywhere. You’ll encounter new projects and technologies. Don’t grow roots too early. If you’re still working at a level-3 company, consider moving to level 4. Level 5, although very attractive, is not attainable yet.

Year 4 as a programmer (Java Senior Developer, level 1)

You’ve become a Senior developer. Congratulations. Maybe you became one undeservedly, and you feel it. Still, congratulations. It doesn’t matter whether you deserve your position right now — what matters is that you become worthy of it in the future. Admit it, it’s better to get a great job first and grow into it in a year than to grow to a great position and then wait another year for it.

I hope you didn’t forget my advice and read one book a week — now any student would envy your abilities, or even worship them. Think about it: you have a solid salary approaching three thousand dollars. You’re probably still young. The whole world is at your feet.

Your task — review your chosen technologies once more. You may need to change specialization. The world has changed, technologies have changed, and you’ve gained knowledge over the last two years. What you settle on now will be your choice for the next few years. It’s the perfect time to choose your favorite technologies.

Your goal — choose a direction in which you can continue to develop. There are many, and no one can list all the options, but you need to choose right now. If you slightly change your present today, it will lead to big changes in your future.

Year 5 as a programmer (Java Senior Developer, level 2)

You’ve decided on your future and are working to bring your dream to life. A well-chosen direction combined with the desire to move forward — and the result won’t keep you waiting. Congratulations. We’re glad there’s one more happy person in the world.

There’s a wise truth. People often overestimate what they can achieve in one year and underestimate what they can achieve in five. Look back five years. That’s how it is.

Your task — don’t make foolish decisions and don’t give in to laziness.

Your goal — choose a direction and keep moving. Did you think this was the end? Think back to your senior year. This isn’t the end; it’s just the beginning.

Future specialization

You can grow as a technical specialist (top branch), as a manager (bottom branch), or as a hired professional/independent consultant (middle branch). It all depends on your preferences.

A programmer’s career

The programmer’s profession differs from other professions. There’s no need to make a manager’s career to earn well. It’s not uncommon for a senior programmer to earn more than their manager. The more experience you gain, the more your relationship with management moves from “boss–worker” to “movie star and their manager”. Spoiled, self-aware programmers pick and choose both projects and vacancies. Let’s be happy for our own.

What does it take to become such a world-class, in-demand programmer? You must have extensive experience with the newest and most sought-after technologies. How do you achieve this? The answer is below.

After you get your first job as a programmer, two things start happening to you that, oddly enough, aren’t always obvious.

1. You quickly gain experience in real projects. One year of experience as a programmer can give you more knowledge and skills in your specialty than 5 years of university. Experience is such a significant metric that IT job postings often say “Java developer with three years of experience required”.

2. You spend 8 hours a day studying new technologies, and you’re handsomely paid for it. The importance of this factor is hard to overestimate. In some cases the skills gained are so important that you could work for free — or even pay for the opportunity. If you choose the projects you agree to work on wisely, a dizzying programmer career awaits you.

But then, what should you choose?

Often, if you don’t know which technologies will be useful to you, you start choosing by “like/don’t like” or “trendy/not trendy”. It’s hit or miss. So it’s better to know in advance where you want to end up.

There are many paths for a programmer’s development, so for simplicity we’ll highlight a few and describe our view of the situation. Don’t take this scheme as a rigid position — it’s more of a simplified take meant to add at least some clarity.

The two-hundred-year-old programmer.

If what you like most is programming, your path is Senior Developer, then Tech Lead Developer, and architect. You can also just work as a programmer for 50 years. Often the salaries of senior programmers and tech leads exceed those of their managers. Don’t miss out.

Manager. Lucky you, you’re not like everyone else.

You’ve gone over to the enemy side. Kidding. If you’ve discovered strong organizational skills, your path is Team Lead and then Project Manager. This gives you a chance to become a director and helps when starting your own business. That’s what you want, right?

Steal a tractor.

If you already have a family and kids, you may want a quiet and comfortable life in a country with a stable economy. You’re thinking about relocating/immigrating to Canada, the USA, Switzerland, or even Australia. You have excellent skills and a profession in demand. You won’t have to start as a dishwasher. For example, you can start as a Senior Java Developer — probably with a higher salary too. Not bad at all.

See the whole world, except Paris, and don’t die.

You don’t have a family yet and you want to travel. Upwork is your everything. Find a client, negotiate rates — from $20/hour — grab your laptop and go. Your income should be enough to live comfortably in almost any country in the world. Why not start living your dream right now?

Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION