Are you tired of your job? No prospects? Perhaps just starting your journey?
In this article we will consider what path you need to go, how much time, effort and money you need to spend to reach the level from scratch when they start sending you invitations to work abroad on very tasty conditions.

ITKarma picture

Hello, my name is Alexander Zelenin. I am a programmer with over 15 years of experience. During this time, I managed to work in positions from a web developer to CTO, in companies of different levels (from 5 people, up to 2000+, startups, corporations), in different countries and cities. Also interviewed more than a thousand people all the time, taught educational courses, mentor and so on.

* This article is solely my opinion. It does not pretend to be complete, absolute correctness, lack of errors, inaccuracies. Use common sense when making any decisions and take responsibility for them personally.

- Is a relevant higher education necessary?

Not. It does not directly affect either available work, salary or opportunity. The diploma helps a little with the process of obtaining a visa, but has never been a stopper. Over the course of my career, I have been asked a diploma only when everything is already signed and you need to arrange a residence in the country. The employer has always found ways to resolve this issue.

- But, is it easier with a higher education?

Yes, since many of the topics were somehow addressed during the training. Even if everything is forgotten, then it will be faster to restore knowledge. Then if it is - good, no - well, and figs with it.

- I am an introvert. The programmer is the coolest option for introverts, right?

How to say. Until a certain point, maybe yes, but in a couple of years, communication skills will be required for growth. You can resolve these issues as needed.

- Is it hard to learn?

Yes very. Of course, this is all individual, and it is very easy for someone (to me it all seemed very easy, but the journey was long), but, basically, everyone who retrained said it was very difficult.

The main problem is that you start in a new field for yourself (especially when you were an expert in another) from the bottom. The constant feeling that you are dumb, you don’t know enough, you decide slowly and so on. This is a serious challenge. Much more serious than it seems at first glance.

- Is it worth it at all?

It depends on your vision of the world, current conditions and a bunch of other factors specific to you.

A high-level specialist can count on the following (at the time of this writing):

  • For the Russian Federation: a salary in the region of 200,000 rubles is white, voluntary medical insurance (per family), cookies, a free schedule, payment for education/kindergarten for children, trips to specialized conferences, high stability, interesting tasks, a full package for moving (apartment for a month), tickets, transportation of goods, assistance with finding housing, etc.)
  • For Europe: a salary in the region of 5,000 euros, and in principle, all that is higher. A package for moving often also includes a one-time payment of around 7,000 euros. Often, even a local pension starts to drop and there is an opportunity to get a residence permit/citizenship later
  • USA/Canada/Switzerland/Middle East: a salary in the region of $ 10,000, and all the buns are higher

- What does “high-level specialist” mean?

It is customary to conditionally divide specialists into 3 levels. Often the requirements vary widely, but in general they are as follows:

  1. Junior - can solve problems efficiently, but the help of more experienced colleagues is required in the event of confrontation with uncertainties (the task is not clear, it is not clear how to solve, it is not clear who to ask, and so on)
  2. Middle is an independent unit that can solve the problem very well and collect all the information from the right sources
  3. Senior is an expert who knows well not only the software part, but also understands the business in which he works and can offer solutions at completely different levels

- Okay, and what is the time to study on each of levels?

The very first stage, perhaps the most difficult psychologically.At Junior’s, you’ll need about 1,500 hours of clean time (half a year for 8 hours each day).

After which you will work as a junior for about 1.5 years.

After which the middle is another two years.

If you have not changed the subject area, then welcome to the seniors (4-5 years in total).

- Wait, wait... I've seen courses, there 3 times a week for 2 hours and two months later they promise me a salary of 100,000 a month!

Well, if they promise, then it will be so (no).

I taught several such courses solely for my personal interest. Even having increased the load on students by the clock 2.5 times (5 hours each), by the end of the second month a good “overview” of technologies was obtained.

There is almost no competitiveness after such courses. This does not count for “experience”. Well i.e. you can write at least 5 years of experience in your resume, but that will not give experience.

