The difficulties of self-learning programming and how to overcome them

Original author: Xiang Zhou
  • Transfer
This is a translation of an article by Xiang Zhou published on the freeCodeCamp website . If you are a self-taught developer and want to overcome all the obstacles to the goal, welcome under the cat!

"White paper on a brown wooden table", photo by Alexander Michl on Unsplash

In recent years, many have been eager to master programming. Someone does this with the help of online courses, someone goes to seminars, and someone just learns by trial and error.

Websites such as, Codecademy, and freeCodeCamp are gaining increasing popularity, and a huge number of courses have appeared on the Internet , including on YouTube.

However, programming is not so easy. There are certain difficulties that we all face when we learn to write code.

1. How much time should be given to programming every day

If you learn to write code yourself, most likely there are other responsibilities in your life. Some work part time or all day, others sit at home with their children. Anyway, everyone has their own concerns.

How can you find time for programming on a daily basis?

Someone will say: "There would be a desire, but there will be time." That's right, I will not argue. But another question arises: how much should be given to programming every day? If my maximum is half an hour, does it count?

Only you can answer. It is very difficult to determine the time required for training. Some believe that less is better, but more qualitatively and 15 minutes is quite enough.

On the other hand, I heard about people who got a job in the development sphere about a year after they began their studies, because they wrote code 9–10 hours a day. If you need motivation, you can take a look at this thread .

So, it all comes down to one thing: only you yourself know how many hours a day you can do programming so that it will become a habit, but not exhausting . The latter is especially important. The freeCodeCamp founder Quincy Larson once said in his tweet:
"It's not about how much you move in one day, but about how you move daily."
In the video below, the lead programmer, who has worked in the field of information technology for decades, will tell you how much time it takes developers to write code every day.

Of course, this is not a universal recipe, but you will get a general idea of ​​how to approach the planning time to study wisely and, importantly, without fanaticism.

2. How to find a middle ground between “almost did not budge” and “burned down at work”

Personally, I was tormented by this. Sometimes, I could not understand a single piece of code, not a single idea from the book I was reading - my brain refused to absorb the information. I was so exhausted that I went out on the balcony to breathe and calm down.

From that moment on, I began to remind myself that you should not get exhausted and reach the point of no return.

Programming is not the easiest job. It requires concentration, especially when you are learning something new. This is hard mental work: sometimes you don’t even understand why your code doesn’t work or, on the contrary, why it worked.

I realized that I was able to achieve the highest productivity, focusing on the current work, but without straining, but enjoying the process.

This happened when I:

  • found a problem that required a solution;
  • found a solution on online forums;
  • I tried to get out of the difficulty in several ways, checking which one worked;
  • solved the problem.

Trying to come to terms with the fact that most of the material is boring and confusing information (data structures, algorithms, etc.), I established a 50/50 rule, which I use in self-study.

I spend 50% of my time on complex tasks - learning the basics, concepts, algorithms, and more. The remaining 50% is left to my own projects, which I do with pleasure. So I achieve harmony in my daily schedule.

Simply put, you need to love what you do. And this conclusion allows us to proceed smoothly to the next item.

3. The only way to overcome obstacles is to love your work.

Trite, but true. If you like the chosen path, if you like your work and the direction in which you move, the approval of others is not necessary. This kind of satisfaction cannot be borrowed, replaced or, worse, feigned.

4. Always go back to programming when you're done with other things.

The reality of self-study is this: you can never be left alone, alone with your reference books.

We all have a lot of other responsibilities in our lives. Perhaps you are someone's spouse or parent and you need to take care of your family. Maybe you have a permanent job or you are a student who is writing a diploma or receiving a degree. When there are so many things to do, how to find time for programming?

To be honest, sometimes this is simply impossible. It happened that I didn’t spend a lot of time writing code — once even two whole months.

However, after this break, I immediately returned to programming and immediately realized that I had forgotten a lot. It is very unpleasant, when opening a book, not to know from what moment to continue learning. Lord, do I have to re-read all the chapters and do all the tasks again?

This is the very moment when you need to hold on, to stand. You need to tell yourself: “So, the first hour of training seems to be going slowly and completely unproductively. But do not worry, I will catch up, having learned more tomorrow. "

Sweeten this pill in no other way - just by continuing to work, no matter what. Go to the coders forum on Twitter and complain, but after that, by all means return to programming.

5. Motivate yourself in any way.

Self-study is very different from university or school. While you are working on the code, there are no classmates or communication around you, and at the end of the tunnel there is no pretentious graduation ceremony. Almost always you are left to yourself and do everything yourself. That is why it is so important to find the motivation to keep moving forward.

I often read this sub-forum on reddit, as many of its users are developers. When creating software, they all use the most powerful hardware. What could be the best reward for a programmer?

You too make a habit of rewarding yourself. It can be a big or a small encouragement - a hot shower at the end of the day, a soft drink, a praise to yourself (often in the learning process it is necessary). Hang a photo on the wall in front of you. You need to believe that one day your workplace will look like this.

6. Resist the temptation to study for the sake of study - go to interviews and meetings, send resume

Sometimes in the process of learning you can deviate from the intended course. I am familiar with the desire to be lazy. But not in the sense that I do not want to learn, but in the fact that there is a secret hope, sitting out for days at the monitor, to avoid a real test - working as a developer .

Resist the temptation to reason: “I’m learning, that's enough. I will think about finding a job later when I'm ready. ”

Frankly, I myself would not hurt to look for potential customers more often. Even if it is a free website development for relatives and friends. In that case, the next time I come to the interview, I will have material that adds weight to the resume. The first step is the most difficult, but it needs to be done at all costs.

All of these barriers will grow on your way to a career as a developer. Meet them in the right mood: they will only make you stronger and better.

Finally, have a nice programming! Enjoy what you create - whether your project or your future.

Also popular now: