Let’s start with why I decided to write about it. For the past few years, I’ve been observing my community closely related to IT. Whether it’s friends from work, college, or industry veterans who have been at it for years, each of us, at some stage in life, has had to face a choice: “I give up some pleasures, get out of my comfort zone and push life forward,” or “I stay where I am, because it’s what I know, I don’t want/fear to take risks and stand still.”

And many of us chose the first option because it’s the only way to become a specialist. Make some sacrifices, and focus on complex and demanding things that simultaneously guarantee benefits.

Unfortunately, among my acquaintances, some people were not able/successful to follow the same path. In this article, I would like to focus on people who failed to make this problematic change or tried without results that guarantee success and help them find what they are doing wrong.

It doesn’t matter what makes you want to be a part of the IT industry: whether it’s the desire for a good income, the need for stability in the market, or the urge to develop software. We are exposed to the same mental trials, and it’s up to them to get us where we want to be. What makes you unable to become a junior software engineer?

1. Fading motivation in learning software development

Everyone knows what it means. You get up in the morning, and the vision of you in the place in life you want to just fuels you like a decent dose of caffeine! You sit down to the course you bought for yourself and start learning. You soak up the knowledge like a child, and, despite the difficulties, you feel an overwhelming sense of progress.

However, every next day you notice that some things are getting more challenging for you to understand or are taking much longer. Programming requires intellectual effort and constant learning of new things. At some point, you feel a bit overwhelmed by this prospect and find it hard to find enough motivation to continue learning. On top of that, the lack of immediate results can lead to a lot of frustration.

Learning programming is not a sprint, it’s a marathon, and you must always keep this in mind. Motivation gives a short-term boost to your work. However, in the long run, it will not be enough to achieve your goal. At such a point, it is essential not to make your work dependent on motivation but to focus on setting a long-term goal (get a Junior Flutter Developer job) and short-term checkpoints (learning to use the “for” loop). They will show you that you are making progress with each session. Remember that sometimes understanding the problem itself is also a huge step!

2. Lack of habit for long-term study

Do you brush your teeth every morning? Have you ever thought about whether you even want to do it or whether you just do it “automatically”? If the thought doesn’t occur to you at all, it means that it just got into your habit, and you don’t even think about the point, just doing it. It’s the same with learning programming – it requires a systematic approach and long-term discipline. When sitting down to study for 2 hours every day at 6 pm gets into your habit, you won’t even think about whether you’re having a worse day and really don’t want to. It won’t matter at all. 

It will simply become a regular activity during the day, precisely like brushing your teeth. It is this habit and self-discipline that is able to keep you in your resolve through periods of doubt and worse disposition. This is a challenging skill to learn, but once you develop it, you will improve not only your commitment to programming but virtually every aspect of life that requires a consistent approach.It’s worth building a habit of regular study by creating a study schedule and sticking to it. Determine a precise weekly plan of when you will start studying and just do it. Only have time on Wednesdays after 8pm? No problem, but always sit down at 8pm on Wednesdays. Have time every morning between 7 and 9? Study every day from 7 to 9. And when you miss a session for some reason, try to schedule a replacement one immediately so that you feel all the time that you are taking part in a process you don’t want to interrupt.

3. Time organization problems

The aforementioned sub-point will not be possible, of course, without the ability to manage your time. I would like you to reject the “I don’t have time” message in your mind at all. Each day has 24 hours, of which 8h you sleep, 8h you work, and the remaining 8h is left for things like commuting, meals, and the rest of your duties. Is there no possibility of finding even 2h in a week? 

Whether you devote time to something depends only on how much you care about it. If something is important to you, you will certainly manage it. It is known you will be exposed to many temptations that may dominate your schedule, making it difficult to concentrate on your studies, so I suggest eliminating unnecessary distractions, such as social media (at least for the duration of programming) or unproductive activities (playing computer games). For a long time, I didn’t understand how much time I was burning on things that were trivial and completely unimportant in terms of my development. What helped me open my eyes were Instagram and Steam statistics. Remember, it takes time and patience to reach your goal as a developer, so focus on gradual but steady development. To understand how we should think about our time in the context of action, I recommend this video, which is very short but thought-provoking.

4. Lack of a sense of self-discipline and unwillingness to demand of ourselves

At the school stage, we were mainly required by our teachers. Indeed each of us once came across one who, from lesson to lesson, told us to always be prepared and taught. Usually, it ended up that for those looser lessons, no one learned for that one whole afternoon was devoted to it. The fact was that it was from these classes that one got the most out of them. Now that there is no one above us anymore to tell us what to do and when to do it, it is hard for us to understand that this complex and demanding teacher should be us. Many people have a problem with this; they don’t want to demand of themselves because it’s just hard. It’s easy in such a situation to put everything off or to interrupt tasks that have been started.

The aforementioned task schedule can help in such a situation. In addition, a great solution is to use time management techniques, such as the Pomodoro method, which allows you to organize your work and study time and manage your responsibilities by dividing it into 25-minute focus periods and short, usually 5-minute breaks (there are even unique apps for this). 

You can also work on self-discipline by making small goals and rewarding yourself for achievements. The most important thing, however, is to demand yourself all the time and effectively deny yourself smaller or larger temptations.

5. Obstacles to dealing with frustration and difficulties

I remember the first time I heard about the concept of recursion. I ultimately couldn’t understand it. I was even given a presentation to share about it. Even though I spent several hours describing it, I still could not put the knowledge into practice. I got very frustrated at that point and even began to think that this programming was probably not for me after all – I was too stupid.

Every programmer at some stage has encountered such thoughts, and probably more than once. If I had given up then, I suspect I wouldn’t be doing programming now and yet! Instead of quitting it all, I decided to relax and return to the topic with a clear head, and amazingly it paid off. The very next day, the issue had no secrets from me. Something just jumped into my mind, and the most important thing was that I did not give up. 

Since then, I have known that all frustrations and difficulties are only temporary, and there is no need to worry about them even though the problem may not be solvable at the moment. The feeling of failure is not lovely, but it is an entirely natural part of development; after all, you have to fall a few times to learn to walk!

It is essential that you develop your skills to deal with such frustration and difficulties. It’s good to start by simply changing your perspective and treating mistakes as opportunities to learn and grow. In such situations, it’s a good idea for you to seek help from the community or a mentor to help you solve the problem or look at it from a different angle. Remember also about self-control and the fact that sometimes, with some problems it is good to “sleep” so that the next day you have a clean and fresh view of the situation. 

The most important thing is not to give up!


Do you need personalized advice in developing your software?

Let's discuss it!

Become a junior developer by learning from others

If I had to boil down the punchline to one sentence, I would definitely say: “Start demanding from yourself, stop wasting time on stupid things, systematize your learning process, and never give up.” 

Remember that you are only doing this for yourself; take responsibility for your mistakes because only then will you be able to understand what you are doing wrong. An examination of conscience as much as possible is advisable! Are you sure I have so little time? Am I wasting it on something unproductive? I could not systematize my learning. Do I sometimes lie to myself, explaining my laziness? Are you sure I can’t demand more from myself? I leave the answer to you and hope that with this article, I have shown you at least one thing you can improve in your thinking to getting a junior developer job 🙂 If you need any more inspiration and advice from experienced developers, feel free to check out the My Applover Path series and see stories of getting a web developer job or a mobile app developer position.