DEV Community

500 developers DMed me for help

On the IT market, specialists of different levels do not understand each other.

  • If you are a senior, you have already forgotten what it is like to push through hundreds of rejections without experience.
  • If you are a middle, you do not understand why seniors make this or that decision.
  • If you are a junior or a beginner, IT is full of contradictory advice for you.

What I did

On July 2nd in r/learnprogramming on Reddit, I offered free mentoring to anyone who wanted it:

Hello everyone!

I am a developer and I feel confident in my work. Now it is difficult for me to define my next goal. I do not want to move to a management position or architecture, and I think that one possible direction for me could be teaching. I had few interns. Before going into teaching, I decided to try myself as a mentor.

Write to me if you are:

  • A beginner, problems like: which language to choose, where to start learning.
  • A student of my profile: studying backend development (Java/Kotlin).
  • An experienced developer looking for a mock interview or career advice.

I offer one-time or a series of free consultations - simply because I want to study this direction.

I am not an expert and not a teacher, do not expect much from me. But I promise that we will have a friendly chat :)

What happened

The post got 217 thousand views. 500+ people came to my private messages. Mostly I helped through text messages. I had calls regularly with seven students. Three later told me that thanks to my advice they found a job. To difficult students, I offered paid help to pay for the time.

Even if you are already working, read the blocks about beginners and students. You will see in them the roots of your current problems: from imposter syndrome to gaps in fundamental knowledge.

Write in the comments if you do not agree with my advice. Let’s discuss, this way we will make IT better.

How I worked

To not burn out, I answered only 10 messages a day. I tried to understand the situation of every person. I asked for details. People were panicking and sitting without money. I had to cheer them up, otherwise the conversation did not work. I praised them for everything they do correctly. I gave them advice in which I am confident.

After 4 months, I answered everyone. Some people who wrote during this time managed to overcome their current problem and stumble upon the next one. They came for advice again.

Remark

I ask the reader to give constructive criticism of my methods.

I am not a teacher, not a coach, and not a psychologist. I am just a dev. By the way, my name is Alexey. I live and work in the Czech Republic. My specialty is Java/Kotlin backend. I work in the position of a senior developer at a German financial exchange. I do not have the education and skills to do teaching professionally. But I have an interest and a desire to help people.

Why I got into this

I wanted to check if I could apply my experience in teaching. My attempt to help was a test of this hypothesis.

Structure of cases

The students were of different levels. But they had common traits and problems.

We will look at:

  • Key traits of the group
  • Problems
  • Mistakes
  • Examples

I will give advice that I gave to each request.


1. Working devs

Experienced and working developers (~20%)

Quantity: Approximately 100 users.

Key traits

These are working specialists (experience 2–5 years).

  • Middles feel stagnation;
  • QA want to go into development;
  • Experts in AS400 or Visual FoxPro are afraid to be left without work.

We are talking about specialists with 2–5 years of experience. It seems to them that they hit a ceiling or know a little of everything, but nothing deeply.

Main questions:

  • "How to reach the peak of a career?"
  • "How to change the stack?"

Mistakes of experienced

Developers of outdated/niche technologies

If you are an expert in outdated or specialized technologies (for example, AS400, RPGLE, VBA, VFX-scripting), this is about you. You are afraid that your skills will become old and want to go to the "big" market.

Advice:

Look at the market. If there are only two vacancies in the country for your specialty - you are a hostage of two companies. This is not necessarily bad, especially if they pay you more than in other directions. If this is not so, your fears are correct. Most likely, your tech stack is old and dying out. Rely not on your feelings, but on data from the market. And do not be afraid to change the stack. You already have experience and observation skills. Being in demand is always better, even if you have to refuse other experience.

POV: Generalist