- Okay, okay, but is there any benefit from paid courses?

In general, there is, if you don’t sit and wait for the weather near the sea, but actively use the opportunity to communicate with the mentor, provided that in addition to these courses (which are like 6 hours a week), you also invest your 34 hours on top.

- What courses do you recommend?

Free. I'm serious. The main value of the courses is communication with the mentor. This ends their benefit. The problem with many such platforms is that: there are a lot of participants and the mentor’s attention is scattered, mentors are not qualified.

Often platforms offer some mere pennies for their implementation, which almost immediately eliminates the appearance of good specialists who are ready to lead them (except for ideological ones, which are few and you will find FIGS.)

- Uh, so how do you study then?

  1. Be sure to find a personal mentor.
    Without this, the whole process will either be slowed down at times, or you will leave without losing a lot of time there. How to find a mentor? The best way is among friends and acquaintances who are either already a programmer or studying (at least six months). Usually programmers do not mind sharing knowledge and helping.
    Another way is to hire a mentor. The disadvantage of this method is that it costs money. The plus is that you can more accurately choose for your needs. Here you need to take into account the salary of good specialists (see in previous questions) and understand that even a few hours a week will cost decently.
  2. Decide where you want to work and what to do
    This is necessary immediately to select the relevant technologies for study and be useful to this company in six months
  3. Make a plan and set deadlines
    A mentor will help you make a plan. This is unrealistic because you don’t know what you don’t know

- Mentor, mentor... what, absolutely not without him?

It is possible without it. But then you need to read a lot, do it, try to navigate everything and constantly check yourself constantly.

I had occasion to communicate with people who have 10+ years of experience, and according to knowledge, they do not even reach the Jones. How it turns out is a difficult question. It’s not easy to catch the moment of stagnation.
You can monitor the market, watch what technologies are looking for, watch different solutions fresh and so on.

And then find a mentor. Even if you are already a senior, it’s always cool to get advice from a more experienced specialist.

- An article, like, about how to "change" a specialty, and you say that you need half a year for 8 hours. How to combine with work that? Maybe a year for 4 hours?

Caught. That's a very difficult question. According to previous experience, reducing the number of hours increases the duration of training disproportionately (i.e., 4 hours will not be the expected year, but, say, 1.5-2). Also, depending on the current work, the assimilation of complex material may simply not go and everything, that is, combining it may not work. It all depends, everything is individual.
One way is to accumulate funds and devote half a year to such a transition. This can be very difficult when there is already a family or other requirements in the form of mortgages and the like. It may also turn out that it is difficult to find a job or some unforeseen circumstances like coronovirus on the go.

Another way is... well, complete. What did you want? :-D

- My friend completed the course in two months and began to receive $ 5000 per month immediately after

Several options: either he lies, or he is a genius (in this case, the course has nothing to do with it, it coincided), or he was lucky (a friend hired him in a cunning way, etc.), or it’s something just super narrowly specialized and he found a loophole. Let him tell you how. It also happens when a startup does not know where to spend money from an investor and overpays clearly. In the first company with adequate development, the picture will be completely different.

- Where to look for work?

In capitals or, at least, cities with over one million people. If you are not in Moscow, Kiev, Minsk or where you are there - get ready to move. Local markets are too small and cannot provide enough vacancies (especially for beginners), opportunities for growth are small, and so on. In general, if you delete the entire article and leave only this recommendation, it will be one of the best career decisions (!, But may not be the best for your other factors).

There are exceptions when the development offices of some large companies are located in small cities. If you aim at such a company, or it is in your city, it is advisable to compare all the options with each other in advance.

- Can I get a job right away?

You can, it will be more difficult, first of all, for you. Not because the work itself is different, but because the answers to the questions will be delayed, it will not be possible for a person to come up and show with a finger where, what and why. Yes, there are a bunch of tools now (TV, chats, Skype, boards are different), but in terms of comfort and speed of communication, it is different. If you aim at a remote site, then you need to be ready to figure x2 from the norm, to at least keep up with the adequate pace.

