"At the very beginning, the most important thing is to restructure your mind, make it 'programming'. Once you do that, it won't be so difficult for you to
learn almost any language."

Interview with Mikhail Necheporenko - Zero2Hero Team Leader, CTO of a tech startup, an expert in the tech products development
Which programming language it's better to choose to successfully make the move into information technology? Where to start working in the IT-sphere and how to find a job if you are a novice programmer without experience?

To answer these, as well as some other questions, the Zero2Hero founder Tatiana Melnichuk has interviewed the CTO of an IT startup and our project Team Leader Mikhail Necheporenko.
— Hi! My name is Tatiana and I am the founder of Zero2Hero. Zero2Hero is a project that helps startups build rapid product prototypes with minimal costs, and developers gain experience in creating products that turn the world upside down. Today we are talking to Mikhail. Mikhail is the CTO of the IT company ROXOT and also a very cool developer. Misha, hello!
— Hi.
— Misha, please tell us about your career path. How have you become a CTO at the company?
— I came to this company or even created this company not as a Junior developer. Consequently, my professional path consisted of several companies, and it was very different. I was born in Pskov and moved to St. Petersburg after graduating from the institute. I didn't find a job right away. Employers don't like to hire junior developers because they want to work with experienced specialists.
This is the main problem of the industry, but I was lucky: I found a job in a travel company, at which I've been working for about two years. I gained a good experience there: we completed
a lot of ambitious tasks.
Then I worked at various companies, including American ones. I was an ordinary developer: I was given tasks, then performed them and reported to the Product Manager. I also had experience in team development. The most important thing is that it was the teamwork that elevated me as a developer:
First, not only you receive the task, but the whole team.
Secondly, you have a Team Leader who is responsible for quality and timing.
Thirdly, you have colleagues who do either the same work or in related fields, and you somehow coordinate to complete this task efficiently and on time.
Still, there is a problem in working for a company - this is the code or the system legacy
— Still, there is a problem in working for a company - this is the code or the system legacy. When a new programming language or its improved version or a new framework appears, you want to try everything, but the project doesn't provide you with this opportunity. This is an accurate and conscious step of the project: the business isn't ready to spend money on updating the version of the program code everything works. But you want to try new features! I realized this problem, and therefore during all my career I've been building projects on my own.
Your own projects should be: it's a mistake to assume that you'll grow at work as a professional, as well as think only your own projects can improve your skills.
A good developer is characterized by knowledge in both areas at once: on the one hand, you find out what innovations the market offers and test these innovations, and on the other, you understand how to make the business benefit from these innovations, without wasting money on them.
— Cool! What's your main programming language?
— My main programming language is PHP. Naturally, it's associated with Frontend. Basically it's JavaScript.
— How many years have you been working in the tech sphere?
— It's a difficult question. If we're talking about work experience (when you do what the business wants), then it's about 12-13 years. And so, I liked programming in my student days.
— Cool! When did you realize that you are no longer a junior-level developer? What did it depend on? From built projects or just self-esteem? :)
Only after completing some stage and moving on to the next, you can understand that you've reached the hypothetical level
— I didn't have such a gradation. I tried to formulate it when I was already a Team Leader, and then only in order to explain to HR-specialist who we need to hire. It seems to me that these facets don't exist at all. Only after completing some stage and moving on to the next, you can understand that you've reached the hypothetical level, but when you are still in the process of passing the stage, you don't understand what level you have. You can also analyze the market. If you apply for the position of Middle-developer and succeed, then you are Mid-level specialist :)
— How do you think what is more relevant for a Junior developer: to work in a startup or join a stable company?
— I've recently said that I had a "double" path. And this is the key factor. It doesn't matter where you start your path, it's important that you have time for something of your own making. Nevertheless, if you are a young student without a family, responsibilities or credits, then I advise you to start in startups. A startup is a company that lives its way very quickly.
I have always believed that joining Google isn't as cool as joining "G" company, which will then collect all the "Google" letters, and you will be the one
who had a hand in it.
— During this time, the company goes through many stages, and if you go through this together with the company, it's great. But if you like a quiet life, then it's better to go to a more stable place. But keep in mind that this is a slower path.
— Super! You said you were coding in PHP. But what about someone who hasn't decided yet? How to choose a programming language? There are so many of them….
I advise you to look through the rating of languages, choose the most popular one and learn it. Like foreign languages, mastering a second language is much easier than mastering the first. Also with the third, with the fourth, etc.
The mistake in choosing the language isn't critical. The most important thing is to restructure your mind, make it systemic, "programming". Once you've done that, it won't be so difficult for you to learn almost any language.
— Now let's talk about Junior teams. You said you were a Team Leader. Have you had any experience of recruiting junior-level specialists to your team?
— When I became a Team Leader, we were recruiting Senior-level; specialists. At that moment it was better because then I wouldn't have cooped with the Juniors. Yet, when I became a CTO, and we were choosing whom to recruit, we decided to hire Juniors. I can say that there are enough peculiarities when going through this path, and not always everything went okay, but this is quite a working model. The result is especially impressive: with the help of junior-teams, we were able to make a product that is considered TOP-1 in its field.
— What were your selection metrics?
The first is the ability to get the idea across to the interlocutor. This is an important point, so when we were searching for Junior-level developers, we paid attention to this skill.
The second is how a person thinks. It was important for me to see how the Junior developer solves the problem. It doesn't matter if the task is done correctly or incorrectly, the main thing is logic and the ability to substantiate the solution.
The third is the reaction to critique. The management was supposed to be tough, which is why we gave the test assignment, after solving which I explained to the candidates how they were supposed to complete it, and checked at the reaction.

Already during the probationary period, I checked which of the recommendations the person has applied in the work. This shows whether they can learn from mistakes or not.
—To summarize everything: what are the main tips you'll give to novice specialists?
— Develop and try to develop not only extensively, but also intensively.
—Misha, thanks! If you are a beginner specialist and you want to gain commercial experience, join Zero2Hero, let's change the tech world together!
—You are welcome.