Many often changed technology stacks (C#, Python, JS) at different jobs and now have trouble passing interviews for senior positions because they lack deep knowledge in one specific area.

Advice:
Companies with 50+ people look for narrow specialists, and such companies are the majority. Your portfolio of a "jack of all trades" does not suit them. There is no easy solution. You have two paths:

  1. Become a specialist: Choose your main stack and develop in it. Do not be afraid to lose a high grade when changing jobs: thanks to your experience, in a year you will grow to a senior again. This is the only way if you want to work in big firms. Show how your experience is useful specifically to this company. If you know how to present yourself, do not be afraid to apply for senior-level positions.
  2. Work in startups: Small firms value people who can do everything and a little bit of it. With broad knowledge, it will be easier for you to find a job in a startup. There is a completely different culture there, but many like it even more. And the main thing, startups are ready to pay a lot for talented workers.

Fear of starting everything from the beginning

Developers hesitate to change the technological stack (even a simple switch from Java to Kotlin). Does this mean having to return to the salary and level of a junior?

Advice:

Thoughts about switching did not appear by themselves. You want changes because you are tired, earn little, or hit a ceiling. If you ignore them, your professional growth will stop. Everyone has their own goal: higher salary, more interesting project, more freedom. Inaction will also bring you growth: with time you will become a slightly more valuable employee, rarely, but you will face an interesting task. But when you take growth into your own hands, the result is always much better. You will have to overcome fear if you want to cut years on the path to your goal.

Stagnation in career

Some worked but were unfulfilled or bored. This happens when you stay in positions without challenges and modern technologies. And this harms your skills.

Advice:

I had a similar problem. I tried as much as possible to challenge myself at work, but there were simply no tasks. I got rid of boredom by finding a second job. Overemployment is fun, profitable, and useful. The theory of programming is, of course, good and can expand your knowledge. But most of all, solving interesting, complex tasks related to architecture and researching the unknown will help. First of all, you should develop at the workplace. What to do if it seems to you that there are not so many interesting tasks in the current position? Then changing jobs will bring the most benefit. When I grew as a specialist, my team could not adapt to this. My subsequent growth was limited by the scale of the project. Why spend free time on self-education if you can find a more effective place for paid growth?

One thing in the resume, another at the interview

You seem good at your work, but you fail interviews. For some reason, they always require knowing completely different things there. For example, management jargon and architectural patterns of system design, necessary for higher-level positions.

Advice:

You faced the main problem of hiring. I wrote about it earlier. My advice will be below in this article, in the section of mistakes of beginners.

Example of dialog

Developer:

Good afternoon 👋, I am a developer with 4 years of experience. I will send you my resume to know if you want to mentor me. I am stuck in my current position and do not know what to do next. Thank you, even if you do not answer my message.

Techpreneur:

Hello, thank you for contacting and sorry for the late reply! Please tell me more about your goal.

Developer:

Thank you for the answer! I am a full-stack developer with big experience working with backend on .NET. Currently, I work in a retail company in Turkey, but I am experiencing difficulties because we do not follow best practices. Because of this, I feel like an outdated specialist and I am not developing professionally. Now I am at a crossroads, I have three potential paths, but I cannot decide which to choose:

  1. Opportunities at the local level: Find a position in Turkey corresponding to proper development practices.
  2. International expansion: Getting a remote job or the opportunity to move to the EU/USA (this is my biggest dream).
  3. Freelance: Become an independent developer and create my own products.

Main problem: the AI boom knocked off my pace. Before I was confident in what skills to develop next, but now uncertainty paralyzes me. I do not know what to study or what projects to create. I understand, it might sound contradictory - asking for help, admitting that I do not know what I want. But exactly this is my biggest problem: not knowing what needs to be improved or what to focus on.

Techpreneur:

Understood. I would advise you to do what you like the most. Life is too short to live in mediocrity. It is also too short to worry about things you cannot influence (AI).

Your resume looks good, but, in my experience, offers to relocate most often come by themselves when your public profile shows that you are a top 1% specialist. Do you spend time on your professional brand in social networks?

Developer:

I am just doing this. Actually, I am just starting. Do you think I should invest in Twitter? Do you have any advice?

Techpreneur:

In my experience LinkedIn brings the most offers, recruiters just live there. If you want, we can have a short session on what is better to focus on there...


2. Students (~65%)

Students advanced in learning and job seekers stuck in a learning loop

Quantity: Approximately 320 users.

Key traits

This was the biggest group. It included Computer Science students (from freshmen to graduates), graduates of bootcamps, and self-taught developers who mastered the basics but failed to find a job.

Main questions:

  • "I know the basics, but cannot pass an interview. What to do?"
  • "What projects do I need to make to get a job?"

Problems and mistakes of students

While working with the group of students, I pushed them to start passing interviews as early as possible. I checked their resumes and advised what is better to do when preparing for interviews. I focused not on teaching programming, but on the mechanics of the employment process.

Eternal student

Many believe: got a diploma - became a specialist. Courses and writing code through AI is the same trap. Because of this, there is no practice. As a result, the student misses the keys, cannot work fast, and finds it difficult to explain their own code. Such students consume an infinite amount of content but cannot create an application independently. They do not acquire real skills.

Why this is wrong:

Academic programs are mostly outdated. Courses are too superficial. They will teach you the basics of C++, when the market needs React or Spring Boot. A diploma at best will help pass the screening a little, but not the technical interview. If you blindly believe the program, you will remain without the necessary skills.

Advice:

The problem is in time distribution. Learning is effective when for one part of theory there are four parts of practice (4:1). Find the strength in yourself after a series of a course to write your own code. If the latter is already easy - try to pass an interview. This way you will find your weak spots fastest.

Lack of focus

"I watch a lecture, and it seems to me that I understand what it is about. But when I start programming, I have total emptiness in my head. I go to watch the lecture again. This cycle repeats again and again. As soon as I stumble upon a problem, I try to solve it. As a rule, I cannot do anything myself, and I just give up and go look for a solution."

Here university practices will help:

  1. Work on the problem for at least 25 minutes. Set a timer. Just sit with the problem, not rushing, and try to show creativity.
  2. Talk to yourself or to a rubber duck. What are the input data? What should be the output data? What are the limitations? Pair programming, in essence, was invented because discussing a problem significantly simplifies its solution.
  3. Use pseudocode: before thinking about any separate line of code, just write down the steps in Russian (or your language).
  4. Pencil and paper - I know people for whom only this works. Just write down that you need to get X, there is Y. Sketch schemes, transitions, etc. This way you will greatly simplify the task for yourself.

Imposter syndrome (subtype student)

Many felt like idiots compared to other programmers, even after receiving job offers or completing an internship.

Advice:

(TODO: say about the video about imposter syndrome)

I do not have a solution. In my career, there were also many worries about my competence at the initial stage, as many achieved results faster than me. I found the answer in the fact that I can do nothing about it, so there is no sense to think about it much. It helped me to choose my own pace of learning, stick to it, and try to find joy in all this technical mess.

Bad resume/portfolio

Students do not know what projects they need to create to get a job. They do not understand how to find a job without experience.

Advice:

There is no simple solution. No one wants beginners nowadays. In a beginner's portfolio, there should be only one good project. You need to create a complex system with your own hands, applicable in business. By a complex system, I consider an Uber clone or a CRM for a pizzeria. Ideally, find a developer who understands your technological stack and ask him for help in setting criteria. After that, make sure your resume is up to date. If you are sure that your PDF passes the ATS check and nothing needs to be changed there, but you are still rejected on the local labor market, you have two paths:

  1. Say that you are ready to work for free. I hate this advice, but this is exactly what recruiters advised me to tell beginning specialists.
  2. Present one of your most complex projects as real experience. Based on this project, describe your work experience in the resume. This will increase your chances of success by about 500%, simply because the labor market is imperfect, and recruiters look only at years of experience. Yes, this is a lie. I do not want to advise you to lie. But I also cannot be silent about tools that help find a job, simply because someone considers them "dishonest". This is a game by the market rules. The recruiter sells you a "friendly team" (which does not exist), and you sell "commercial experience" based on a complex pet project.

No strategic direction

Students know how to program but do not know what to focus on to get a job. "Should I study Java or Python deeper?", "More focus on Backend or Frontend?".

Advice:

I divide IT people into ideological and regular. Ideological are those who like to study everything. They like to dig into technologies: try, compare, combine. If you ask the question "what to study to get a job", then you are a regular IT person. Your interest lies in something else. Unlike many snobbish seniors, I do not believe that you do not belong in IT, because I started the same way. Love for programming does not always come immediately. To you, I advise choosing the shortest path to an offer. This path is determined from the end:

  1. Study the market. Look for vacancies "Python Developer", "Java Developer" and compare the number of open vacancies.
  2. Study the hiring companies and developed products. The more big-tech and in-house products, the better.
  3. Choose the most in-demand language. It does not matter how complex it is. The more complex the language - the less competition you will have.

Fear of interviews

Students postpone applying for vacancies. They feel insufficiently qualified. It is easier to finish one more course before checking the labor market. Everyone is driven by fear of technical interviews, especially on data structures and algorithms (DSA).

Why this is wrong:

You will never feel 100% ready. Labor market requirements change faster than courses. Waiting deprives you of critically important feedback in the form of failure at an interview, which shows exactly what you need to learn.

Advice:

If your goal is to find a job as quickly as possible, go to interviews. Do it regularly, regardless of the feeling of your preparation level.

Think about this:

You need a job, so you must pass an interview. To pass an interview, you must answer questions. You must know the answers. For this, you must know relevant technologies. For this, you must know what they ask at the interview. How can you be sure exactly what they ask? You can be sure only if you regularly interview and practice.

  1. it is free.
  2. every day 10 new companies open, and 10 go bankrupt. Do not be afraid that you will run out of vacancies to which you have not yet applied.

Mess of technologies in the resume

Students think: programming languages are like Pokemon - you need to collect them all. This is made worse by the fact that universities teach us several languages at once. As a result, a student will study Java, and Python, and JS, and C++, to look universal. One wants to study everything. The student will study what game development looks like, cybersecurity, web development, creating AI, because such is the university program. Limiting oneself to one direction seems wrong to him. As a result, the student lists all technologies with which he has ever worked.

Why this is wrong:

This confuses robot-recruiters (ATS) regarding your real specialization. As a result, the recruiter thinks: this candidate does not understand what brings benefit to the business. The market pays specialists, not amateurs who tried themselves in five different areas. The attempt to be a "jack of all trades" at the initial stage makes you unqualified for any specific role. There are no roles like Security Game Web AI developer. The market needs depth of knowledge, not breadth.

Advice:

Sooner or later you will have to choose only one role. The earlier you make the choice, the less time you will spend on learning irrelevant skills. Use the knowledge you already have and look at the abundance of vacancies in your favorite directions. Allocate a weekend for this, this is enough to form a correct picture. But do not spend a day more. You might have FOMO. You will think that you need to watch one more guide, read one more article, get a comment from one more senior friend.

Grinding certificates

Here I also include getting higher education specifically with the goal of getting a job.

Why this is wrong:

In the IT, recruiters often ignore certificates, since they are more interested in practical skills and years of experience. Getting all sorts of badges slows down the job search itself without a significant increase in chances.

Advice:

Do not do certificates. For me, certificates were a waste of time. Not a single employer believed that I know AWS Cloud simply because I had a certificate. They checked me anyway at the technical round. If you want to learn AWS, make your own project and add this skill in the resume. You will reach the same result much faster.

Example: "Insufficiently qualified" graduate

Student:

Hello. I saw your post about providing mentorship. I recently finished university and will start working in about a month. However, I have many doubts about what approach to career development I should choose regarding different skills. I would also like to study backend on Java. Now I am studying MERN, but again, this takes too much time. Therefore, it would be great if you could guide me or provide me with some practical plan. Let me know if this interests you. I will provide you with more information.

Techpreneur:

Good evening, thank you for reaching out! I assume your job will not be related to IT, right? What makes you switch to Java? MERN is a good and popular stack, if you already have experience in it, I would advise you to continue using it.

Student:

Thank you very much for the answer. No, I got a job in IT, and despite the fact that I passed tests and interviews myself and was chosen, honestly speaking, I understand that I catastrophically lack skills for this job. I really want to fix this. In my resume was MERN, but I am not confident in my knowledge, just as in the knowledge of any programming languages. I am sure that I can cope well with the work after training, but I don't know. I lack skills, and I am afraid. Therefore, I am studying MERN on the example of the Odin project, but it takes very much time, and I would be happier if I had more time. This is the only thing that worries me. How do you advise me to proceed next?

Techpreneur:

You will always feel not good enough. It is part of the job - to direct this uncertainty into the right channel. Since you are just starting, I suggest focusing on skills in the relevance of which you are confident.

On the first day of work, you will hear many unfamiliar terms. Do not hide that you do not know them. Instead, admit it and write down every term in a "review" list. Later, find time to review these terms and familiarize yourself with them. Since you reported from the very beginning that you do not know something that is probably important, in a few weeks, when you demonstrate expert knowledge in this area, people will see that you are working hard to eliminate gaps. Flexibility and diligence - that is what helps people pass the probation period, not technical knowledge.


3. Complete beginners (~15%)

Quantity: Approximately 75 users.

Key traits

This group consists of people with zero or minimal programming experience. Often these were self-taught, school students, or people from completely unrelated fields striving to get into the IT sphere. For example, the following people wrote to me:

  • A security guard wanting to change profession.
  • A pharmacist hating their job.
  • A designer worried about AI.

Main questions:

  • "Where to start?"
  • "How to understand that Language A is better than Language B?"

In the student group, I already divided IT people into ideological and regular. At the beginner stage, it is very important to determine what drives you:

  1. Creating specific cool products.
  2. High salary and a stable job (by the way, these are the overwhelming majority).

The advices below work for all beginners, but depending on priorities, some will be more important for you than others.

Problems of beginners

In working with beginners, I acted not so much as a technical mentor, but as a career coach. Mostly I directed students to roadmap.sh and advised choosing a pragmatic stack, and not following the hype of courses.

Which language to learn?

A beginner cannot make a definite choice of direction because of the abundance of online resources. They are overwhelmed by the number of languages and roadmaps. Everyone says that their language is better.

Advice:

If you are ideological, you already know the answer to this question. If your final goal is simply to get a job, I would advise learning only technologies with which you will truly work. I also racked my brain for a long time over choosing a technological stack. Communicating with developers using different stacks helped me - I quickly understood that an ideal language or stack does not exist: each has its pros and cons. The good news is that the language is just the tip of the iceberg. Therefore, instead of trying to choose the best language that pays well and will be in demand in the future, choose the role itself (group of products) in which you will become a specialist.

  • Want to see the results of your work, but don't want to mess with complex logic? Choose frontend.
  • Want to create complex logic or the "brain" of the product? Choose backend.
  • Want both? Choose mobile development or fullstack (but this is twice as hard).

image.png

Dozens of very smart guys with higher education teach programming to beginners in completely different languages: someone in C, someone in Python, someone in C#, and so on, up to Pascal and Fortran. Yes, Fortran in 2025. It's not about the language you started with, but about you. In any case, everything will be unclear, because this is programming, and it requires passing the stage of discomfort and lack of understanding at the initial stage. Those who passed this are wonderful people, and they can tell everyone that their path and sequence of learning languages were correct. And about those who did not become a programmer, we will never know - a typical survivor bias. Therefore, the most correct and adequate option would be to choose a random language based on your goals, and then, if programming is yours, and you do not quit it, you will definitely reach the moment when you can decide yourself: stay with it or change it. No one argues about which computer game is better to start with to become a gamer. Everyone always starts with a random game, and then everything works out by itself. I suggest doing the same with programming.

Fear of AI

Students are afraid of AI. Like, why should I learn programming if in 5 years we will all be replaced?

Advice:

Developers are paid not for code, but for responsibility. Your task is to translate the "wants" of the business into the language of the machine. First understand what management needs, find gaps in requirements, and only then write the solution. AI will help only with the last point - with the code. It will not think for you.

I am sure, sooner or later AI will be able to do everything, but this will practically mean that a human cannot do anything better than a machine. In this case, all professions will become unclaimed.

And until then, IT is the best way to earn decent money without breaking the law. I think it will be so for at least the next 10 years. This is enough to build a good career, buy a house, and secure your future. If this is your final goal, cast aside doubts and start working.

Imposter syndrome (subtype beginner)

Many express deep insecurity, fearing that their brain is not adapted for programming. Beginners were afraid that they do not have a "technical" mindset.

Advice:

The fact that you already at this stage consider yourself unsuitable is the result of the public activity of snobbish seniors. These are the people who promote that "IT is only for the chosen ones," and only those who see the meaning of their life in programming will find a place here. In reality, development is the same hired labor as any other. You are hired to solve a business problem, even if it means digging in legacy code and sitting at meetings. If you are capable of dealing with a problem until you come to a solution (and it does not matter with what speed) - you are already better adapted to work than more than half of employed developers.

I want remote work

Courses advertise like this: "I became a programmer and now I can work from where I want. Freedom!". As a result, beginners want to find a remote job immediately without experience.

Why this is wrong:

Getting a remote job without experience is practically impossible. You have not yet managed to become an in-demand specialist, haven't proved your value to the business. They do not trust you and want to see you in the office. Unlike seniors, there are very many beginners, and companies can afford to drive them into the office.

Advice:

You will come to remote work faster if you strive for a hybrid/offline format. After half a year in such a position, you will be able to start negotiating about shifting towards remote work. This way chances to work from home will be much higher.

Full Stack in 30 days

Here thanks should be said to bloggers advertising their courses. A beginner hears about the shortage of specialists, high salaries, readiness for employment after completing the course, and they form unrealistic expectations. As a result, people came to me for quick results, like learning Full Stack in 30 days.

Why this is wrong:

Mastering one area is difficult enough for a beginner; attempting to master two simultaneously reduces concentration and depth of knowledge. You will come to knowing a little of everything, but not enough to be in demand at least in one of these areas.

Advice:

I advise those interested in Full Stack to choose backend or frontend and master only what is related to this role. Getting any position without experience is already very difficult. Studying two areas simultaneously complicates the task even more. You can always learn the second half of fullstack development later. Switching to Full Stack will be much simpler when you work a little.

The Python Trap

Another thanks to bloggers. Most beginners choose Python because it is popular and simple. They expect that this will lead to a standard role of a software engineer. In reality, finding a vacancy in the sphere of software development (we are not talking about work with data/AI), knowing only Python, is almost impossible.

(TODO: insert in English version: I already explained why).

There are a bunch of courses on the market on Python promising easy money. They took advantage of Python's simplicity because it is easier to teach. But the promises of courses have nothing in common with the realities of the hiring market.

Advice:

It is easiest to refuse Python in favor of more targeted languages, especially if your goal is money and stability. On the corporate labor market (especially for roles not related to data), Python is rarely used for backend systems compared to Java, C#, or Go. The popularity of Python in Data Science has nothing in common with its demand in software development.

Infinitely consuming courses

So many people are stuck watching Udemy, FreeCodeCamp, YouTube without a clear direction or "final goal". If you often feel stuck in a closed circle of watching videos but unable to create anything independently - this is about you.

Why this is wrong:

Passive consumption does not develop problem-solving skills necessary for programming. Going through educational materials will give you a false sense of progress.

Using AI for writing code or solving problems

A beginner tried to get a solution as quickly as possible, even before understanding the problem themselves. This led to a superficial portfolio and inability to solve tasks in a working environment.

Why this is wrong:

AI prevents learning to think. If you cannot explain why the code works, or write it from scratch, you are not ready for a technical interview.

Advice:

I already spoke about 4:1, right? I will repeat. Practice against theory goes in a ratio of 4:1. Do total ban on AI until you reach your goal. Put focus on developing your critical thinking and understanding all the details. You must stop watching other people's solutions and start creating applications as early as possible.

Zoo of technologies

Desire to learn "everything" (game development + cybersecurity + web development + AI) at once and unwillingness to limit oneself to one direction.

Why this is wrong:

Did I already say this in the student category? I will repeat. The market pays specialists, not amateurs who tried themselves in five different areas. The attempt to be a "jack of all trades" at the initial stage makes you unqualified for any specific role. There are no roles like Security Game Web AI developer. The market needs depth of knowledge, not breadth.

Advice:

The market needs narrowly focused specialists. As soon as you decide on your future role, stick to your choice. After a couple of months of learning, you will be tempted to change the choice to something more attractive. This is a trap into which I also almost fell. It is more effective to stick to one plan than to look for an ideal plan. Limiting yourself in direction is the best thing you can do at this stage.

Example of dialog

Beginner:

Hello, I am regarding mentorship. Is it relevant now, and what will be the conditions?

Techpreneur:

Hi! Let's be informal. I do not have ready offers, I work like this: I study your case and we look together what we can do. To start, please give me the following context:

  1. What is your goal? (Which language do you want to master, which position to get?)
  2. What is your situation now? (How much time do you spend on study and what, in your opinion, prevents you from achieving the goal from the first point?)
  3. What have you already tried to do? (Took some courses, watched materials, etc.?)
  4. What drives you to learn? (Money, perks from IT, interest, or something else?). For example, my main passion was and remains money, and there is nothing to be ashamed of here :)

