HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>29 ноя 2022</li>
2 <ul><li>29 ноя 2022</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><h2>Как стать программистом: от стажёра до тимлида с минимальными издержками и огромным КПД</h2>
4 </ul><h2>Как стать программистом: от стажёра до тимлида с минимальными издержками и огромным КПД</h2>
5 <p>Илья Кучумов из "Яндекса" делится личным опытом и рассказывает, как найти своё место в IT, прокачивать навыки и расти в профессии.</p>
5 <p>Илья Кучумов из "Яндекса" делится личным опытом и рассказывает, как найти своё место в IT, прокачивать навыки и расти в профессии.</p>
6 <p>Фото: Bloomberg / Getty Images</p>
6 <p>Фото: Bloomberg / Getty Images</p>
7 <p>Онлайн-журнал для тех, кто влюблён в код и информационные технологии. Пишем для айтишников и об айтишниках.</p>
7 <p>Онлайн-журнал для тех, кто влюблён в код и информационные технологии. Пишем для айтишников и об айтишниках.</p>
8 <p>Руководитель отдела разработки товарного поиска в "Яндексе".</p>
8 <p>Руководитель отдела разработки товарного поиска в "Яндексе".</p>
9 <ul><li><a>Как новичку выбрать своё направление в IT</a></li>
9 <ul><li><a>Как новичку выбрать своё направление в IT</a></li>
10 <li><a>С чего программисту начинать обучение</a></li>
10 <li><a>С чего программисту начинать обучение</a></li>
11 <li><a>Общение со специалистами</a></li>
11 <li><a>Общение со специалистами</a></li>
12 <li><a>Стажировка</a></li>
12 <li><a>Стажировка</a></li>
13 <li><a>По какому пути пойти программисту - эксперта или руководителя?</a></li>
13 <li><a>По какому пути пойти программисту - эксперта или руководителя?</a></li>
14 </ul><ul><li><a>Как развиваться в IT: горизонтальный переход</a></li>
14 </ul><ul><li><a>Как развиваться в IT: горизонтальный переход</a></li>
15 <li><a>Что нужно знать и уметь, чтобы стать программистом: хард- и софт-скиллы</a></li>
15 <li><a>Что нужно знать и уметь, чтобы стать программистом: хард- и софт-скиллы</a></li>
16 <li><a>Саморазвитие</a></li>
16 <li><a>Саморазвитие</a></li>
17 <li><a>Что самое главное в работе программиста</a></li>
17 <li><a>Что самое главное в работе программиста</a></li>
18 </ul><p>В IT есть куча разнообразных задач, и каждый может найти что-то для себя. Так что не стоит гнаться за мейнстримом или слепо повторять карьерный путь друзей - не бойтесь искать свою дорогу в профессии.</p>
18 </ul><p>В IT есть куча разнообразных задач, и каждый может найти что-то для себя. Так что не стоит гнаться за мейнстримом или слепо повторять карьерный путь друзей - не бойтесь искать свою дорогу в профессии.</p>
19 <p>Расскажу о том, как я стал программистом; возможно, кому-то мои мысли и наблюдения окажутся полезными.</p>
19 <p>Расскажу о том, как я стал программистом; возможно, кому-то мои мысли и наблюдения окажутся полезными.</p>
20 <p>Главное в работе - чтобы она нравилась. Поэтому в самом начале ответьте на вопрос: а что интересно именно вам? Например, можно выбирать между фронтендом и бэкенд-разработкой.</p>
20 <p>Главное в работе - чтобы она нравилась. Поэтому в самом начале ответьте на вопрос: а что интересно именно вам? Например, можно выбирать между фронтендом и бэкенд-разработкой.</p>
21 <p><strong>Фронтенд</strong> - это фасад продукта, который видит пользователь. Начинается он с дизайна и реализуется силами мобильной и веб-разработки.</p>
21 <p><strong>Фронтенд</strong> - это фасад продукта, который видит пользователь. Начинается он с дизайна и реализуется силами мобильной и веб-разработки.</p>
22 <p><strong>Бэкенд</strong> - серверная часть, которая позволяет приложениям работать между несколькими устройствами или решать вычислительно сложные задачи, которые пока не под силу мобильным девайсам или десктопам. Сюда относятся: инфраструктура, аналитика, машинное обучение или программирование микроконтроллеров.</p>
22 <p><strong>Бэкенд</strong> - серверная часть, которая позволяет приложениям работать между несколькими устройствами или решать вычислительно сложные задачи, которые пока не под силу мобильным девайсам или десктопам. Сюда относятся: инфраструктура, аналитика, машинное обучение или программирование микроконтроллеров.</p>
23 <p>Подробно о том, чем фронтенд отличается от бэкенда и где они пересекаются, читайте в <a>нашей статье</a>.</p>
23 <p>Подробно о том, чем фронтенд отличается от бэкенда и где они пересекаются, читайте в <a>нашей статье</a>.</p>
24 <p>За придумывание продукта и его развитие отвечает продакт-менеджер. За организацию процессов разработки - проджект-менеджер.</p>
24 <p>За придумывание продукта и его развитие отвечает продакт-менеджер. За организацию процессов разработки - проджект-менеджер.</p>
25 <p>Есть профессии, изначально не требующие глубоких знаний технологий, менеджмента или языков программирования, но также важные при создании продукта: тестировщик, технический писатель, UX-аналитик. В общем, двери в IT открыты даже для новичков с минимальным набором начальных компетенций.</p>
25 <p>Есть профессии, изначально не требующие глубоких знаний технологий, менеджмента или языков программирования, но также важные при создании продукта: тестировщик, технический писатель, UX-аналитик. В общем, двери в IT открыты даже для новичков с минимальным набором начальных компетенций.</p>
26 <p><strong>Также может быть интересно:</strong></p>
26 <p><strong>Также может быть интересно:</strong></p>
27 <p>Идеальный вариант - самостоятельно попробовать каждое из направлений. Можно начать с обучающих видео на YouTube, коротких курсов и маленьких pet-проектов.</p>
27 <p>Идеальный вариант - самостоятельно попробовать каждое из направлений. Можно начать с обучающих видео на YouTube, коротких курсов и маленьких pet-проектов.</p>
28 <p>Не обязательно создавать уникальные проекты. Например, обучаясь в университете на программиста, я делал онлайн-шахматы, в которые можно было играть с друзьями по сети. В процессе я познакомился со многими нюансами разработки на языке программирования Python: узнал, как организовывать большое приложение, как работает сервер, как устроены клиентские приложения.</p>
28 <p>Не обязательно создавать уникальные проекты. Например, обучаясь в университете на программиста, я делал онлайн-шахматы, в которые можно было играть с друзьями по сети. В процессе я познакомился со многими нюансами разработки на языке программирования Python: узнал, как организовывать большое приложение, как работает сервер, как устроены клиентские приложения.</p>
29 <p>Самым запоминающимся опытом программирования стал сбор отладочной информации с устройств игроков: требовалось сразу сделать всё идеально, ведь при возникновении каких-нибудь проблем я не мог сесть за ноутбук каждого из игроков и отладить программу в ручном режиме.</p>
29 <p>Самым запоминающимся опытом программирования стал сбор отладочной информации с устройств игроков: требовалось сразу сделать всё идеально, ведь при возникновении каких-нибудь проблем я не мог сесть за ноутбук каждого из игроков и отладить программу в ручном режиме.</p>
30 <p>На "примерку" направления достаточно пары месяцев. Если глаза горят и хочется заниматься проектами постоянно - значит, вы нашли то, что искали.</p>
30 <p>На "примерку" направления достаточно пары месяцев. Если глаза горят и хочется заниматься проектами постоянно - значит, вы нашли то, что искали.</p>
31 <p>IT развиваются стремительно. Чтобы понять реальное состояние дел и распланировать свои шаги, неплохо было бы поговорить с людьми из индустрии.</p>
31 <p>IT развиваются стремительно. Чтобы понять реальное состояние дел и распланировать свои шаги, неплохо было бы поговорить с людьми из индустрии.</p>
32 <p>Обратитесь к знакомым, которые уже работают программистами в интересующей вас сфере, поищите людей в LinkedIn и других соцсетях. Ходите на конференции и митапы - они бывают даже в онлайне. Там можно послушать, какие задачи решают "старшие товарищи", а после доклада подойти и задать интересующие вопросы.</p>
32 <p>Обратитесь к знакомым, которые уже работают программистами в интересующей вас сфере, поищите людей в LinkedIn и других соцсетях. Ходите на конференции и митапы - они бывают даже в онлайне. Там можно послушать, какие задачи решают "старшие товарищи", а после доклада подойти и задать интересующие вопросы.</p>
33 <p>Есть ещё одна забавная опция - воспользоваться сервисами Random Coffee или The Breakfast. Они позволяют встретиться с людьми из интересующего вас сообщества программистов. Специальные сервисы организуют такие встречи в крупных городах, причём не только российских.</p>
33 <p>Есть ещё одна забавная опция - воспользоваться сервисами Random Coffee или The Breakfast. Они позволяют встретиться с людьми из интересующего вас сообщества программистов. Специальные сервисы организуют такие встречи в крупных городах, причём не только российских.</p>
34 <p>Очень важно не перепутать этот этап с предыдущим - иначе разговор будет максимально неконструктивным. Имея представление о базовых вещах, вы можете задавать более предметные вопросы и получать более дельные советы. Формулируйте вопрос по схеме: "Я сделал Х, чтобы получить Y. Что я могу сделать ещё и как можно улучшить результат?" Так человек поймёт, что вы действительно заинтересованы и копаете в сторону решения своей задачи.</p>
34 <p>Очень важно не перепутать этот этап с предыдущим - иначе разговор будет максимально неконструктивным. Имея представление о базовых вещах, вы можете задавать более предметные вопросы и получать более дельные советы. Формулируйте вопрос по схеме: "Я сделал Х, чтобы получить Y. Что я могу сделать ещё и как можно улучшить результат?" Так человек поймёт, что вы действительно заинтересованы и копаете в сторону решения своей задачи.</p>
35 <p>Почти любой опыт для программиста-новичка начинается со стажировки, поэтому обязательно постарайтесь на неё попасть. Но даже если вам откажут, просите конструктивный фидбэк. На его основе записывайтесь на долгосрочные курсы или в офлайн-школу по выбранному направлению - например, по разработке или менеджменту.</p>
35 <p>Почти любой опыт для программиста-новичка начинается со стажировки, поэтому обязательно постарайтесь на неё попасть. Но даже если вам откажут, просите конструктивный фидбэк. На его основе записывайтесь на долгосрочные курсы или в офлайн-школу по выбранному направлению - например, по разработке или менеджменту.</p>
36 <p>Однако старайтесь не зависать в состоянии вечного студента - пробуйте устроиться снова. Заявляйте о себе как можно чаще.</p>
36 <p>Однако старайтесь не зависать в состоянии вечного студента - пробуйте устроиться снова. Заявляйте о себе как можно чаще.</p>
37 <p><strong>Подробно про стажировку в IT можно почитать здесь:</strong></p>
37 <p><strong>Подробно про стажировку в IT можно почитать здесь:</strong></p>
38 <p>Внутри каждого IT-направления есть два магистральных пути развития: экспертный и руководительский.</p>
38 <p>Внутри каждого IT-направления есть два магистральных пути развития: экспертный и руководительский.</p>
39 <p>Эксперт (или Individual Contributor, IC) - это специалист, который уходит вглубь технических компетенций. Он решает всё более сложные задачи, берётся за большие проекты, изучает новые технологии и повышает скорость своей работы. Как правило, ведущие программисты могут самостоятельно выполнять крупные сложные проекты с отличным качеством и в прогнозируемый срок.</p>
39 <p>Эксперт (или Individual Contributor, IC) - это специалист, который уходит вглубь технических компетенций. Он решает всё более сложные задачи, берётся за большие проекты, изучает новые технологии и повышает скорость своей работы. Как правило, ведущие программисты могут самостоятельно выполнять крупные сложные проекты с отличным качеством и в прогнозируемый срок.</p>
40 <p>Руководитель - это в первую очередь специалист по управлению вверенной ему командой. Здесь много новых компетенций: наём и увольнение сотрудников, их оценка и мотивация, умение решать внешние и внутрикомандные конфликты, постановка и контроль задач. В руководительской ветке рост происходит в сторону увеличения команды. Сравните масштабы: руководить командой из пяти программистов или управлять пятью руководителями, у каждого из которых своя команда по пять человек.</p>
40 <p>Руководитель - это в первую очередь специалист по управлению вверенной ему командой. Здесь много новых компетенций: наём и увольнение сотрудников, их оценка и мотивация, умение решать внешние и внутрикомандные конфликты, постановка и контроль задач. В руководительской ветке рост происходит в сторону увеличения команды. Сравните масштабы: руководить командой из пяти программистов или управлять пятью руководителями, у каждого из которых своя команда по пять человек.</p>
41 <p>Возможен и переход из IC в руководство и обратно. Например, при смене проекта, работы или просто по желанию. Ошибочно думать, что руководитель - терминальная точка карьеры. По зарплатам - во многих компаниях ведущие разработчики получают не меньше, чем руководители больших команд.</p>
41 <p>Возможен и переход из IC в руководство и обратно. Например, при смене проекта, работы или просто по желанию. Ошибочно думать, что руководитель - терминальная точка карьеры. По зарплатам - во многих компаниях ведущие разработчики получают не меньше, чем руководители больших команд.</p>
42 <p>Горизонтальный переход - это смена деятельности на смежную при сохранении прежней позиции или с небольшим понижением. Не бойтесь ошибаться в выборе направления. Я знаю много айтишников, которые горизонтально переходили между профессиями.</p>
42 <p>Горизонтальный переход - это смена деятельности на смежную при сохранении прежней позиции или с небольшим понижением. Не бойтесь ошибаться в выборе направления. Я знаю много айтишников, которые горизонтально переходили между профессиями.</p>
43 <p>Простой пример - ручные тестировщики (те, кто проверяет приложение, буквально нажимая на кнопки в нём) могут стать автотестировщиками (теми, кто тестирует бэкенд или даже фронтенд при помощи кода). Автотестировщики часто переходят в бэкенд-разработку - то есть изучают языки программирования и пишут непосредственно код приложения.</p>
43 <p>Простой пример - ручные тестировщики (те, кто проверяет приложение, буквально нажимая на кнопки в нём) могут стать автотестировщиками (теми, кто тестирует бэкенд или даже фронтенд при помощи кода). Автотестировщики часто переходят в бэкенд-разработку - то есть изучают языки программирования и пишут непосредственно код приложения.</p>
44 <p>Некоторые программисты из веб-разработки переходят в аналитику. Что логично: по роду своей деятельности они часто работают с аналитиками, которые помогают оценить качество и скорость их решений.</p>
44 <p>Некоторые программисты из веб-разработки переходят в аналитику. Что логично: по роду своей деятельности они часто работают с аналитиками, которые помогают оценить качество и скорость их решений.</p>
45 <p>Из бэкенда можно перейти и в менеджмент. Тут у программиста два варианта: начать организовывать процессы в команде и стать проджектом или активно участвовать в развитии продукта и стать продактом.</p>
45 <p>Из бэкенда можно перейти и в менеджмент. Тут у программиста два варианта: начать организовывать процессы в команде и стать проджектом или активно участвовать в развитии продукта и стать продактом.</p>
46 <p>Навыки специалистов делятся на две категории - хард и софт.</p>
46 <p>Навыки специалистов делятся на две категории - хард и софт.</p>
47 <p>Хард - это профессиональные навыки, которые легко доказать и проверить. Например, умение писать на C++, работать в Excel или паять схемы. Для каждой специальности нужен свой набор хард-скиллов.</p>
47 <p>Хард - это профессиональные навыки, которые легко доказать и проверить. Например, умение писать на C++, работать в Excel или паять схемы. Для каждой специальности нужен свой набор хард-скиллов.</p>
48 <p>Набор необходимых программисту софт-скиллов зависит от команды, компании и ситуации в целом. Это умение объяснять свои мысли, договариваться, вести аргументированный спор, способность работать в команде или разбираться в непонятных вещах.</p>
48 <p>Набор необходимых программисту софт-скиллов зависит от команды, компании и ситуации в целом. Это умение объяснять свои мысли, договариваться, вести аргументированный спор, способность работать в команде или разбираться в непонятных вещах.</p>
49 <p>Для эксперта больше важны хард-скиллы в выбранном направлении, а для руководителя - софты. Например, программист может самостоятельно написать целый проект за полгода, но совсем не умеет отказывать смежникам, которые пытаются отвлечь его на свои задачи. Тогда на помощь приходит руководитель и помогает организовать работу.</p>
49 <p>Для эксперта больше важны хард-скиллы в выбранном направлении, а для руководителя - софты. Например, программист может самостоятельно написать целый проект за полгода, но совсем не умеет отказывать смежникам, которые пытаются отвлечь его на свои задачи. Тогда на помощь приходит руководитель и помогает организовать работу.</p>
50 <p>Или наоборот: руководитель умеет организовывать процесс разработки, но не до конца понимает технические детали реализации. И это нормально, потому что разработка - командная игра.</p>
50 <p>Или наоборот: руководитель умеет организовывать процесс разработки, но не до конца понимает технические детали реализации. И это нормально, потому что разработка - командная игра.</p>
51 <p>Не стоит бояться, что при горизонтальном переходе ранее накопленный вами опыт пропадёт впустую. Софты, полученные во время освоения какой-то специальности или на новой работе, останутся с вами навсегда.</p>
51 <p>Не стоит бояться, что при горизонтальном переходе ранее накопленный вами опыт пропадёт впустую. Софты, полученные во время освоения какой-то специальности или на новой работе, останутся с вами навсегда.</p>
52 <p>Более того: часто бывает, что прокачанные вами хард-скиллы пригождаются и при смене профессии на смежную. Например, разработчики по роду своей деятельности почти всегда обучаются самостоятельно делать аналитику по своим проектам или подключаются к менеджерским задачам.</p>
52 <p>Более того: часто бывает, что прокачанные вами хард-скиллы пригождаются и при смене профессии на смежную. Например, разработчики по роду своей деятельности почти всегда обучаются самостоятельно делать аналитику по своим проектам или подключаются к менеджерским задачам.</p>
53 <p>Важно постоянно сравнивать, как вы и другие программисты решаете похожие задачи, - насколько эффективнее, чем они, выполняете свою работу. Если кто-то делает её быстрее, расспросите его, понаблюдайте за его работой. Узнайте всё вплоть до мелочей: какую среду разработки он использует, какими вспомогательными инструментами и хаками владеет, как выстраивает рабочий процесс и организует свой рабочий день. Затем подумайте о том, что вы делаете по-другому или не делаете вообще.</p>
53 <p>Важно постоянно сравнивать, как вы и другие программисты решаете похожие задачи, - насколько эффективнее, чем они, выполняете свою работу. Если кто-то делает её быстрее, расспросите его, понаблюдайте за его работой. Узнайте всё вплоть до мелочей: какую среду разработки он использует, какими вспомогательными инструментами и хаками владеет, как выстраивает рабочий процесс и организует свой рабочий день. Затем подумайте о том, что вы делаете по-другому или не делаете вообще.</p>
54 <p>Универсальный алгоритм самостоятельного развития программиста выглядит так: формулируем проблему, честно рефлексируем, советуемся с ментором или руководителем, делаем выводы, улучшаем скиллы и повторяем попытку.</p>
54 <p>Универсальный алгоритм самостоятельного развития программиста выглядит так: формулируем проблему, честно рефлексируем, советуемся с ментором или руководителем, делаем выводы, улучшаем скиллы и повторяем попытку.</p>
55 <p>Так вы найдёте узкое место, догадаться о существовании которого самому будет довольно сложно. Сначала может показаться, что вы тонете в деталях и узнать всё никогда не получится, - и это правда. Как говорил один философ: "Чем больше я знаю, тем больше понимаю, сколько всего не знаю". Но через какое-то время вы заметите, насколько эффективнее и быстрее стали выполнять свои задачи.</p>
55 <p>Так вы найдёте узкое место, догадаться о существовании которого самому будет довольно сложно. Сначала может показаться, что вы тонете в деталях и узнать всё никогда не получится, - и это правда. Как говорил один философ: "Чем больше я знаю, тем больше понимаю, сколько всего не знаю". Но через какое-то время вы заметите, насколько эффективнее и быстрее стали выполнять свои задачи.</p>
56 <p>По моему опыту, главное на любом карьерном пути - добросовестное, качественное и проактивное выполнение задач в своей зоне ответственности плюс ещё немного сверх этого.</p>
56 <p>По моему опыту, главное на любом карьерном пути - добросовестное, качественное и проактивное выполнение задач в своей зоне ответственности плюс ещё немного сверх этого.</p>
57 <p>Будучи разработчиком, я старался не просто выполнять задачи, а брался за целый компонент системы, пусть даже и небольшой. Со временем, увеличивая компетенции, стал техлидом. В мои обязанности входило продумывание сложных компонентов, их декомпозиция и реализация, а иногда и делегирование этих задач. Для этого нужно было уметь просто и понятно объяснять решение как менее опытным разработчикам, так и менеджерам.</p>
57 <p>Будучи разработчиком, я старался не просто выполнять задачи, а брался за целый компонент системы, пусть даже и небольшой. Со временем, увеличивая компетенции, стал техлидом. В мои обязанности входило продумывание сложных компонентов, их декомпозиция и реализация, а иногда и делегирование этих задач. Для этого нужно было уметь просто и понятно объяснять решение как менее опытным разработчикам, так и менеджерам.</p>
58 <p>Чуть позже я стал руководителем группы программистов, начал планировать долгосрочные цели, их распределение по сотрудникам, мотивацию и контроль. Также я отвечал за наём и рост разработчиков в своей группе.</p>
58 <p>Чуть позже я стал руководителем группы программистов, начал планировать долгосрочные цели, их распределение по сотрудникам, мотивацию и контроль. Также я отвечал за наём и рост разработчиков в своей группе.</p>
59 <p>Сейчас я на позиции руководителя отдела разработки товарного поиска. Зона моей ответственности значительно расширилась, а инструменты управления изменились.</p>
59 <p>Сейчас я на позиции руководителя отдела разработки товарного поиска. Зона моей ответственности значительно расширилась, а инструменты управления изменились.</p>
60 <p>Я веду целое направление, которое нужно улучшать. Я принимаю технические решения, оцениваю возможные риски, связанные с дальнейшим развитием продукта.</p>
60 <p>Я веду целое направление, которое нужно улучшать. Я принимаю технические решения, оцениваю возможные риски, связанные с дальнейшим развитием продукта.</p>
61 <p>Несмотря на то, что в моём ведении большой отдел, я стараюсь обходиться без фраз "не мы за это отвечаем" - часто берусь за задачи, решение которых находится на стыке с обязанностями других команд, и не всегда понятно, чья это проблема. Но именно решение таких задач позволяет программисту замечать новые зоны ответственности и расти.</p>
61 <p>Несмотря на то, что в моём ведении большой отдел, я стараюсь обходиться без фраз "не мы за это отвечаем" - часто берусь за задачи, решение которых находится на стыке с обязанностями других команд, и не всегда понятно, чья это проблема. Но именно решение таких задач позволяет программисту замечать новые зоны ответственности и расти.</p>
62 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
62 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>