- I'm 45. Will Juniur take me without a living experience?

Yes, they will. Age will even play a plus for you, because a lot of experience from life shifts well to technology. With a high probability you will be able to get to the seigneur much faster, thanks to everyday experience (which begins to play a greater role from the middle stage than technical skills). With relocations to some countries it can be more difficult if the age is large and there is no tower, but this is also solved.

- What language to learn?

Depends on what you want to do. If you do not want to play the lottery and go on a safe path - Java is your choice. In any case, it will allow you to go all the way without a strong technological shift and with a very good pay.

If you have a friend who promises to get you a PHP developer in half a year, this could also be a good candidate. Because language is not important.

- I thought you were joking about "English." Should I teach him?

Not at the start. Despite the fact that a lot of documentation, information and articles are in English, all this can be absorbed through translators. English is needed when you decide to move. A good moment to start learning can be a couple of months after joining Junior’s job. And yes, you will definitely need to communicate with native speakers - be prepared to invest money in this as well.

About the translator, a mini-example: just recently I had to come across a library, relevant documentation for which exists only in Chinese (MyBatis-Plus) - Google translate helped me figure out what's what without any special adventures.

- Wait, you said the language is not important... what?

This is not entirely true. It is important, of course, but after a certain stage (senior) you will not care what language to write. The concepts on which the program is built are transferred from language to language, and it is their study that takes much longer.

Relatively speaking, it can be imagined that a professional writer decided to write a story in a language other than his own - the story will not be so expressive and beautiful, but the story itself will be cool, because he already knows how to write a cool story. Language is just a reporting tool.

- Okay, can you give me a plan on what to do then?

  1. Decide what you really need. Is it worth it?
  2. Decide what you want to do. Ideally, make a list of companies in which you would like to work. Ideally, choose where you want to be in six months, two and five.
  3. Write to the company where you want to work in six months. Find out the terms of employment, what you need to learn and so on.
  4. Make a plan for the topics you need to study (from job descriptions and the information in paragraphs 2 and 3)
  5. Teach, practice. Everyday. Every. Mandatory. No pauses.
  6. Solve programming problems. At least 1 per day, at least an easy level.
  7. As you progress, you can contact company recruiters and look for an opportunity to be hired. The earlier the better. To increase the chances, you can try to make some kind of mini-solution useful for the company to interest them.
  8. Find a mentor.

Regardless of the language, a list of topics that I recommend including in the plan is: version control (git, github), structures and algorithms (know all the common ones, big O, know that “there is something” and be able to find it quickly), IDE ( why, how to configure), debugging and profiling (how to look for errors, breakpoints, etc.), testing (writing at least the simplest tests and understanding what to include in them), databases (relational, network, document-oriented), documentation (how write, why), planning and prioritization (how much will it take, what to do and when), learn Style Gudie in your language, linux (a basic understanding of what is there, why and where, the ability to run your code there), package managers (how to use, why how to support), semantic versioning (why is it, how to follow), frameworks (in the right language, at least a few to familiarize yourself with), tools for assembly and automation, cryptography (what’s basic, not how to do it), authorization and authentication ( what eu what and what exists for this).

How deeply you dig into each topic depends on the conditions that you decide to study, and so on. 15 minutes will be enough for some topics, for some months and two months it will be possible to single out from six months.

- I saw that a company that interests me teaches from scratch and employs. What is the catch?

In a low salary, the first year or two. But in general, this is a pretty cool option, since with proper motivation it is a guaranteed job, live experience and interested mentors who will teach you exactly what the company needs. Theoretically, this can reduce variations after or lengthen the growth period, but it is very dependent on specific companies and offers. If a company from your list of interests has similar internships from scratch - it is worth taking a closer look at them.

- Tin, it's complicated.

Yes and no. Most difficult at the start. Further, many concepts are remembered and they do not need to be kept in mind. A lot of things “google” in 10 seconds, but on the condition that you know what to google.