So you decided to become a programmer.
Perhaps you are interested in creating something new.
Perhaps you are beckoned by big salaries.
Maybe you just want to change the scope of activities.
Not the point.
Important - you decide to become a programmer .
What to do now?
And there are several approaches.
First : go to university for an IT-specialty and get a profile education. The most banal, relatively reliable, extremely long, the most fundamental way. It works if you are still finishing school, or you have the means to support yourself from one and a half (at best, if you grab everything on the fly and can start working on the 2nd year) to four (if combining work with study is not your hobby ) years old.
What is important to know?
If you follow all these points, then by the time you get a diploma you can become a very good specialist with work experience and a baggage of fundamental knowledge, which self-taught people often score because of their non-practical nature. Well, the crust can help if you are thinking of going abroad: they often look at it there.
If you do not comply ... Well, the crust can be obtained and drifting, writing off and preparing for the exam overnight. But you yourself think how competitive you will be then? Of course, I am not saying that everything should be closed on the fives. You just need to get knowledge. Use common sense. Learn what is interesting and useful, and on evaluation - do not care.
The main thing is not what they are trying to cram into you. The main thing is that it is interesting and relevant.
-
Next, the second method : programming courses . The Internet is teeming with suggestions to make you a junior in just 3 months of study. Right here with a portfolio, and even help you find a job. Only for 10k per month, yeah.
Perhaps for some it will work, but purely IMHO: this is complete bullshit. Do not waste time and money. And that's why:
A person far from IT will not be able to enter the specifics of the profession for 3 months. That's all it does. Too much information needs to be learned, too much to understand, and what's more, to get a hand.
Then what will they sell you? You will sell a "mechanical skill". Without much understanding of the details, they will show you what to write to get exactly the following result. With detailed instructions and help from a teacher, you will write an application. One, maximum two. Here is the portfolio. And help in finding a job is sending out vacancies of juns from large firms to which you are unlikely to have an interview.
Why so? It's simple: for a programmer it is very important to think abstractly. A programmer solves problems that can be solved in a billion possible ways. And the main task is to choose from the billions one, the most correct one, and realize it. Creating one or two projects according to the instructions will give you some knowledge of a programming language, but will not teach you how to solve abstract problems. Making an analogy: Imagine that you will be promised to be trained in orienteering, will have a couple of simple tourist routes, and then they will say that you are ready to conquer the taiga in the winter alone. Well, what, they taught you how to use a compass and light a fire without matches.
Summarizing: do not believe those who promise to “roll in” you in a short time. If it were possible, everyone would have become programmers long ago.
Left: what you will be taught. Right: what is required of you at work
-
The third path is the path chosen by the majority. Self-study .
The most difficult, but perhaps the most noble way. We will dwell on it in more detail.
So you decided to become a programmer. Where to start?
First of all, you need to answer the question: why do you want it? If the answer is “well, this is certainly not very interesting, but they pay a lot” , then you can stop at that. You are not here. Even if your willpower is enough to shovel a bunch of information, write thousands of lines of code, endure hundreds of failures, and get the same work, as a result, without love for the profession, this will only lead to emotional burnout. Programming requires a huge amount of intellectual effort, and if these efforts are not fueled by emotional impact in the form of satisfaction for a solved task, then the brain will sooner or later become psychotic and make it impossible for you to decide anything at all. Not the most pleasant scenario.
If you are sure that you are interested in it, then you can decide on the specifics - what exactly do you want to do. If you do not know how programmers can differ among themselves - Google will help you.
Immediately I will write the first tip, so as not to forget: learn English. English is needed. Without English anywhere. No Without English, you cannot become a normal programmer. That's it.
Further, it is desirable to make a roadmap: a plan for which you will develop. Study the specifics, look at vacancies in your specialty, find out superficially what technologies are used there.
An example roadmap for a backend programmer (not for anyone, of course, is just one of the possible options):
This is very , I repeat, a very rough plan, each of the points of which is huge in itself, and many topics are not included (for example, code testing). But this is at least some sort of systematization of knowledge that will allow you not to get confused about what you know and what is not. In the process of studying it will become clearer what is missing, and this roadmap will be supplemented.
Next: find the materials on which you will learn. The main options are:
Okay, with the sources of information decided. How to work with them?
And these 5 points are repeated for each technology that is being studied. Only in this way (with careful study of the theory and dense practice coverage) you will have a high-quality knowledge base with which you can become a professional.
And it would seem, everything is simple: we learn technology one by one, we comprehend Zen, we go to work. That's the way it is, but not so.
Most people who study programming do this according to this scenario:
the picture is honestly steal from here
And here you need to focus on each of the steps in more detail:
Start : you have zero knowledge. Point of departure. So far, nothing is clear, but probably extremely interesting. Begins the path uphill, but light. Very soon you will climb on
Peak of Stupidity : "Hooray, you completed the first couple of courses! Everything turns out!" At this stage, the euphoria of early success overshadows the eyes. It seems that success is near, despite the fact that you are still at the beginning. And striving for this success, you can not notice how the rapid fall into the pit begins. And the name of this pit:
Valley of Despair : You have completed basic courses, read some books and decide to start writing something of your own. And suddenly it does not work . It seems that everything is known, but how to combine it so that it works is not clear. "I do not know anything , " "I will not succeed . " At this stage, many give up. In fact, knowledge really exists, and they have not evaporated anywhere. Just disappeared clear requirements, support. Began real programming. When you have to maneuver in a space where there is a goal, but no intermediate stages, many fall into a stupor. But in fact, this is just another stage of training - even if for the first ten times everything will turn out somehow, with great efforts, it will be ugly. The main thing is to bring the case over and over again, at least somehow . For the eleventh time it will go easier. In the fiftieth there will be a solution that will seem beautiful to you. In the hundredth will not be scary. And then it will come
The slope of Enlightenment : At this stage, the edges of their knowledge and their ignorance are clearly visible. Ignorance no longer scares, there is an understanding of how to overcome it. Maneuvering in space without solutions will become easier. This is the final straight. Already aware of what you are missing as a specialist, you will complete and consolidate what is needed and, with peace of mind, embark on
Plateau of Stability : Congratulations. This is the finish. You are a specialist. You can work, you will not be lost, having met with unfamiliar technology. Almost any problem will be overcome if you put enough effort. And despite the fact that this is the finish line - this is only the beginning of an even greater path.
Ways of the programmer.
Good luck with that!
Literature for optional reading :
About the formation of a programmer and the effect of Dunning-Kruger: tyk .
Hardcore-way to become a programmer for 9 months (not everyone is suitable): tyk .
The list of projects that can be implemented independently during the training: tyk .
Just a little extra motivation: tyk .
Source: https://habr.com/ru/post/450652/
All Articles