Hands down and want to quit the task? This is effective developer training.
The biggest jumps in my professional development took place when I had to work hard, stubbornly, not giving up on understanding something new - and this did not always seem to me to be something good. But gradually I developed an approach that helped overcome the internal blocks.
Perhaps this will help you.
When developing software you encounter difficulties, it’s too easy to lose faith in yourself - sometimes I even want to give up everything. I noticed that in such situations, the brain begins to invent reasons why it is better to spend time on something more familiar, or complains that the task is too tough for me.
I know others have it too.
At Reddite, people talk about similar learning difficulties, and I have heard more than once from other professional developers that they doubt their own ability to understand complex concepts that other colleagues, as they think, “are easy to learn.”
It is very important to persevere in the face of such difficulties - although this is not easy.
Over the past years I have learned several mental tricks that helped me in difficult minutes, hours and days.
I will talk about those points of view that have been particularly useful.
Transferred to Alconost
1. The developer grows professionally thanks to hard work and efforts
What is important in the developer: talent or hard work?
Are people just born great developers - or do they have to put effort into it?
It seems to me that it is impossible to know the correct answer to this question, so I decided to hold the opinion that they are becoming good developers thanks to the efforts made.
Such a viewpoint is more useful: it means that if something doesn’t give me anything, you need to try hard and I’ll figure it out .
In addition, it also follows from here that my work will not always be easy or joyful - it will be necessary and work hard.
2. Trying to do something for the first time can be difficult, and it is unreasonable to expect that you will immediately become involved in this
I, as a developer, often get upset when I come across something that I don’t understand, but I think I should understand.
Somehow I had to work for a company that used git, and everyone around me was experts at this VCS. There was a time when I had to face the fact that my SQL knowledge was not so good.
And in each of these cases, some part of me was sure that I should be well versed in these areas: after all, I am a leading broad-based developer with many years of experience!
Yes, I had experience, but this did not abolish the fact that I had to study these technologies for the first time in detail, and at first I was not very good at them.
Sometimes a new one comes easy, sometimes it doesn't. I began to look at it this way: if I do something for the first time, I don’t have to do it well.
It turns out somehow so ...
“I have never programmed in Java before - it means I shouldn’t be good at it. That's why I go to these courses. ”
“I have never used git repositories - I do not have to know how to do it. Therefore, I will ask a colleague to help. ”So I was able to disarm the voice in my head, which says that I am not fit for my work, that I will not succeed. Of course, I may not be able to do it, and of course, that I am not very good so far - but I should not be able to do something well right away, so I try and improve myself gradually.
3. Working with the code should not always be pleasant: even if the task is not interesting, it can still be done
Sometimes I have to work on tasks that are not fun.
For example, some piece of data processing code in my Spark cluster leads to random node failures, or some library does not want to work, no matter what I tried to think of.
The solution of these problems is not encouraging, and sometimes, to be honest, I would gladly do something else - just not to waste time trying to figure out what is happening.
But I understand: programming does not always have to please - sometimes you just have to roll up your sleeves and take on uninteresting work.
When this happens, it is difficult. But gradually I realized that there is a benefit in this: the most difficult tasks make me improve most effectively.
4. The more complex the task, the more you learn, and failure in such cases is normal.
It turns out that I really learn when I struggle hard with a task that seems too difficult for me.
And in my life there are many examples of this.
When I first took a book on programming, the code was hard for me - but I still learned how to program.
Or, for example, I somehow tried to undertake the development of the architecture of large applications. I struggled long and hard over the task until I found out about structural and constructive patterns — after which we had to throw away months of working on the code, start over and build the application from scratch in a matter of weeks with the help of new knowledge.
Once I had to take SQL seriously and really study it - after that I was able to work with the data analysis department of our company.
Finally, I undertook to design a data processing infrastructure for our company using web application technologies. I struggled with this until I learned about the Data Lake, the ETL pipelines, and distributed computing solutions.
And the list goes on and on.
In each of these cases, there was little pleasant: there were both dead-end solutions, and useless code that had to be thrown away, and many unsuccessful attempts to try something.
But thanks to these difficulties, I acquired new skills and became better as a developer — without all this pain and hopelessness, I would never have learned anything.
Therefore, today I prefer to assume that stress, difficulties and some nervousness are a good sign: if it is difficult for me , it means that I am learning .
As a result, I learned to calmly accept situations in which I have to be nervous: they are, of course, unpleasant, but I think it is worth it.
The brain is a powerful tool
We can choose a point of view on the situation, and this helps to cope with the difficulties that inevitably occur on the path of a developer who wants to improve professionally.
I hope my mental "tricks" (or those that you think of yourself) will help you cope with difficulties.
Be stubborn and don't give up.
If you do not understand something, continue to work hard and try to understand it: you will be surprised at what you are capable of - just try.
About the translator
. The article is translated in Alconost.
Alconost is engaged in the localization of games , applications and sites.in 70 languages. Language translators, linguistic testing, cloud platform with API, continuous localization, 24/7 project managers, any string resource formats.
We also make advertising and training videos - for sites selling, image, advertising, training, teasers, expliners, trailers for Google Play and the App Store.