Beginner:

Good.)

Most of all I would like to learn to be a developer, specifically in which sphere and for which position - it is not clear yet. There are no strict preferences. Here I need your advice.)

My situation is good, there is a lot of free time. I can devote more than half a day to study. But I have neither higher nor secondary education.

Earlier I studied programming for a hobby, now I have been zealously learning C++ for a week. I understand the basics of Python and a little about general development.

Main motivation is, of course, money.) I want to have a good profession, also in IT I like that it is work for diligent people (I myself like to sit at the computer for a long time), also it can be quite creative.

Techpreneur:

Excellent, then the first step will be to choose a position - backend, frontend, or mobile. Next, when you choose a position, look what tech stacks exist for each direction, there are about 2–4 for each role. The difference is in what projects are made with these tech stacks, for example, if you want to do something for banks, Java fits well. I advise not to listen to stories like "this language is outdated and will die out", this is just someone's opinion, easily refuted by the number of vacancies on the market. Write when you decide, we will think further.

Beginner:

OK, I will choose backend with the stack "Python/Django".

Techpreneur:

Let's say, then let's immediately do a check on the market. Do a small research and send into this chat links to 10 vacancies of entry-level Python/Django developer. You can use any platforms to your taste.

Beginner:

Yes, now I see), there are almost no vacancies for my preferences. Noticed that half of all backend is C# and .Net. Is it worth learning this? I was scared a lot about the complexity of C#. What do you think about this?

