And if there is no mentor?

    On the Internet, there are many questions such as: "How to become a programmer?" and "Which experienced programmer would want to become my mentor, and then, when I learn, will I work out?"

    There are many answers and they are all correct, only in practice they do not always work, not for everyone and not quite as we would like. And a certain fraction, at first glance, of the most correct answers can even do much harm.

    So my answer is the same, so the material of the article will be useful only to those who really are eager to become a programmer, but at the same time they are outside the system, and, of course, haven’t found an answer for themselves.

    Those who are in the system (pupils, students, "majors" or those who already work in the field of IT) are strictly not recommended to read.



    Who is outside the system and what should he do?


    The problem is solved by the “exclusion method”. Outside the system is someone who does not fit popular answers to the questions: “How to become a programmer?” and "How to find a mentor?"

    The first answer is: “Get a job, and they’ll finish up there”


    A great answer if you are a graduate or a graduate student with good grades and live in a big city like Moscow or Kiev. The employer simply has no choice: from whom then will the company grow new employees? But if you have graduated from a not-so-specialized institute and not quite recently, and you live close by, then it’s somehow not already beneficial for the employer to grow a new employee from you.

    The second answer: "Solve the problems"


    Good advice, especially for a student in grades 5-8. You solve puzzles, you win the olympiads, you go to college, you win the olympiads again, and in 8-10 years you can work out the previous scenario, only with top companies and big starting salaries.

    The third answer: “Come up with a project”


    The disclaimer, which is sometimes added, is particularly encouraging: "Well, since you are not a professional, you need to find a mentor who will give and verify these tasks to you." The option will work well if you are already an expert, for example, in mathematics and learn a little C to implement an algorithm that has no analogues in the world yet. Or you can work out the following option.

    The fourth answer: "Take courses or hire a tutor"


    Ingenious! Probably none of those asking this question have guessed that this can be done.

    Another answer: “No one will be your mentor for nothing” or “To become a programmer, you need super talent”


    In fact, at least the answers will often include those wishing to be remote mentors and it would be just great to listen to the success story of such cooperation.

    Something the story begins to drag out, it's time to give a normal answer.

    The normal answer is:


    1. First choose a programming language and technology, given:
      • having a good choice of remote work
      • having a large open community
      • the presence of an object (for example, an Android phone, if you want to learn how to program for Android)

    2. translate from English and outline the latest version of the basic reference for the development language (Flanagan for javascript) so that:
      • learn technical english
      • to work out the basics of the language by translating, outlining and checking examples in the work

    3. to do something in the development language something useful, moreover:
      • the craft should be really useful to you personally, perform some simple, but your tasks for you
      • you should do it the way you like, the way you like, the way you want
      • do not look back at anyone, in no way try to guess what your potential future employer would like to see - you are not a psychic
      • be resistant to any self-doubt and negative reviews.

    4. find a reference source that:
      • made by a recognized master in the field
      • general purpose, widely covers the possibilities of your programming language
      • the author adheres to a simple programming style and explains his code well
      • relatively small source size (up to 3000 lines)
      • should be popular enough to make it easy to find answers to your questions

    5. then you need to work out this source code thoroughly in all possible ways that they only come to mind, because creating such code is exactly what you should strive for.
    6. then we return to point 3, only this time we use the reference source to its fullest (as a library, as a style standard, as a copy-paste object, as a set of patterns, etc.)


    But now your knowledge is enough to return to the system and use popular answers, such as: “Try to work in freelance”, “Participate in opensource projects”, “Get a job, you will increase your level there”. Etc.

    Also popular now: