I teach people already more than 10 years and the question that bothers me mostly is "Why programmers fail?". Because actually everybody knows that developers earn quite a lot of money. But still we lack programmers across the world. This is why in this post I want to share with you why it happens and how you can avoid it.
There are 2 popular misconceptions from my point of view. First of all everybody knows that not every single person can become a programmer. And people refer to this like "You don't have a knowledge or skills to become a programmer. So you was not born as a programmer.". The second problem that I hear really often is that people say "You learn programming wrong if you do it differently then it will work for you."
But I think that both this problems are not real. First of all every single person can be a developer but obviously not every single person will be a developer. Secondly we have different ways to become a developer. For example you can go to university, you can learn everything by yourself, you can have a mentor or maybe you attended some bootcamp. But actually there are not that many differences in all this ways. You learn coding in some way and then at some point you start doing your own projects and at some point you start working. But still only small percent of people become a developer.
Why is it happening? Here are my thoughts about it.
But first of all the question is "What companies want from you?". They want you to solve some problems. It's not just about writing code. It's about solving business problems or company's problems. And this is really important to remember. So I would split my students in 2 different groups. First group most likely will fail and second group won't fail.
Just watch and chill
The first point here is that people who will fail normally will simply buy a course and they will just watch it maybe not until the end. And it doesn't work like this. At the bare minimum you must code along with the course. Why? Because if you are not an experienced developer you can't really follow the course deeply without deep knowledge of the subject. Which means you will find a lot of different problems, you will understand code better and actually you will code something while you are doing course.
The same goes with copy pasting. People who tend to copy paste stuff from the course or the video normally stop to understand the content at some point. Yes at the beginning it will look like you are following and everything is super easy but at some point you really can't follow along because it's not clear for you.
There are also some students who really ask questions in every single lecture or at least really often. I really think that this people will become programmers because they want to understand and know every single small detail in every single video. They are not just following along without understanding but they really are focused on learning specific subjects inside a video and they want to know everything regarding it. And it they don't understand something they ask questions.
Which brings us to the next important point. There are some people who just simply ask a question and there is other type of people which ask questions and then try to some them themselves. Normally I try to answer all questions in 24 hours for all this questions which means person won't get an answer immediately in 10 minutes. But literally 90% of the questions can be googled in 10 seconds. You can simply copy paste the question to the google and you will find answer in the first link.
All programmers must know how to google, how to find information and how to solve their problems. This is why I 100% sure that people who solved problems on their own and wrote that they solved it already will become developers.
Also inside courses I sometimes give additional tasks that students must do on their own. But obviously they can simply continue to watch the video and see how I solve it myself. I see some students who really tried to solve this quizzes or tasks and they showed me in comments their solutions later. In this case I see that person is not only following along but really tries to do something by himself. And I'm 100% sure that it will be much easier for him or her to find a job later.
Also at the end of every single course I give homework. And do you know how many students who me regarding their homework and asked to check it? It was 3 people in 7 years. And I'm 100% sure that this 3 people are developers now.
One more important point which shows a lot is setting up an environment. In my courses you need to setup an API for example. And sometimes (especially in Windows) it can be quite difficult. Because you need to install additional packages. And people ask questions about setting everything up quite often. And this is totally fine. The main problem that I see here is that a lot of people don't understand that setting up a project is a part of being a developer. And even if you spend like several days or a week on setting up your project it is totally fine. You learned something new. What is not fine is to stop learning programming just because you can't setup something. It is part of your future job and you need to learn how to do it.
And here are 4 important points which might help you to avoid failing.
Stop memorizing code
Point #1 is stop memorizing code. It doesn't make any sense. You need to understand code and you need to save it somewhere so you can reuse it. And you need to understand patterns inside code. It's not about memorizing letters. It doesn't bring anything to you.
Learn step by step
The next problem I also see really often. People jump in learning advanced stuff without learning basics. And I can understand that because they want to become a middle developer or senior as fast as possible. But it doesn't work this way. If you see some super advanced code you can't really progress or you will make it really slowly. And you really don't want to stop learning programming just because you see something too complex.
CV && Portfolio
One most thing is to have your CV somewhere. If you are still learning something it doesn't mean that you should not look for the job. Even if you don't know something fully it doesn't mean that you can't create CV, put there some of your projects and post it on several websites where you can find your job. It doesn't make any sense to wait a half of the year or a year because you will never learn everything. You need to start today as soon as possible. Even if you don't have a lot to present it's better now than in 10 years.
And the last point here is that people don't learn consistency and they procrastinate too often. I can understand that people want to relax and do something else but you can't learn programming if you do it 2 hours in a week. It's not possible. You really need to stay consistent and do it every single day. Then the result will come much faster.