Techpreneur:

I know little about .NET, looks interesting. I learned C# in uni, about as complex as Java. I would not be afraid of complexity: the more complex - the less competition you will have. I would study what products are typically made on each of the languages, maybe you will like something more.

Beginner:

I looked. I decided on C#.

Techpreneur:

Hi, good) Next let's make you a roadmap for the current market. Write out 10 positions, like before, and also all technologies that are indicated in them. If a technology repeats, write 2x, 3x and so on. Send what you get.

Beginner:

C# x10, MS SQL x4, GIT x3, WEB API x3, Docker x1, Kubernetes x1, Azure DevOps x1, REACT x1, Angular x1, MS SQL Management Studio x1, Sparx Enterprise Architect x1, TeamCity x2, Jira x2, Confluence x1, Windows Server x1, MS SQL Server x1, Blazor x1, T-SQL x3, gRPC x2, ASP.NET x1, MVC x1, WCF x1, WPF x1, LINQ x1, SQLite x6, Bitbucket x1, API - REST x1, rabbit MQ x1, .NET, MAUI x1, XAML x1, MVVM x1, Redis x1, SignalR x1

Sorry if I mixed something up, for me now all these names are like hieroglyphs)

Techpreneur:

Okay, then your priorities are C#, SQL, and Web API. The rest are secondary tools, you will learn them when you figure out the basics.

