⬆️ ⬇️

Teaching without a teacher. How to become a professional without a mentor

image



All my professional activity, for more than seven years, I develop independently. It so happened that I always worked alone or with a team that was lower than me in terms of level. At the same time allow yourself to relax, feeling the most intelligent, in the IT industry is strictly not permissible. Constantly you have to look for ways to raise your skill and be sure that you really raised it and correspond to the market.



In this article, I will share the rules that help me to constantly develop as a specialist, to keep myself in a competitive form, and tell the story of the rise from pre-junior to senior.



BONUS : a selection of funny and depressing cases with interviews.



Prehistory



I became interested in programming at the undergraduate university. The basic program, as elsewhere, was, to put it mildly, rather weak, and the soul wanted pain and real hardcore. But all that I could offer the university teachers as an elective, rested on writing a dubious type of utilities on sishnik with adm-assembly of APSHCHI !!! (sorry, allergic to low-level languages).



Maybe I’m not a true programmer, but writing something that cannot be touched and generally not applicable to reality was not at all inspiring, as was planing. image -sites on the knee, what he did on the stream every second. And after a little monitoring of existing platforms, I decided to hit the mobile development. I want to note that it does not matter in which field you are working, mobile or not, the approach is the same everywhere.



As you might guess, the development under iOS, namely, in this direction, I suffered, at the university, no one practiced. The then senior friend suggested we stir up my startup, where I would be in the role of an iOS developer for a fabulous 5k rubles a month (2010, Moscow), pouring beautiful tales to me about an incredible perspective, a wonderful life in a silicon valley where we have been waiting for a long time , you only need to concoct a prototype, show it to investors and millions of investments in our pocket.



Of course, I agreed to this freaky proposal. There was only one question: how to learn? There were no online training courses at that time, and all the information had to be obtained solely by ourselves. And then there was a more serious reason to think: how to do it right? Moreover, the project regularly changed direction (what a surprise) and had to be rewritten twice from scratch in the first six months.



The first steps



I was lucky to immediately get a project on which you can learn. Even more, I had a partner in the Android direction, with which we constantly competed, competed, who is faster, better, stronger, will do this or that functionality. We shared our experience, the way we implemented features, and found out the differences between our platforms.



But not always it turns out so smoothly. Most often, a person wants to learn, and he is denied employment everywhere even for an internship, demanding a certain level of knowledge already. You can go to freelance by offering yourself as a slave, but there is a huge risk of running into the headache and then regret it a lot.



My recommendation for beginners is to find a tutorial for my platform, where the result of learning will be a meaningful application. Not just a set of separate lessons on the tools, but with the actual result. For example, on iOS there is a terrific YouTube channel , where a guy step by step develops real applications. As a result, apart from experience, you will have a ready-made application in Open Source, which you can upload to github and show your future employer or customer as a sample of your abilities, which greatly increases the chance of employment.



This, of course, does not negate the need to master individual tools. Just copying the code from YouTube is not enough. You have to understand what you are doing. If any action of the speaker causes questions and misunderstanding, then it is worthwhile to find instructions specifically on this technology and how to figure it out. Without understanding, it will not be possible to create something new.



For iOS fellow there is another channel , but already in Russian, where you can find help for this or that thing. Highly recommend.



When you have already mastered the basics, you can begin to implement these projects. I advise you to find and join an existing team with which you can learn, where you will be prompted and helped.



But regardless of whether you work alone or in a group, this does not eliminate the need to find tools and solutions.



Search for information



First, for any language and platform there are so-called ' awesome ' lists. This is a collection of useful materials, libraries and other nishtyakov specifically for developers.



For example, for iOS .

image

Find similar in your area, study and be sure to subscribe to commits. So you will receive information about updates and stay abreast of new solutions.



By the way, when you are looking for some tool for the task, you should not forget about Google. You can call me a captain, but many people are so keen on ready-made selections that they are lazy or simply forget to look at the decisions from the outside. This is a big mistake, because a huge number of libraries are often simply not included in these lists and eventually pass by the eye.



Another place to look for information, which is no longer so lively and dynamic (or vice versa, how to look), is thematic events and speeches. It does not even matter much what reports are stated, there may be perfect dregs, but the main thing is the people who came there.

Look at the break for the guys from the flagship companies, ask about their technology stack and tell about your own, share the architecture. And then you can safely enjoy the flow of criticism in your direction.



Maybe you will even be remembered, which is generally wonderful.



Skill check



