Translation of a fragment of an article by Alexander Petkov, founder of the community for helping Junior developers. “Prototypes, objects, algorithms… and all those little steps between steps, and you have no idea how to implement them… Brr, think like a programmer.” Why do many developers give up before they even get started - 1Beginning developers often feel a lot of pressure during their first job. So if you give them a simple exercise to complete the phrase "The last time I wrote code ..." Among the two answers:
  • Everything went like clockwork . I sat back, fired up my editor, and dived into the wonderful world of zeros and ones. Three hours flew by like a blink of an eye!

  • It was soooo boring . I barely made myself sit down and code. Errors constantly popped up, something went wrong. Yes, I still haven't figured it all out. Those 30 minutes felt like three hours to me!
They most often choose the latter. And all because everyone gets into the situation described in the second option from time to time. Even those who have been working as a programmer for 5, 8, 10 years. And in general, the first option sounds like some kind of strange idyllic fairy tale. Now, since we've already decided to talk about getting fed up with programming, it's important to note that this happens to all developers, and very often. And of course we can't stand it.
Why do so many developers give up before they even get started?
Let's try to dig deeper to understand why this is happening. Over the past few years, I have met many beginner developers who:
  1. Recently got into programming and feel completely lost.
  2. Stuck at the introductory stage and feel uncomfortable every time you have to code on your own, without any control from the outside.
  3. They were clearly talented, but failed interviews or did not receive invitations to them at all.

What is the turning point?

I had to spend a lot of time studying the needs and needs of novice programmers, since this sums up the essence of my work. It took me talking to colleagues at my company, doing research on Facebook groups, forums, Q&A sites, exploring huge Reddit threads, and even polling a few smaller communities to get a better understanding of everything. And here's what we managed to find out: "I felt like I just copied what was in the video, and that's it"; “I googled for existing examples that had already been written by someone. At the same time, I felt like a 3-year-old child solving a mathematical puzzle. It's so annoying"; "I'm just not capable of thinking like a programmer"; And here is my favorite: “This is what I learned while learning to code: 99% of the time you feel completely overwhelmed and inefficient. But as soon as you manage to get something to work as it should - that's it, this feeling - MAGIC happened!
Why do so many developers give up before they even get started?
Looking closely at these quotes, you can see something important: the internal struggle of these people does not come from the fact that they are inactive, or do not make enough effort. And not because they have a bad training program, or they lack discipline. In fact, they lack practical experience. It seemed to be an insurmountable difficulty. However, many of them were willing to give up and give up programming.

Two myths about the problems of novice programmers

I have found that two popular myths about the software development career are at the root of many of the problems that new programmers face. I would like to dispel these myths right now so that young programmers avoid unnecessary overloads.

Myth #1. You have to love programming, if there is no love, it's not for you.

How often do I hear something like this from young developers! And yes, I strongly disagree with this statement. You don't have to love programming to become a developer. In fact, approximately 50% of professional developers literally hate this business at times. I state this based on personal observations. Of course, it's great if the problem can be solved easily and simply, gracefully, so to speak. It's great when you have great, clean, tested code that can solve people's problems. But alas, such achievements are not something that will take 100% of your time ... and not close. The everyday life of a programmer usually does not pass in thoughts like: “How cool I was able to apply the dependency injection pattern, elegantly decouple classes, thereby increasing the maintainability of my code. Here I am, well done!”
Why do many developers give up before they even get started?
Alas, this rarely happens. Even those who claim to love writing code spend a significant amount of their time doing boring, monotonous work that doesn't always go smoothly. In the office of programmers, obscene language sounds no less often than in a car service. Honestly! There is nothing wrong with the fact that sometimes you just hate programming. Of course, the question “Maybe this is not for me at all?” very often arises in the head of a novice programmer, when he feels pressure on himself, receives heavy loads and everything does not go at all as we would like. It's okay, trust me. And, yes, programming is for you, no doubt about it. If you are reading this, then you care. And if you care, then everything will certainly work out.

Myth #2. There's so much I don't know, I'll never learn it!

This is another common thought (perhaps even more popular than the first myth). Many people complain about this. And I absolutely clearly understand what is behind this. Our field of activity is so wide that the deeper you delve, the more clearly you understand how much you still do not know. I also feel bad even thinking about it. This is very depressing! The good news is that you don't have to know everything. It is enough to know how to find out what you do not know. For now, make sure you have a basic understanding of what you're working with.
Why do many developers give up before they even get started?
Let's look at such an example. If you are experimenting with CSS, you should understand that it is for applying styles to HTML elements. You can make a button have a border, color, shadow, or animation. You can't tell what will happen when the button is clicked (you need JavaScript for that). Therefore, if you need to "revive" the picture when you click the button:
  1. You must have an image and button elements (HTML);
  2. You can then customize the animation for a specific class (CSS);
  3. And you can add a class to the image on button click (JavaScript).
You read it in the instructions once. After a week, you need to add a shadow to the image when submitting the form. You already know what to look for. You have a general understanding of CSS, HTML, JavaScript, and an understanding of what part of the functionality they are responsible for. All that remains is to google the right words. In this case, "css add shadow" and "javascript add shape". See what we've done? So don't give up too soon and develop the right habits for effective study. But we'll talk about them next time.