The approach above is better than any roadmaps on the internet because it starts from the realities of the hiring market.

Here is the method:

  1. Make a list of all technologies from 10–20 vacancies in the desired region where you want to get a job.
  2. Count the number of repeating technologies.
  3. Sort the list by the number of repetitions.

    This way you will get an ordered list of what you really should study. Only then look for a roadmap dedicated to each technology.

Beginner:

Hello! Hope you are doing well! I am an IT graduate in infrastructure support with 10 years of experience, recently returned from Saudi Arabia. I am starting my path in developing Java applications full-stack. Hope you can help me complete this path in 30 days. Now I am unemployed and can survive for about a month or 40 days, so I need a remote job to fulfill my family duties.

Techpreneur:

Hi, buddy! Sorry for the late reply. If you want to get a job this month, you need to actively apply already now. I must say, I think that getting a fully remote job without prior experience is practically impossible. Even with 5 years of experience, people often want to see me in the office. The best thing you can do to get a job faster is to lower your expectations. For example, first consider a hybrid role.

Beginner:

I need help in acquiring practical skills and expert support to get experience in 30 days sufficient to receive an offer.

Techpreneur:

Tell me more about technologies that you already know, and why you want to become exactly a full-stack developer - why not simply start with backend?

Beginner:

I want to start with backend, but on the market there is a very big demand for full-stack developers.