Any education requires a quality check. The university has a specific curriculum, quizzes and exams, after which your problems in knowledge and information about what needs to be improved will be immediately visible. But in real life there is nothing like that. You are also lucky if you find certification courses for your platform, such as, for example, for Android , only for iOS there is nothing like that. And even then, this certificate covers only a small fraction of the real technologies that are required every day.



The best way to test your knowledge for problems, if there is no one to appreciate you from the professional environment, is to conduct interviews. As I wrote in the last article, they will interrogate you there with the greatest predilection, trying to get to the bottom of all your flaws. You just need to write down the issues of difficulty.



You can go even further - do audio recording of interviews. You do not need from under the table as James Bond to try to turn on the microphone, just ask directly permission. In response to the interviewer's raised eyebrows, tell me honestly: "I want to work on the mistakes, I promise not to spread it anywhere." This has an additional supereffect: a person begins to extremely thoroughly filter the entire market. I apologize for the courtyard vocabulary, but you simply cannot name the pompous lexicon of some personalities.



Of course, it is not necessary to get a job. Yes, you spend other people's time. A little ugly. Maybe even hypocritical. But any employer is wasting much more time than you.



Another thing to consider in advance is the reason for the failure. It is desirable that this was related to something personal, which makes it inconvenient to be interested. No need to answer clumsily: 'I decided to stay on the current job'. Any employer interested in your candidacy will begin to unwind you about the reasons, to mollify to his side, which in the end will end up with a spoiled impression.



Just say: “Unpleasant personal circumstances have appeared, because of them I have to refuse. I do not want to disclose the details, but if in the future the vacancy is relevant, I will definitely contact you. Thank you for your time. ”



So you leave the impression of a responsible person and get acquaintances, which can be useful later. And do not hesitate to ask the contacts of the techies who interviewed you if they seemed qualified. The bigger your social field, the better.



Advanced strategies



Once there comes a time when self-education, reading articles and attending specialized events no longer brings pleasures result. This happens when you are at the upper boundary of the middle or are already senior. This is the stage when most technologies have been studied, all research articles copy each other, and only architectural issues remain on a large scale. That's why everyone loves Viper, for example. Really interesting things left.



What to do? How to further raise your skill?



In fact, there are still many unknown features, but they are often not published. Their authors are lazy and require outside stimulation.



So start writing your articles. Take the area in which you are confident and understand, remove the video on YouTube or speak at a rally with this topic. It is not necessary to do everything perfectly, even better if you cling to something. You can start with the simplest performance in the office among colleagues as a workout. Even if you are more experienced in order, they still have a question that can put you in a dead end and push you to further research.



Feedback is not long in coming. In the comments immediately flow of criticism, suggestions for improvement, negativity and accusation of incompetence.



image

And you need it, now just have time to memorize. And do not hesitate to write in person for clarification, if someone's opinion seemed interesting to you, even if he spoke rudely and negatively about your work. Nobody will miss the chance to be smarter. Even if he zaminusovali. This does not mean that he argued nonsense. Most likely, they did not understand him, not everyone is able to clearly express their thoughts.



Do not worry if you are misunderstood and minus just the way you think. This is inevitable, do not take it to heart. Over time, you will formulate thoughts clearer and clearer, there will be more positive feedback. All this ultimately leaves a positive imprint on the so-called communication skills.



The problem will begin if you become an absolute authority, and the criticism is significantly reduced: those who disagree with you will simply keep silent, not wanting to endure the attacks of the audience. I regularly observe this with more famous colleagues. But this is a separate topic. From the side, I can only recommend not to be presumptive, because the absence of criticism does not mean your perfection, remember this.



PS In addition to feedback, you yourself will understand the material that you have decided to publish. When you tell something, you begin to understand the topic more deeply. As they say, there is no better way to understand something than to explain to another.



BONUS



As promised, a selection of cases with interviews:





Some points are given from the practice of my friends. Thank you so much for sharing your experience.



Conclusion



I tried to maximize the ways of self-education from beginner to senior. Hope it was helpful.



I would like to emphasize the need to test my skills, because without an outside view you cannot be sure about the reality of your progress. If you have a team that gives feedback, then you are very lucky. Try to regularly watch each other's code, conduct reviews and arrange meetings within the company at least once a month. All this is extremely conducive to your development.



Finally, I want to ask you to talk about your ways of self-development. Share your chips. And thanks to everyone who decides to criticize me.



')

Source: https://habr.com/ru/post/322546/



All Articles