Techpreneur:

I think that getting a position of a full-stack developer at the initial stage is a very difficult task. You must understand both frontend and backend. I would advise choosing backend or frontend and mastering only what is related to this role. Getting a job without experience is very difficult, and studying two areas simultaneously makes it even harder. You can always learn the second half of full-stack development later. It will be much simpler when you get a job.

Regarding technical skills, here everything is simple: if you can create a web application based on microservices on Spring Boot with a connected database and deploy it using Docker in a Kubernetes cluster - you are ready to pass an interview.

Beginner:

Good, I agree. To start I will get a job in backend, and as I work I will think about switching to full-stack.

My mistakes

I mostly focused on motivation, goal setting, and market realities. I missed the most important thing. The ability to learn long and with discipline. Any path to growth lies through long learning of technologies. This not always pleasant process lasts for months, sometimes years. Learning answers to 100 popular questions and going to interviews is possible, but not effective. I will repeat: a newly minted job seeker must have knowledge maximally close to real work experience. For this, one needs to create a complex project. For this, one needs to know how and what technologies to use. This is a huge volume of knowledge, and months are needed to absorb it.

Model of free mentorship destroys quality

A mentor who answers for months is useless. Because I was flooded with hundreds of messages, free mentorship turned into copying and pasting general advice, which did not always perfectly fit the recipient. If I took payment or selected candidates, I could focus only on developers where my advice would really be expert and valuable.

How we came to the current situation

  • Partly processes are to blame. Why are candidates forced to resort to the most twisted methods to get to interviews? Interviews are constantly changing because companies still do not know how to hire and are looking for a way to evaluate the expertise of developers. Recruiters are flooded with applications and invent abstract filters to reduce the volume of work. At the same time, the candidate remains the part of IT that understands the market the least.
  • Partly this is connected with lack of information. Everyone who found a job once will never again go through the hell of interviews without experience. They stop following the hiring market and give bad advice to beginners. Even those who create their courses do not know the situation on the market. After all, no one promises that after finishing the course you will be easily hired for a job.
  • Partly AI is to blame. There are fewer junior positions on the market, because AI can often replace a junior. Also, many beginners limit themselves to superficial knowledge that a prompt gives. This is often not enough to pass an interview.

Point is, the beginner-candidate is the one who suffers. It is only in his interests to change the market, while he has the fewest tools for this.

TL;DR

We discussed many problems, but for this article not to become another "read and forgot", here is the step-by-step.

If you recognized yourself in one of the cases, here is your plan for tomorrow:

  • Beginner: Stop picking through languages. Open an aggregator, choose the role with the largest number of vacancies and go all in on this one.
  • Student: Delete the excess from the resume. Choose one most complex project, bring it to perfection (Docker, tests, CI/CD) and sell exactly this experience. Do not collect badges.
  • Worker: Are you bored? Look for a second job or change the company. Do not wait until the manager gives you an interesting task - he is busy with business metrics. Your growth is your responsibility.

Instead of a conclusion

I will be glad to discuss criticism or the use of my advice in the comments. Your feedback is the best reward for my work.

Top comments (0)