Тимлид — одна из ключевых для новичков фигур в команде. Этот специалист участвует в найме, организует онбординг — включает джунов в работу, следит за работой нового специалиста на испытательном сроке. То есть тимлид — один из тех, от кого зависит успешное трудоустройство новичка и его интеграция в команду. Подробнее об этом поговорили с Дмитрием Матвеевым, тимлидом компании Evrone.
Дмитрий Дементий: Расскажите, пожалуйста, о себе. Кто вы и чем занимаетесь?
Дмитрий Матвеев: В разработке с 2008 года. Преподавал в университете прикладную информатику, программирование на C++ и C#. Потом ушел в коммерческую веб-разработку. Начал с PHP, а в 2008 году перешел на Ruby On Rails.
С 2012 года работаю тимлидом. Делал проекты на аутсорсе. Собрал команду, в которой есть как опытные разработчики, так и джуниоры. В том числе есть опыт привлечения в проект студентов.
С 2015 года сотрудничаю с Evrone. Летом преподаю в IT Лаборатории (проект пензенского IT сообщества).
Д.Д.: Какой стек технологий использует в работе ваша команда?
Д.М.: Разрабатываем на Ruby on Rails.
Содержание
Кто такой тимлид и как он работает
Д.Д.: Вопрос, ответ на который нужен начинающим специалистам: кто такой тимлид, чем он занимается?
Д.М.: В команде может быть тимлид и проектный менеджер (проджект-менеджер). Роль этих специалистов варьируется в зависимости от организации процессов в конкретной компании.
Если обобщить, тимлид — человек, который может сам написать код, сделать что-то в проекте руками. Но при этом он еще и занимается менеджментом. Проджект не пишет код, эта позиция — чистый менеджмент.
Тимлид — драйвер команды. Он склеивает коллектив, контактирует с внешним миром, например, с заказчиками. То есть этот специалист должен быть хорошо подготовлен технически, иметь сильные хард-скиллы. Также для тимлида важны софт-скиллы, которые нужны для эффективного взаимодействия с членами команды и внешним миром.
Д.Д.: Как тимлид взаимодействует с командой в целом и отдельными участниками в процессе разработки? Можно буквально несколько зарисовок рабочего процесса сделать, это очень интересно людям без опыта.
Д.М.: Попробую описать процесс на примере рабочего дня. С моей точки зрения, краеугольный камень эффективности тимлида и команды в целом — daily meeting или ежедневный созвон. Во время митинга тимлид и участники команды синхронизируются. Это элемент организации процессов.
Следующий важный этап работы тимлида в течение дня — анализ задач. Он общается по каждой задаче с business owner. Это может быть заказчик или представитель заказчика. на этом этапе тимлиду нужно проработать путь решения задачи с учётом интересов бизнеса.
Тимлид видит картину в целом, интегрирует процессы, смотрит на задачи и пути их решения с точки зрения бизнеса.
В течение дня тимлид помогает разработчикам решать их текущие задачи. Речь идёт о рабочих вопросах по коду. Условно говоря, когда джуниор не может что-то сделать, в игру вступает лидер команды. Он помогает новичку сделать так, чтобы тесты позеленели (и чтобы тесты в принципе появились :). Можно сказать, что тимлид играет роль той самой уточки, после общения с которой разработчик находит способы решения задачи.
Если обобщить, лидер планирует работу команды на несколько шагов вперёд, отвечает на вопросы «почему сделать» и «как сделать».
Какую роль играет тимлид в найме и адаптации сотрудников
Д.Д.: Какова роль тимлида в найме сотрудников? Чем он занимается: рекрутинг, собеседования, онбординг новичков? Если в компании есть HR, как тимлид с ним взаимодействует?
Д.М.: Роль в найме зависит от конкретной компании. В идеале тимлид активно участвует в поиске, отборе и адаптации новичков. Более того, он планирует усиление команды, даёт заказ на поиск новых специалистов, когда понимает, что новички нужны для решения задач.
Если в компании есть HR, он проводит первичную фильтрацию кандидатов. Если эйчара нет, первичный отбор берёт на себя тимлид. Кандидат встречается с тимлидом на втором или даже на первом собеседовании.
Интеграция новичков в команду — прямая обязанность лидера команды. Но тимлид может частично делегировать эту задачу кому-то из опытных сотрудников. В этом случае он следит за процессом и при необходимости подключается.
Д.Д.: Как тимлид планирует работу команды? Планирование происходит сверху (вы говорите, что Джон на этой неделе делает то и это, а Джек это и то) или снизу (Джон и Джек предлагают план, а вы контролируете)?
Д.М.: Иногда тимлид распределяет роли и задачи, хоть это и противоречит scrum. Это происходит, когда такое распределение очевидно и не вызывает значимых конфликтов в коллективе. Но в основном участники команды, включая начинающих разработчиков, сами определяют приоритетные задачи и распределяют роли.
Д.Д.: О контроле: как тимлид контролирует рядовых разработчиков? Выполненные задачи, качество кода, другие аспекты.
Д.М.: Сразу выскажу свою позицию: контроль рабочего стола считаю нонсенсом, деструктивной практикой. Это стресс для сотрудников и иллюзия контроля для руководителей. Такой контроль расслабляет работодателя, а сообразительные люди быстро находят способы его обходить. А программисты — сообразительные люди.
Тимлиду важен результат. То есть сотрудник может сидеть в соцсетях во время обеденного перерыва, если он выполняет поставленные задачи.
Если нет результата, нужно думать. Как я уже отмечал, важную роль в работе тимлида, в том числе с точки зрения контроля разработчиков, играет ежедневный созвон. Предпочитаю созваниваться с видео, это позволяет понять, всё ли в порядке с человеком, как он выглядит.
Негативно отношусь к работе ночью или в выходные. Если человек работает в команде, важно, чтобы он был на связи в рабочее время. И отдыхал в свободное время, это тоже важно.
В исключительных случаях можно идти навстречу сотруднику. Например, если разработчик живёт во Владивостоке, разницу во времени можно и нужно учитывать.
Плохо, когда человек систематически бывает недоступен без предупреждения. Правила хорошего тона — предупреждать о необходимости отлучиться.
Очень важный инструмент контроля — код-ревью. Как отмечалось выше, тимлид — программист. Обычно это специалист уровня senior. Он видит уровень разработчиков во время код-ревью. Это помогает контролировать ситуацию.
Д.Д.: Должен ли тимлид заботиться о росте сотрудников? Например, есть в команде джуниоры. Они должны учиться и прогрессировать. Этот процесс должен идти снизу (от джунов) или сверху (от тимлида)?
Д.М.: Если сотрудник не прогрессирует, виноват тимлид. Это аксиома. Развитие разработчиков — зона прямой ответственности лидера команды. Важно понимать, что необходимо обоюдной желание развиваться. Если у сотрудника такого желания нет, тимлид не поможет.
Что тимлид хочет от кандидатов на позицию джуниора
Д.Д.: Вернёмся к найму. Вам нужны разработчики. Какие требования вы предъявляете к кандидатам? Понятно, что это сильно зависит от проекта, но можно попробовать обобщить.
Д.М.: Сначала отвлекусь, чтобы объяснить свою позицию. Я считаю, что реализованные проекты делают человека разработчиком уровня middle. У миддлов есть баланс качеств. С одной стороны, это самостоятельные разработчики. Они могут решать задачи сами. Разработчик уровня junior пока не стал самостоятельной рабочей единицей.
Конечно, руководителю хочется работать с миддлами — людьми, которые уже умеют решать задачи самостоятельно. Но это не всегда возможно по разным причинам.
И о разработчиках уровня senior. Я их определяю так: если человек умнее меня, он senior :)
Теперь о требованиях. В резюме не должно быть частой смены работы, это настораживает. Когда человек адаптируется в команде, компания инвестирует в него. Только спустя несколько недель или месяцев специалист приносит компании реальную пользу. Поэтому работодатель всегда заинтересован в долгосрочном сотрудничестве.
Рекомендация новичкам: не меняйте работу часто. Если устроились в компанию, где вам что-то не нравится, стоит потерпеть и постараться извлечь из ситуации пользу, кейс, который можно будет показывать на следующих собеседованиях.
Резюме должно быть понятным и логичным, но при этом в нём должны быть технические детали.
Если в компании есть HR, он определяет общую адекватность человека и его мотивацию. Если потенциальный новичок проходит первичный отбор, тимлид оценивает его пригодность к работе с реальными задачами. В разных компаниях процесс собеседований может сильно отличаться, но если обобщить, то это будет микс из:
- беседы на технические темы;
- тестового задания;
- совместного написание кода (live coding).
Несколько лет назад я проводил собеседование и потом просил выполнить тестовое задание. Если у кандидата есть коммиты в open source проект, код из которого он может показать — это облегчает задачу с обеих сторон, и тогда в тестовом задании нет необходимости. Если человек нужен срочно, и на длительный формальный процесс найма нет времени, тогда я просто беседую и пытаюсь понять, какие задачи решал и может решить человек. Как пример золотой середины могу привести пример, как это сделано у нас в Evrone: на собеседовании дают небольшое и интересное задание, которое можно сделать за 15 минут, а уже по нему удобно смотреть, как человек мыслит и как привык писать код.
Д.Д.: Какие хард-скиллы должны быть у специалиста, чтобы он мог всерьёз претендовать на позицию джуниора? Что нужно уметь?
Д.М.: Нужны базовые знания языка и фреймворка, понимание общих принципов DRY и SOLID. Хотя сейчас и принято ругать ООП, но такой подход я считаю несколько инфантильным. На практике знание ООП очень важно. А если добавить к нему понимание функционального программирования, то, наверное, мы говорим уже не о джуниоре, а о состоявшемся и крутом специалисте.
Очень важно уметь и, главное, любить писать тесты. Хорошо, если есть минимальные знания менеджмента. И, особенно для веб-программирования, нужно знать принципы работы баз данных, понимать, как работают индексы. Перечисленного достаточно, чтобы начать работать джуниор разработчиком.
Д.Д.: Аналогичный вопрос по софт-скиллз. Какие нужны софт-скиллы и как их оцениваете?
Д.М.: Человек должен быть адекватным в целом, иметь здравый смысл, не делать фигню. Предполагается, что успешный джун должен понимать и оценивать задачи. Важно, чтобы человек умел задавать вопросы, выбирать приоритеты.
Начинающий разработчик должен уметь выражать свои мысли. Поэтому всем полезно читать книги, в том числе художественную литературу.
Полезно читать книги, в том числе художественную литературу.
Важный софт-скилл — умение слушать. Ещё человек должен уметь адекватно конфликтовать и договариваться. Под способностью адекватно конфликтовать подразумевается умение отстаивать свою позицию, аргументированно доказывать что-то другим разработчикам и руководителю.
Д.Д.: Важные вопросы: пол и возраст. Я слышал, что на Западе есть мода не указывать пол и возраст, чтобы не было дискриминации по этим параметрам. И работодатели, и кандидаты к этому пришли. Как у нас обстоит дело? Есть ли шанс у кандидата 30, 35, 45 лет попасть на позицию джуниора? Есть ли красная черта возрастная? Например, в 34 берём человека, а в 34 и 6 месяцев не берём?
Д.М.: Барьеров по полу и возрасту нет. По полу ответ короткий — здесь никаких проблем нет. О возрасте можно порассуждать.
У молодых и возрастных сотрудников есть преимущества и недостатки. Плюсы молодого специалиста: он готов к сверхурочной работе, энергичен. В то же время уже к условным 23 годам у него может быть солидный опыт за плечами. Например, человек с первого или второго курса университета где-то работает, получает опыт в реальном проекте.
Недостаток молодого специалиста — низкая стрессоустойчивость, эмоциональность. С ним приходится аккуратно общаться.
Преимущества возрастных специалистов: у них за плечами есть жизненный и профессиональный опыт. Эти люди стрессоустойчивы, они знают, чего хотят. Возрастные специалисты надежны, обычно они работают в компании долго.
Недостатком можно назвать меньшую по сравнению с молодежью энергичность, отсутствие желания и возможности совершать «подвиги» на работе. Хотя я считаю, что необходимость в подвигах — это всегда неудача менеджера.
И самое главное — у возрастных людей меньше времени остается на учёбу и профессиональное развитие. После работы им нужно провести время с семьей, пообщаться с детьми, а не изучать новый модный JS-фреймворк. Поэтому здесь на первый план выходит эффективный тайм-менеджмент.
Однако всё вышеперечисленное достаточно условно. В любом возрасте человек может работать продуктивно и достигать успехов, главное — наличие желания и воли.
Д.Д.: Практикуете ли вы испытательный срок? Если да, на что обращаете внимание во время испытательного срока новичка?
Д.М.: Испытательный срок — очень важный инструмент. Это как вопрос гигиены, без него нельзя. Во время испытательного периода обычно выявляются нюансы, которые невозможно отследить и понять ни на одном собеседовании. Бывает так, что люди просто не могут работать вместе в одной команде.
Нормальная продолжительность испытательного срока — от месяца до трёх. Простой критерий: если человек приносит команде (то есть бизнесу) пользу, то можно брать взаимную ответственность и договариваться на длительные рабочие отношения.
Д.Д.: Что должен сделать джун, чтобы наверняка не пройти испытательный срок? Здесь не о крайностях типа прогулов или пьяных дебошей на работе, а о рабочих ситуациях. Как вы понимаете, что этот человек не подходит, хоть и старается? И как это понять человеку?
Д.М.: Человек не проходит испытательный срок, если регулярно не выполняет поставленные задачи. Если такая ситуация происходит один раз, это нормально. В крайнем случае передаю задачу другому специалисту. Но если ситуация систематически повторяется, то такой боец пока не готов к длительному сотрудничеству с нами.
Заключение: об идеальной системе обучения и профессиональном росте
Д.Д.: По вашему мнению, как выглядит идеальная система обучения программиста? Как и что надо изучать, чтобы стать хорошим специалистом?
Д.М.: Идеальной системы обучения нет. В работе и в обучении важна самостоятельность. Специалист должен понимать, что его код будет поддерживать он сам или другие разработчики. Важно читать книги, например, Фаулера. Не бояться код-ревью, учиться читать чужой код.
Д.Д.: Что нужно делать новичку, чтобы профессионально расти и продвигаться по карьерной лестнице? Стать тимлидом, например? Что учить, как и где работать?
Д.М.: Важно понимать, зачем нужен рост. Позиция тимлида подходит не всем. Если обобщить, разработчик может идти по пути развития хард-скиллз. Тогда он растёт в сторону senior и «архитектора». Второе направление — развитие софт-скиллз. Это развитие в сторону тимлида, менеджера.
Тимлид жертвует программированием в пользу общения. Это экстраверт или интроверт, желающий стать экстравертом. Тимлид отвечает за себя и за того парня. Учитывайте это, когда планируете своё развитие.
Д.Д.: Дмитрий, спасибо за интересную беседу!
Д.М.: Читателям всего хорошего!
<!DOCTYPE html>
<html class="h-100" data-bs-theme="light" data-mantine-color-scheme="light" lang="ru" prefix="og: https://ogp.me/ns#">
<head>
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<link crossorigin="true" href="https://cdn.hexlet.io" rel="preconnect">
<link href="https://mc.yandex.ru" rel="preconnect">
<meta content="aa2vrdtq64dub8knuf83lwywit311w" name="facebook-domain-verification">
<link href="/favicon.ico" rel="icon" sizes="any">
<link href="/favicon.svg" rel="icon" type="image/svg+xml">
<link href="/apple-touch-icon.png" rel="apple-touch-icon">
<link href="/manifest.webmanifest" rel="manifest">
<script>
//<![CDATA[
window.gon={};gon.ym_counter="25559621";gon.is_bot=true;gon.applications={};gon.current_user={"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26 20:00:48 UTC","current_program":null,"current_team":null,"full_name":"","guest":true,"can_use_paid_features":false,"is_hexlet_employee":false,"sanitized_phone_number":"","can_subscribe":true,"can_renew_education":false};gon.token="2ToPlvKchRKV6Gc5mjn3azgSRnGnot1aDYrpC9Ys3Ck268ShAOIociOrQ6GWNgcc-Btr26-VI_iwanNfhCs7Rw";gon.locale="ru";gon.language="ru";gon.theme="light";gon.rails_env="production";gon.mobile=false;gon.google={"analytics_key":"UA-1360700-51","optimize_key":"GTM-5QDVFPF"};gon.captcha={"google_v3_site_key":"6LenGbgZAAAAAM7HbrDbn5JlizCSzPcS767c9vaY","yandex_site_key":"ysc1_Vyob5ZPPUdPBsu0ykt8bVFdzsfpoVjQChLGl2b4g19647a89","verification_failed":null};gon.social_signin=false;gon.typoreporter_google_form_id="1FAIpQLSeibfGq-KvWQ2Fyru-zkFFRVTLBuzXAHAoEyN1p49FtDmNoNA";
//]]>
</script>
<meta charset="utf-8">
<title>В резюме не должно быть частой смены работы, или О требованиях тимлида к разработчикам. Интервью с Дмитрием Матвеевым, Evrone</title>
<meta name="description" content="Тимлид — одна из ключевых для новичков фигур в команде. Этот специалист участвует в найме, организует онбординг — включает джунов в работу, следит за работой нового специалиста на испытательном сроке. То есть тимлид — один из тех, от кого зависит успешное трудоустройство новичка и его интеграция в">
<link rel="canonical" href="https://ru.hexlet.io/blog/posts/v-rezyume-ne-dolzhno-byt-chastoy-smeny-raboty-ili-o-trebovaniyah-timlida-k-razrabotchikam-intervyu-s-dmitriem-matveevym-evrone">
<meta property="og:title" content="В резюме не должно быть частой смены работы, или О требованиях тимлида к разработчикам. Интервью с Дмитрием Матвеевым, Evrone">
<meta property="og:description" content="Тимлид — одна из ключевых для новичков фигур в команде. Этот специалист участвует в найме, организует онбординг — включает джунов в работу, следит за работой нового специалиста на испытательном сроке. То есть тимлид — один из тех, от кого зависит успешное трудоустройство новичка и его интеграция в команду. Подробнее об этом поговорили с Дмитрием Матвеевым, тимлидом компании Evrone. ">
<meta property="og:image" content="https://ru.hexlet.io/vite/assets/blog_post-7eTyeLLt.webp">
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="nUSJhk_gJ6POZXJt0PeqpjiaiaFHczeQu-2_nMKmSDdylUKxvZ6Kw3gmVvXc-FrR-JOkC09EyTIGDSXIkKGvWQ" />
<script src="/vite/assets/inertia-DfXos102.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/preload-helper-BJ4cLWpC.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-BrRXra1y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ahoy-DrlRQ-1D.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/analytics-cb8xch9l.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Surface-DL2bpZA-.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/extends-C-EagtpE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/inheritsLoose-BBd-DCVI.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/objectWithoutPropertiesLoose-DRHXDhjp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/index.esm-DAqKOkZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Button-CGPUux8l.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/CloseButton-D1euiPao.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Group-BX48WcuU.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Loader-BQEY8g6v.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Modal-Cy3HByv7.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/OptionalPortal-1Hza5P2w.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Stack-CtjJzfw4.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Textarea-Ck64llAy.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/DirectionProvider-Dc9zdUke.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/events-DJQOhap0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-reduced-motion-D2owz4wa.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-disclosure-zKtK5W1r.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-hotkeys-Cnc_Rwkb.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/random-id-DOQyszCZ.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/exports-C_MrNx_T.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<link rel="stylesheet" href="/vite/assets/application-BqhCP46M.js" />
<script src="/vite/assets/application-Df9RExpe.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/autocomplete-VMNbxKGl.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/createPopper-C3aM9r1M.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/js.cookie-D1-O8zkX.js" as="script" crossorigin="anonymous"><link rel="stylesheet" href="/vite/assets/application-C8HjmMaq.css" media="screen" />
<script>
window.ym = function(){(ym.a=ym.a||[]).push(arguments)};
window.addEventListener('load', function() {
setTimeout(function() {
ym.l = 1*new Date();
ym(window.gon.ym_counter, "init", {
clickmap: true,
trackLinks: true,
accurateTrackBounce: true,
webvisor: true
});
// Загружаем скрипт
var k = document.createElement('script');
k.async = 1;
k.src = 'https://mc.yandex.ru/metrika/tag.js';
document.head.appendChild(k);
ym(window.gon.ym_counter, 'getClientID', function(clientID) {
window.ymClientId = clientID;
});
}, 1500);
});
</script>
<!-- Google Tag Manager - deferred -->
<script>
// dataLayer stub сразу — пуши работают до загрузки скрипта
window.dataLayer = window.dataLayer || [];
// Сам скрипт — отложенно после load
window.addEventListener('load', function() {
setTimeout(function() {
dataLayer.push({'gtm.start': new Date().getTime(), event: 'gtm.js'});
var j = document.createElement('script');
j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id=GTM-WK88TH';
document.head.appendChild(j);
}, 1500);
});
</script>
<!-- End Google Tag Manager -->
</head>
<body>
<noscript>
<div>
<img alt="" src="https://mc.yandex.ru/watch/25559621" style="position:absolute; left:-9999px;">
</div>
</noscript>
<header class="sticky-top bg-body">
<nav class="navbar navbar-expand-lg">
<div class="container-xxl">
<a class="navbar-brand" href="/"><img alt="Логотип Хекслета" height="24" src="https://ru.hexlet.io/vite/assets/logo_ru_light-BpiEA1LT.svg" width="96">
</a><button aria-controls="collapsable" aria-expanded="false" aria-label="Меню" class="navbar-toggler border-0 mb-0 mt-1" data-bs-target="#collapsable" data-bs-toggle="collapse">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="collapsable">
<ul class="navbar-nav mb-lg-0 mt-lg-1">
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
Все курсы
<span class="bi bi-chevron-down align-middle ms-1"></span>
</button>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item d-flex py-2" href="/courses"><div class="fw-bold me-auto">Все что есть</div>
<div class="text-muted">117</div>
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные категории</b>
</li>
<li>
<a class="dropdown-item py-2" href="/courses_devops">Курсы по DevOps
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_data_analytics">Курсы по аналитике данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_programming">Курсы по программированию
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_testing">Курсы по тестированию
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные курсы</b>
</li>
<li>
<a class="dropdown-item py-2" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/go">Go-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/java">Java-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/python">Python-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/qa-auto-engineer-java">Автоматизатор тестирования на Java
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/data-analytics">Аналитик данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/frontend">Фронтенд-разработчик
</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
О Хекслете
<span class="bi bi-chevron-down align-middle"></span>
</button>
<ul class="dropdown-menu bg-body">
<li>
<a class="dropdown-item py-2" href="/pages/about">О нас
</a></li>
<li>
<a class="dropdown-item py-2" href="/blog">Блог
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/hse-research" role="button">Результаты (Исследование)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://career.hexlet.io" role="button">Хекслет Карьера
</span></li>
<li>
<a class="dropdown-item py-2" href="/testimonials">Отзывы студентов
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://t.me/hexlet_help_bot" role="button">Поддержка (В ТГ)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/referal-program/?promo_creative=priglasite-druzei&promo_name=referal-program&promo_position=promo_position&promo_start=010724&promo_type=link" role="button">Реферальная программа
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/certificate" role="button">Подарочные сертификаты
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://hh.ru/employer/4307094" role="button">Вакансии
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://b2b.hexlet.io" data-target="_blank" role="button">Компаниям
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexly.ru/" data-target="_blank" role="button">Колледж
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexlyschool.ru/" data-target="_blank" role="button">Частная школа
</span></li>
</ul>
</li>
<li><a class="nav-link" href="/subscription/new">Подписка</a></li>
</ul>
<ul class="navbar-nav flex-lg-row align-items-lg-center gap-2 ms-auto">
<li>
<a class="nav-link" aria-label="Переключить тему" href="/theme/switch?new_theme=dark"><span aria-hidden="true" class="bi bi-moon"></span>
</a></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="/u/new" role="button"><span>Регистрация</span>
</span></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="https://ru.hexlet.io/session/new" role="button"><span>Вход</span>
</span></li>
</ul>
</div>
</div>
</nav>
</header>
<div class="x-container-xxxl">
</div>
<main class="mb-6 min-vh-100 h-100">
<link rel="preload" as="image" href="/vite/assets/blog_post-7eTyeLLt.webp"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk5OCwicHVyIjoiYmxvYl9pZCJ9fQ==--81cde5ca73d8cf72ceb1577b525dda3ecf5fe51a/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Coding%20workshop-bro.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzc1NywicHVyIjoiYmxvYl9pZCJ9fQ==--bd2826bc88b4074fdf555368020c1fc0ac0705c1/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Low%20code%20development-rafiki.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAyOCwicHVyIjoiYmxvYl9pZCJ9fQ==--ae9eed98663dd1201759d042a5ba7ca790866156/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-bro.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY2OSwicHVyIjoiYmxvYl9pZCJ9fQ==--cbbaa606be07bca305bd21d9919235989a1ed289/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20typing-amico.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDA0MywicHVyIjoiYmxvYl9pZCJ9fQ==--e2c6c0775e2308e42fbc5dc592ba2db0470632ca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png"/><link rel="preload" as="image" href="/vite/assets/development-BVihs_d5.png"/><div id="app" data-page="{"component":"web/blog/posts/show","props":{"errors":{},"locale":"ru","language":"ru","httpsHost":"https://ru.hexlet.io","host":"ru.hexlet.io","colorScheme":"light","auth":{"user":{"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26T20:00:48.635Z","current_program":null,"current_team":null,"full_name":"","guest":true,"can_use_paid_features":false,"is_hexlet_employee":false,"sanitized_phone_number":"","can_subscribe":true,"can_renew_education":false}},"cloudflareTurnstileSiteKey":"0x4AAAAAAA15KmeFXzd2H0Xo","vkIdClientId":"51586979","yandexIdClientId":"88d071f1d3384eb4bd1deb37910235c7","formAuthToken":"btgF0Lrazk6LYOAM2EqYAov-iM6nuIrCxwLpJAZTiF2BCc7nSKRjLj0jxJTURWh1S_elZK-PdGB64nNwVFRvMw","post":{"model_name":"BlogPost","category":{"id":12,"name":"Карьера","slug":"career","state":"published","created_at":"2017-07-21T15:42:21.481Z"},"creator":{"public_name":"Дмитрий Дементий","id":174372,"is_tutor":false},"tags":[{"id":1119,"slug":"bez-steka","name":"Без стека"}],"id":509,"title":"В резюме не должно быть частой смены работы, или О требованиях тимлида к разработчикам. Интервью с Дмитрием Матвеевым, Evrone","slug":"v-rezyume-ne-dolzhno-byt-chastoy-smeny-raboty-ili-o-trebovaniyah-timlida-k-razrabotchikam-intervyu-s-dmitriem-matveevym-evrone","state":"published","summary":"Тимлид — одна из ключевых для новичков фигур в команде. Этот специалист участвует в найме, организует онбординг — включает джунов в работу, следит за работой нового специалиста на испытательном сроке. То есть тимлид — один из тех, от кого зависит успешное трудоустройство новичка и его интеграция в команду. Подробнее об этом поговорили с Дмитрием Матвеевым, тимлидом компании Evrone. ","votes_count":54,"created_at":"2019-10-23T09:10:51.658Z","published_at":"2019-10-23T09:45:45.766Z","body":"Тимлид — одна из ключевых для новичков фигур в команде. Этот специалист участвует в найме, организует онбординг — включает джунов в работу, следит за работой нового специалиста на испытательном сроке. То есть тимлид — один из тех, от кого зависит успешное трудоустройство новичка и его интеграция в команду. Подробнее об этом поговорили с [Дмитрием Матвеевым](https://www.facebook.com/matveyev.d), тимлидом компании [Evrone](https://evrone.com/). \n\n**Дмитрий Дементий: Расскажите, пожалуйста, о себе. Кто вы и чем занимаетесь?**\n\nДмитрий Матвеев: В разработке с 2008 года. Преподавал в университете прикладную информатику, программирование на C++ и C#. Потом ушел в коммерческую веб-разработку. Начал с PHP, а в 2008 году перешел на Ruby On Rails.\n\nС 2012 года работаю тимлидом. Делал проекты на аутсорсе. Собрал команду, в которой есть как опытные разработчики, так и джуниоры. В том числе есть опыт привлечения в проект студентов. \n\nС 2015 года сотрудничаю с Evrone. Летом преподаю в IT Лаборатории ([проект пензенского IT сообщества](https://vk.com/itlab58)). \n\n**Д.Д.: Какой стек технологий использует в работе ваша команда?**\n\nД.М.: Разрабатываем на Ruby on Rails. \n\n::programs\n\n## Содержание\n\n## Кто такой тимлид и как он работает\n\n**Д.Д.: Вопрос, ответ на который нужен начинающим специалистам: кто такой тимлид, чем он занимается?**\n\nД.М.: В команде может быть тимлид и проектный менеджер (проджект-менеджер). Роль этих специалистов варьируется в зависимости от организации процессов в конкретной компании. \n\nЕсли обобщить, тимлид — человек, который может сам написать код, сделать что-то в проекте руками. Но при этом он еще и занимается менеджментом. Проджект не пишет код, эта позиция — чистый менеджмент. \n\nТимлид — драйвер команды. Он склеивает коллектив, контактирует с внешним миром, например, с заказчиками. То есть этот специалист должен быть хорошо подготовлен технически, иметь сильные хард-скиллы. Также для тимлида важны софт-скиллы, которые нужны для эффективного взаимодействия с членами команды и внешним миром. \n\n**Д.Д.: Как тимлид взаимодействует с командой в целом и отдельными участниками в процессе разработки? Можно буквально несколько зарисовок рабочего процесса сделать, это очень интересно людям без опыта.**\n\nД.М.: Попробую описать процесс на примере рабочего дня. С моей точки зрения, краеугольный камень эффективности тимлида и команды в целом — daily meeting или ежедневный созвон. Во время митинга тимлид и участники команды синхронизируются. Это элемент организации процессов. \n\nСледующий важный этап работы тимлида в течение дня — анализ задач. Он общается по каждой задаче с business owner. Это может быть заказчик или представитель заказчика. на этом этапе тимлиду нужно проработать путь решения задачи с учётом интересов бизнеса. \n\nТимлид видит картину в целом, интегрирует процессы, смотрит на задачи и пути их решения с точки зрения бизнеса. \n\nВ течение дня тимлид помогает разработчикам решать их текущие задачи. Речь идёт о рабочих вопросах по коду. Условно говоря, когда джуниор не может что-то сделать, в игру вступает лидер команды. Он помогает новичку сделать так, чтобы[ тесты позеленели](https://ru.hexlet.io/courses/js-testing) (и чтобы тесты в принципе появились :). Можно сказать, что тимлид играет роль той самой уточки, после общения с которой разработчик находит способы решения задачи. \n\nЕсли обобщить, лидер планирует работу команды на несколько шагов вперёд, отвечает на вопросы «почему сделать» и «как сделать». \n\n\n## Какую роль играет тимлид в найме и адаптации сотрудников\n\n**Д.Д.: Какова роль тимлида в найме сотрудников? Чем он занимается: рекрутинг, собеседования, онбординг новичков? Если в компании есть HR, как тимлид с ним взаимодействует?**\n\nД.М.: Роль в найме зависит от конкретной компании. В идеале тимлид активно участвует в поиске, отборе и адаптации новичков. Более того, он планирует усиление команды, даёт заказ на поиск новых специалистов, когда понимает, что новички нужны для решения задач. \n\nЕсли в компании есть HR, он проводит первичную фильтрацию кандидатов. Если эйчара нет, первичный отбор берёт на себя тимлид. Кандидат встречается с тимлидом на втором или даже на первом собеседовании. \n\nИнтеграция новичков в команду — прямая обязанность лидера команды. Но тимлид может частично делегировать эту задачу кому-то из опытных сотрудников. В этом случае он следит за процессом и при необходимости подключается. \n\n**Д.Д.: Как тимлид планирует работу команды? Планирование происходит сверху (вы говорите, что Джон на этой неделе делает то и это, а Джек это и то) или снизу (Джон и Джек предлагают план, а вы контролируете)?**\n\nД.М.: Иногда тимлид распределяет роли и задачи, хоть это и противоречит scrum. Это происходит, когда такое распределение очевидно и не вызывает значимых конфликтов в коллективе. Но в основном участники команды, включая начинающих разработчиков, сами определяют приоритетные задачи и распределяют роли. \n\n**Д.Д.: О контроле: как тимлид контролирует рядовых разработчиков? Выполненные задачи, качество кода, другие аспекты.**\n\nД.М.: Сразу выскажу свою позицию: контроль рабочего стола считаю нонсенсом, деструктивной практикой. Это стресс для сотрудников и иллюзия контроля для руководителей. Такой контроль расслабляет работодателя, а сообразительные люди быстро находят способы его обходить. А программисты — сообразительные люди. \n\nТимлиду важен результат. То есть сотрудник может сидеть в соцсетях во время обеденного перерыва, если он выполняет поставленные задачи. \n\nЕсли нет результата, нужно думать. Как я уже отмечал, важную роль в работе тимлида, в том числе с точки зрения контроля разработчиков, играет ежедневный созвон. Предпочитаю созваниваться с видео, это позволяет понять, всё ли в порядке с человеком, как он выглядит. \n\nНегативно отношусь к работе ночью или в выходные. Если человек работает в команде, важно, чтобы он был на связи в рабочее время. И отдыхал в свободное время, это тоже важно. \n\nВ исключительных случаях можно идти навстречу сотруднику. Например, если разработчик живёт во Владивостоке, разницу во времени можно и нужно учитывать. \n\nПлохо, когда человек систематически бывает недоступен без предупреждения. Правила хорошего тона — предупреждать о необходимости отлучиться. \n\nОчень важный инструмент контроля — код-ревью. Как отмечалось выше, тимлид — программист. Обычно это специалист уровня senior. Он видит уровень разработчиков во время код-ревью. Это помогает контролировать ситуацию. \n\n**Д.Д.: Должен ли тимлид заботиться о росте сотрудников? Например, есть в команде джуниоры. Они должны учиться и прогрессировать. Этот процесс должен идти снизу (от джунов) или сверху (от тимлида)?**\n\nД.М.: Если сотрудник не прогрессирует, виноват тимлид. Это аксиома. Развитие разработчиков — зона прямой ответственности лидера команды. Важно понимать, что необходимо обоюдной желание развиваться. Если у сотрудника такого желания нет, тимлид не поможет. \n\n\n## Что тимлид хочет от кандидатов на позицию джуниора\n\n**Д.Д.: Вернёмся к найму. Вам нужны разработчики. Какие требования вы предъявляете к кандидатам? Понятно, что это сильно зависит от проекта, но можно попробовать обобщить.**\n\nД.М.: Сначала отвлекусь, чтобы объяснить свою позицию. Я считаю, что реализованные проекты делают человека разработчиком уровня middle. У миддлов есть баланс качеств. С одной стороны, это самостоятельные разработчики. Они могут решать задачи сами. Разработчик уровня junior пока не стал самостоятельной рабочей единицей. \n\nКонечно, руководителю хочется работать с миддлами — людьми, которые уже умеют решать задачи самостоятельно. Но это не всегда возможно по разным причинам. \n\nИ о разработчиках уровня senior. Я их определяю так: если человек умнее меня, он senior :)\n\nТеперь о требованиях. В резюме не должно быть частой смены работы, это настораживает. Когда человек адаптируется в команде, компания инвестирует в него. Только спустя несколько недель или месяцев специалист приносит компании реальную пользу. Поэтому работодатель всегда заинтересован в долгосрочном сотрудничестве. \n\nРекомендация новичкам: не меняйте работу часто. Если устроились в компанию, где вам что-то не нравится, стоит потерпеть и постараться извлечь из ситуации пользу, кейс, который можно будет показывать на следующих собеседованиях.\n\nРезюме должно быть понятным и логичным, но при этом в нём должны быть технические детали. \n\nЕсли в компании есть HR, он определяет общую адекватность человека и его мотивацию. Если потенциальный новичок проходит первичный отбор, тимлид оценивает его пригодность к работе с реальными задачами. В разных компаниях процесс собеседований может сильно отличаться, но если обобщить, то это будет микс из:\n\n\n\n* беседы на технические темы;\n* тестового задания;\n* совместного написание кода (live coding).\n\nНесколько лет назад я проводил собеседование и потом просил выполнить тестовое задание. Если у кандидата есть коммиты в open source проект, код из которого он может показать — это облегчает задачу с обеих сторон, и тогда в тестовом задании нет необходимости. Если человек нужен срочно, и на длительный формальный процесс найма нет времени, тогда я просто беседую и пытаюсь понять, какие задачи решал и может решить человек. Как пример золотой середины могу привести пример, как это сделано у нас в Evrone: на собеседовании дают небольшое и интересное задание, которое можно сделать за 15 минут, а уже по нему удобно смотреть, как человек мыслит и как привык писать код. \n\n**Д.Д.: Какие хард-скиллы должны быть у специалиста, чтобы он мог всерьёз претендовать на позицию джуниора? Что нужно уметь?**\n\nД.М.: Нужны базовые знания языка и фреймворка, понимание общих принципов DRY и SOLID. Хотя сейчас и принято ругать ООП, но такой подход я считаю несколько инфантильным. На практике знание ООП очень важно. А если добавить к нему понимание функционального программирования, то, наверное, мы говорим уже не о джуниоре, а о состоявшемся и крутом специалисте.\n\nОчень важно уметь и, главное, любить писать тесты. Хорошо, если есть минимальные знания менеджмента. И, особенно для веб-программирования, нужно знать принципы работы баз данных, понимать, как работают индексы. Перечисленного достаточно, чтобы начать работать джуниор разработчиком.\n\n**Д.Д.: Аналогичный вопрос по софт-скиллз. Какие нужны софт-скиллы и как их оцениваете?**\n\nД.М.: Человек должен быть адекватным в целом, иметь здравый смысл, не делать фигню. Предполагается, что успешный джун должен понимать и оценивать задачи. Важно, чтобы человек умел задавать вопросы, выбирать приоритеты. \n\nНачинающий разработчик должен уметь выражать свои мысли. Поэтому всем полезно читать книги, в том числе художественную литературу. \n\n> Полезно читать книги, в том числе художественную литературу. \n\nВажный софт-скилл — умение слушать. Ещё человек должен уметь адекватно конфликтовать и договариваться. Под способностью адекватно конфликтовать подразумевается умение отстаивать свою позицию, аргументированно доказывать что-то другим разработчикам и руководителю. \n\n**Д.Д.: Важные вопросы: пол и возраст. Я слышал, что на Западе есть мода не указывать пол и возраст, чтобы не было дискриминации по этим параметрам. И работодатели, и кандидаты к этому пришли. Как у нас обстоит дело? Есть ли шанс у кандидата 30, 35, 45 лет попасть на позицию джуниора? Есть ли красная черта возрастная? Например, в 34 берём человека, а в 34 и 6 месяцев не берём?**\n\nД.М.: Барьеров по полу и возрасту нет. По полу ответ короткий — здесь никаких проблем нет. О возрасте можно порассуждать.\n\nУ молодых и возрастных сотрудников есть преимущества и недостатки. Плюсы молодого специалиста: он готов к сверхурочной работе, энергичен. В то же время уже к условным 23 годам у него может быть солидный опыт за плечами. Например, человек с первого или второго курса университета где-то работает, получает опыт в реальном проекте. \n\nНедостаток молодого специалиста — низкая стрессоустойчивость, эмоциональность. С ним приходится аккуратно общаться. \n\nПреимущества возрастных специалистов: у них за плечами есть жизненный и профессиональный опыт. Эти люди стрессоустойчивы, они знают, чего хотят. Возрастные специалисты надежны, обычно они работают в компании долго.\n\nНедостатком можно назвать меньшую по сравнению с молодежью энергичность, отсутствие желания и возможности совершать «подвиги» на работе. Хотя я считаю, что необходимость в подвигах — это всегда неудача менеджера. \n\nИ самое главное — у возрастных людей меньше времени остается на учёбу и профессиональное развитие. После работы им нужно провести время с семьей, пообщаться с детьми, а не изучать новый модный JS-фреймворк. Поэтому здесь на первый план выходит эффективный тайм-менеджмент.\n\nОднако всё вышеперечисленное достаточно условно. В любом возрасте человек может работать продуктивно и достигать успехов, главное — наличие желания и воли.\n\n**Д.Д.: Практикуете ли вы испытательный срок? Если да, на что обращаете внимание во время испытательного срока новичка?**\n\nД.М.: Испытательный срок — очень важный инструмент. Это как вопрос гигиены, без него нельзя. Во время испытательного периода обычно выявляются нюансы, которые невозможно отследить и понять ни на одном собеседовании. Бывает так, что люди просто не могут работать вместе в одной команде. \n\nНормальная продолжительность испытательного срока — от месяца до трёх. Простой критерий: если человек приносит команде (то есть бизнесу) пользу, то можно брать взаимную ответственность и договариваться на длительные рабочие отношения.\n\n**Д.Д.: Что должен сделать джун, чтобы наверняка не пройти испытательный срок? Здесь не о крайностях типа прогулов или пьяных дебошей на работе, а о рабочих ситуациях. Как вы понимаете, что этот человек не подходит, хоть и старается? И как это понять человеку?**\n\nД.М.: Человек не проходит испытательный срок, если регулярно не выполняет поставленные задачи. Если такая ситуация происходит один раз, это нормально. В крайнем случае передаю задачу другому специалисту. Но если ситуация систематически повторяется, то такой боец пока не готов к длительному сотрудничеству с нами. \n\n::posts\n\n## Заключение: об идеальной системе обучения и профессиональном росте\n\n**Д.Д.: По вашему мнению, как выглядит идеальная система обучения программиста? Как и что надо изучать, чтобы стать хорошим специалистом?**\n\nД.М.: Идеальной системы обучения нет. В работе и в обучении важна самостоятельность. Специалист должен понимать, что его код будет поддерживать он сам или другие разработчики. Важно читать книги, например, Фаулера. Не бояться код-ревью, учиться читать чужой код. \n\n**Д.Д.: Что нужно делать новичку, чтобы профессионально расти и продвигаться по карьерной лестнице? Стать тимлидом, например? Что учить, как и где работать?**\n\nД.М.: Важно понимать, зачем нужен рост. Позиция тимлида подходит не всем. Если обобщить, разработчик может идти по пути развития хард-скиллз. Тогда он растёт в сторону senior и «архитектора». Второе направление — развитие софт-скиллз. Это развитие в сторону тимлида, менеджера. \n\nТимлид жертвует программированием в пользу общения. Это экстраверт или интроверт, желающий стать экстравертом. Тимлид отвечает за себя и за того парня. Учитывайте это, когда планируете своё развитие. \n\n**Д.Д.: Дмитрий, спасибо за интересную беседу!**\n\nД.М.: Читателям всего хорошего!\n","reading_time":8,"url":"https://ru.hexlet.io/blog/posts/v-rezyume-ne-dolzhno-byt-chastoy-smeny-raboty-ili-o-trebovaniyah-timlida-k-razrabotchikam-intervyu-s-dmitriem-matveevym-evrone","cover_thumb_variant":null,"cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp","cover_main_variant":"/vite/assets/blog_post-7eTyeLLt.webp","related_stacks_count":5},"relatedPosts":[{"model_name":"BlogPost","id":505,"title":"Слаконар: вакансии и резюме","slug":"slakonar-vakansii-i-rezyume","summary":"Сегодня (18 октября) в 18:30 МСК пройдёт слаконар, посвящённый разбору вакансий и резюме. CEO Hexlet Кирилл Мокевнин и преподаватели Алексей Пирогов и Никита Михайлов в режиме realtime ответят на вопросы по трудоустройству программистов и дадут комментарии к реальным резюме и вакансиям. Ответы со стороны рекрутёра - Вероника Ильина, HR-эксперт, HRD в IT компании.\r\n\r\nО том, как будет проходить слаконар, читайте в новости.","created_at":"2019-10-18T11:39:18.850Z","published_at":"2019-10-18T11:44:27.642Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"},{"model_name":"BlogPost","id":492,"title":"Публичное собеседование: Junior Python-программист","slug":"publichnoe-sobesedovanie-junior-python-programmist","summary":"!youtube!(MgFH0IkQNMQ)\r\n\r\nСегодня в 19:00 по МСК на youtube-канале Хекслет начнётся публичное собеседование на позицию Python-программиста. Кандидат - Александр Кулаков, https://ru.hexlet.io/u/kulakoff. Собеседующий - Алексей Пирогов, преподаватель Хекслет. \r\nСлушатели собеседования могут задавать вопросы в ходе интервью.","created_at":"2019-10-07T11:37:46.972Z","published_at":"2019-10-07T11:40:10.619Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"},{"model_name":"BlogPost","id":484,"title":"Публичное собеседование: PHP-разработчик","slug":"publichnoe-sobesedovanie-php-razrabotchik","summary":"!youtube!(PmhdRXq1QBE)\r\n\r\nСегодня в 19:00 по МСК на youtube-канале Хекслет начнётся публичное собеседование - интервью в прямом эфире с одним из студентов Хекслет. Кандидат - Евгений Губа, собеседующий - Алексей Пирогов. Цель - выйти на уровень мидла и найти работу с фреймворком Symfony.","created_at":"2019-09-30T12:08:39.969Z","published_at":"2019-09-30T12:09:35.298Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"}],"category":{"id":12,"name":"Карьера","slug":"career","state":"published","created_at":"2017-07-21T15:42:21.481Z"},"mainStackCategory":{"id":2,"name":"Курсы по веб-разработке","slug":"web_development","short_name":"Веб-разработка","order":190,"state":"published","category_slug":"courses_web_development"},"categories":[{"id":6,"name":"Мотивация","slug":"motivation","state":"published","created_at":"2016-10-06T18:31:38.903Z"},{"id":3,"name":"Истории успеха","slug":"success","state":"published","created_at":"2016-07-30T12:57:18.308Z"},{"id":14,"name":"Дневник студента","slug":"student-diary","state":"published","created_at":"2019-02-25T13:27:09.471Z"},{"id":4,"name":"Код","slug":"code","state":"published","created_at":"2016-08-23T13:33:44.258Z"},{"id":12,"name":"Карьера","slug":"career","state":"published","created_at":"2017-07-21T15:42:21.481Z"}],"relatedLandings":[{"stack":{"id":30,"slug":"rails-developer","title":"Разработчик Ruby on Rails","audience":"for_programmers","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":160,"duration_in_months":5},"id":48,"slug":"rails-old","title":"Разработчик на Ruby on Rails","subtitle":"Изучите Ruby, Rails и проектирование REST API","subtitle_for_lists":"Изучите Ruby, Rails и проектирование REST API","locale":"ru","current":true,"duration_in_months_text":"5 месяцев","stack_slug":"rails-developer","price_text":"от 3 995 ₽","duration_text":"5 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk5OCwicHVyIjoiYmxvYl9pZCJ9fQ==--81cde5ca73d8cf72ceb1577b525dda3ecf5fe51a/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Coding%20workshop-bro.png"},{"stack":{"id":35,"slug":"ruby-sicp","title":"СИКП на Ruby","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":null,"duration_in_months":1},"id":58,"slug":"ruby-sicp","title":"СИКП на Ruby","subtitle":"Навык понимания программ на фундаментальном уровне, помогающий уверенно проходить собеседования и увеличивать доход","subtitle_for_lists":"Изучите фундаментальные принципы программирования на Ruby ","locale":"ru","current":true,"duration_in_months_text":"1 месяц","stack_slug":"ruby-sicp","price_text":"от 3 900 ₽","duration_text":"1 месяц","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzc1NywicHVyIjoiYmxvYl9pZCJ9fQ==--bd2826bc88b4074fdf555368020c1fc0ac0705c1/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Low%20code%20development-rafiki.png"},{"stack":{"id":34,"slug":"algorithms","title":"Алгоритмы и структуры данных","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":4000,"duration_in_months":2},"id":56,"slug":"algorithms","title":"Алгоритмы и структуры данных","subtitle":"Навык, который увеличит ваши шансы пройти алгоритмическое интервью в международные компании на 80%","subtitle_for_lists":"Алгоритмы для собеседований","locale":"ru","current":true,"duration_in_months_text":"2 месяца","stack_slug":"algorithms","price_text":"от 3 900 ₽","duration_text":"2 месяца","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAyOCwicHVyIjoiYmxvYl9pZCJ9fQ==--ae9eed98663dd1201759d042a5ba7ca790866156/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-bro.png"},{"stack":{"id":179,"slug":"fullstack-php","title":"Fullstack-разработчик на PHP","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":null,"duration_in_months":16},"id":279,"slug":"fullstack-php","title":"Fullstack-разработчик на PHP","subtitle":"","subtitle_for_lists":null,"locale":"ru","current":true,"duration_in_months_text":"16 месяцев","stack_slug":"fullstack-php","price_text":"от 7 934 ₽","duration_text":"16 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY2OSwicHVyIjoiYmxvYl9pZCJ9fQ==--cbbaa606be07bca305bd21d9919235989a1ed289/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20typing-amico.png"},{"stack":{"id":43,"slug":"fullstack-javascript","title":"Fullstack-разработчик на Node.js","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":140,"duration_in_months":12},"id":74,"slug":"fullstack-javascript","title":"Fullstack-разработчик на Node.js","subtitle":"Освоите JavaScript, Node.js, Fastify и React для фронтенда и бэкенда.","subtitle_for_lists":"Освоите JavaScript, Node.js, Fastify и React для фронтенда и бэкенда.","locale":"ru","current":true,"duration_in_months_text":"12 месяцев","stack_slug":"fullstack-javascript","price_text":"от 7 934 ₽","duration_text":"12 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDA0MywicHVyIjoiYmxvYl9pZCJ9fQ==--e2c6c0775e2308e42fbc5dc592ba2db0470632ca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png"}]},"url":"/blog/posts/v-rezyume-ne-dolzhno-byt-chastoy-smeny-raboty-ili-o-trebovaniyah-timlida-k-razrabotchikam-intervyu-s-dmitriem-matveevym-evrone","version":"8f286f6358a90a7bef2263b3a6edf5a90a94fa42","encryptHistory":false,"clearHistory":false}"><style data-mantine-styles="true">:root, :host{--mantine-font-family: Arial, sans-serif;--mantine-font-family-headings: Arial, sans-serif;--mantine-heading-font-weight: normal;--mantine-radius-default: 0rem;--mantine-primary-color-filled: var(--mantine-color-indigo-filled);--mantine-primary-color-filled-hover: var(--mantine-color-indigo-filled-hover);--mantine-primary-color-light: var(--mantine-color-indigo-light);--mantine-primary-color-light-hover: var(--mantine-color-indigo-light-hover);--mantine-primary-color-light-color: var(--mantine-color-indigo-light-color);--mantine-spacing-xxl: calc(4rem * var(--mantine-scale));--mantine-font-size-xs: 12px;--mantine-font-size-sm: 14px;--mantine-font-size-md: 16px;--mantine-font-size-lg: clamp(16.0000px, calc(15.2727px + 0.2273vw), 18.0000px);--mantine-font-size-xl: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-display-3: clamp(32.0000px, calc(26.1818px + 1.8182vw), 48.0000px);--mantine-font-size-display-2: clamp(36.0000px, calc(25.8182px + 3.1818vw), 64.0000px);--mantine-font-size-display-1: clamp(40.0000px, calc(25.4545px + 4.5455vw), 80.0000px);--mantine-font-size-h1: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-font-size-h2: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-font-size-h3: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-font-size-h4: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-font-size-h5: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-h6: 1rem;--mantine-primary-color-0: var(--mantine-color-indigo-0);--mantine-primary-color-1: var(--mantine-color-indigo-1);--mantine-primary-color-2: var(--mantine-color-indigo-2);--mantine-primary-color-3: var(--mantine-color-indigo-3);--mantine-primary-color-4: var(--mantine-color-indigo-4);--mantine-primary-color-5: var(--mantine-color-indigo-5);--mantine-primary-color-6: var(--mantine-color-indigo-6);--mantine-primary-color-7: var(--mantine-color-indigo-7);--mantine-primary-color-8: var(--mantine-color-indigo-8);--mantine-primary-color-9: var(--mantine-color-indigo-9);--mantine-color-red-0: #ffeaea;--mantine-color-red-1: #fed4d4;--mantine-color-red-2: #f4a7a8;--mantine-color-red-3: #ec7878;--mantine-color-red-4: #e55050;--mantine-color-red-5: #e03131;--mantine-color-red-6: #e02829;--mantine-color-red-7: #c71a1c;--mantine-color-red-8: #b21218;--mantine-color-red-9: #9c0411;--mantine-color-violet-0: #fce9ff;--mantine-color-violet-1: #f1cfff;--mantine-color-violet-2: #e09bff;--mantine-color-violet-3: #d16fff;--mantine-color-violet-4: #be37fe;--mantine-color-violet-5: #b51afe;--mantine-color-violet-6: #b009ff;--mantine-color-violet-7: #9b00e4;--mantine-color-violet-8: #8a00cc;--mantine-color-violet-9: #7800b3;--mantine-color-indigo-0: #edecff;--mantine-color-indigo-1: #d6d5fe;--mantine-color-indigo-2: #aaa9f4;--mantine-color-indigo-3: #7b79eb;--mantine-color-indigo-4: #5451e4;--mantine-color-indigo-5: #3b37e0;--mantine-color-indigo-6: #2d2adf;--mantine-color-indigo-7: #1f1ec7;--mantine-color-indigo-8: #1819b2;--mantine-color-indigo-9: #0c149e;--mantine-color-cyan-0: #dffdff;--mantine-color-cyan-1: #caf5ff;--mantine-color-cyan-2: #99e8ff;--mantine-color-cyan-3: #64daff;--mantine-color-cyan-4: #3ccffe;--mantine-color-cyan-5: #24c8fe;--mantine-color-cyan-6: #00c2ff;--mantine-color-cyan-7: #00ade4;--mantine-color-cyan-8: #009acd;--mantine-color-cyan-9: #0085b5;--mantine-color-green-0: #e9fdec;--mantine-color-green-1: #d7f6dc;--mantine-color-green-2: #b0eab9;--mantine-color-green-3: #86df94;--mantine-color-green-4: #62d574;--mantine-color-green-5: #4ccf5f;--mantine-color-green-6: #3fcc54;--mantine-color-green-7: #2fb344;--mantine-color-green-8: #25a03b;--mantine-color-green-9: #138a2e;--mantine-color-yellow-0: #fff7e2;--mantine-color-yellow-1: #ffeecd;--mantine-color-yellow-2: #ffdc9c;--mantine-color-yellow-3: #ffc966;--mantine-color-yellow-4: #feb93a;--mantine-color-yellow-5: #feae1e;--mantine-color-yellow-6: #ffa90f;--mantine-color-yellow-8: #ca8200;--mantine-color-yellow-9: #af7000;--mantine-h1-font-size: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-h1-font-weight: normal;--mantine-h2-font-size: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-h2-font-weight: normal;--mantine-h3-font-size: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-h3-font-weight: normal;--mantine-h4-font-size: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-h4-font-weight: normal;--mantine-h5-font-size: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-h5-font-weight: normal;--mantine-h6-font-size: 1rem;--mantine-h6-font-weight: normal;}
:root[data-mantine-color-scheme="dark"], :host([data-mantine-color-scheme="dark"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-dark-filled: var(--mantine-color-dark-5);--mantine-color-dark-filled-hover: var(--mantine-color-dark-6);--mantine-color-dark-light: rgba(105, 105, 105, 0.15);--mantine-color-dark-light-hover: rgba(105, 105, 105, 0.2);--mantine-color-dark-light-color: var(--mantine-color-dark-0);--mantine-color-dark-outline: var(--mantine-color-dark-1);--mantine-color-dark-outline-hover: rgba(184, 184, 184, 0.05);--mantine-color-gray-filled: var(--mantine-color-gray-5);--mantine-color-gray-filled-hover: var(--mantine-color-gray-6);--mantine-color-gray-light: rgba(222, 226, 230, 0.15);--mantine-color-gray-light-hover: rgba(222, 226, 230, 0.2);--mantine-color-gray-light-color: var(--mantine-color-gray-0);--mantine-color-gray-outline: var(--mantine-color-gray-1);--mantine-color-gray-outline-hover: rgba(241, 243, 245, 0.05);--mantine-color-red-filled: var(--mantine-color-red-5);--mantine-color-red-filled-hover: var(--mantine-color-red-6);--mantine-color-red-light: rgba(236, 120, 120, 0.15);--mantine-color-red-light-hover: rgba(236, 120, 120, 0.2);--mantine-color-red-light-color: var(--mantine-color-red-0);--mantine-color-red-outline: var(--mantine-color-red-1);--mantine-color-red-outline-hover: rgba(254, 212, 212, 0.05);--mantine-color-pink-filled: var(--mantine-color-pink-5);--mantine-color-pink-filled-hover: var(--mantine-color-pink-6);--mantine-color-pink-light: rgba(250, 162, 193, 0.15);--mantine-color-pink-light-hover: rgba(250, 162, 193, 0.2);--mantine-color-pink-light-color: var(--mantine-color-pink-0);--mantine-color-pink-outline: var(--mantine-color-pink-1);--mantine-color-pink-outline-hover: rgba(255, 222, 235, 0.05);--mantine-color-grape-filled: var(--mantine-color-grape-5);--mantine-color-grape-filled-hover: var(--mantine-color-grape-6);--mantine-color-grape-light: rgba(229, 153, 247, 0.15);--mantine-color-grape-light-hover: rgba(229, 153, 247, 0.2);--mantine-color-grape-light-color: var(--mantine-color-grape-0);--mantine-color-grape-outline: var(--mantine-color-grape-1);--mantine-color-grape-outline-hover: rgba(243, 217, 250, 0.05);--mantine-color-violet-filled: var(--mantine-color-violet-5);--mantine-color-violet-filled-hover: var(--mantine-color-violet-6);--mantine-color-violet-light: rgba(209, 111, 255, 0.15);--mantine-color-violet-light-hover: rgba(209, 111, 255, 0.2);--mantine-color-violet-light-color: var(--mantine-color-violet-0);--mantine-color-violet-outline: var(--mantine-color-violet-1);--mantine-color-violet-outline-hover: rgba(241, 207, 255, 0.05);--mantine-color-indigo-filled: var(--mantine-color-indigo-5);--mantine-color-indigo-filled-hover: var(--mantine-color-indigo-6);--mantine-color-indigo-light: rgba(123, 121, 235, 0.15);--mantine-color-indigo-light-hover: rgba(123, 121, 235, 0.2);--mantine-color-indigo-light-color: var(--mantine-color-indigo-0);--mantine-color-indigo-outline: var(--mantine-color-indigo-1);--mantine-color-indigo-outline-hover: rgba(214, 213, 254, 0.05);--mantine-color-blue-filled: var(--mantine-color-blue-5);--mantine-color-blue-filled-hover: var(--mantine-color-blue-6);--mantine-color-blue-light: rgba(116, 192, 252, 0.15);--mantine-color-blue-light-hover: rgba(116, 192, 252, 0.2);--mantine-color-blue-light-color: var(--mantine-color-blue-0);--mantine-color-blue-outline: var(--mantine-color-blue-1);--mantine-color-blue-outline-hover: rgba(208, 235, 255, 0.05);--mantine-color-cyan-filled: var(--mantine-color-cyan-5);--mantine-color-cyan-filled-hover: var(--mantine-color-cyan-6);--mantine-color-cyan-light: rgba(100, 218, 255, 0.15);--mantine-color-cyan-light-hover: rgba(100, 218, 255, 0.2);--mantine-color-cyan-light-color: var(--mantine-color-cyan-0);--mantine-color-cyan-outline: var(--mantine-color-cyan-1);--mantine-color-cyan-outline-hover: rgba(202, 245, 255, 0.05);--mantine-color-teal-filled: var(--mantine-color-teal-5);--mantine-color-teal-filled-hover: var(--mantine-color-teal-6);--mantine-color-teal-light: rgba(99, 230, 190, 0.15);--mantine-color-teal-light-hover: rgba(99, 230, 190, 0.2);--mantine-color-teal-light-color: var(--mantine-color-teal-0);--mantine-color-teal-outline: var(--mantine-color-teal-1);--mantine-color-teal-outline-hover: rgba(195, 250, 232, 0.05);--mantine-color-green-filled: var(--mantine-color-green-5);--mantine-color-green-filled-hover: var(--mantine-color-green-6);--mantine-color-green-light: rgba(134, 223, 148, 0.15);--mantine-color-green-light-hover: rgba(134, 223, 148, 0.2);--mantine-color-green-light-color: var(--mantine-color-green-0);--mantine-color-green-outline: var(--mantine-color-green-1);--mantine-color-green-outline-hover: rgba(215, 246, 220, 0.05);--mantine-color-lime-filled: var(--mantine-color-lime-5);--mantine-color-lime-filled-hover: var(--mantine-color-lime-6);--mantine-color-lime-light: rgba(192, 235, 117, 0.15);--mantine-color-lime-light-hover: rgba(192, 235, 117, 0.2);--mantine-color-lime-light-color: var(--mantine-color-lime-0);--mantine-color-lime-outline: var(--mantine-color-lime-1);--mantine-color-lime-outline-hover: rgba(233, 250, 200, 0.05);--mantine-color-yellow-filled: var(--mantine-color-yellow-5);--mantine-color-yellow-filled-hover: var(--mantine-color-yellow-6);--mantine-color-yellow-light: rgba(255, 201, 102, 0.15);--mantine-color-yellow-light-hover: rgba(255, 201, 102, 0.2);--mantine-color-yellow-light-color: var(--mantine-color-yellow-0);--mantine-color-yellow-outline: var(--mantine-color-yellow-1);--mantine-color-yellow-outline-hover: rgba(255, 238, 205, 0.05);--mantine-color-orange-filled: var(--mantine-color-orange-5);--mantine-color-orange-filled-hover: var(--mantine-color-orange-6);--mantine-color-orange-light: rgba(255, 192, 120, 0.15);--mantine-color-orange-light-hover: rgba(255, 192, 120, 0.2);--mantine-color-orange-light-color: var(--mantine-color-orange-0);--mantine-color-orange-outline: var(--mantine-color-orange-1);--mantine-color-orange-outline-hover: rgba(255, 232, 204, 0.05);--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-9) 0%, var(--mantine-color-cyan-7) 100%);--app-color-surface: #2e2e2e;}
:root[data-mantine-color-scheme="light"], :host([data-mantine-color-scheme="light"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-red-light: rgba(224, 40, 41, 0.1);--mantine-color-red-light-hover: rgba(224, 40, 41, 0.12);--mantine-color-red-outline-hover: rgba(224, 40, 41, 0.05);--mantine-color-violet-light: rgba(176, 9, 255, 0.1);--mantine-color-violet-light-hover: rgba(176, 9, 255, 0.12);--mantine-color-violet-outline-hover: rgba(176, 9, 255, 0.05);--mantine-color-indigo-light: rgba(45, 42, 223, 0.1);--mantine-color-indigo-light-hover: rgba(45, 42, 223, 0.12);--mantine-color-indigo-outline-hover: rgba(45, 42, 223, 0.05);--mantine-color-cyan-light: rgba(0, 194, 255, 0.1);--mantine-color-cyan-light-hover: rgba(0, 194, 255, 0.12);--mantine-color-cyan-outline-hover: rgba(0, 194, 255, 0.05);--mantine-color-green-light: rgba(63, 204, 84, 0.1);--mantine-color-green-light-hover: rgba(63, 204, 84, 0.12);--mantine-color-green-outline-hover: rgba(63, 204, 84, 0.05);--mantine-color-yellow-light: rgba(255, 169, 15, 0.1);--mantine-color-yellow-light-hover: rgba(255, 169, 15, 0.12);--mantine-color-yellow-outline-hover: rgba(255, 169, 15, 0.05);--app-color-surface: #f1f3f5;--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-filled) 0%, var(--mantine-color-cyan-5) 100%);}</style><style data-mantine-styles="classes">@media (max-width: 35.99375em) {.mantine-visible-from-xs {display: none !important;}}@media (min-width: 36em) {.mantine-hidden-from-xs {display: none !important;}}@media (max-width: 47.99375em) {.mantine-visible-from-sm {display: none !important;}}@media (min-width: 48em) {.mantine-hidden-from-sm {display: none !important;}}@media (max-width: 61.99375em) {.mantine-visible-from-md {display: none !important;}}@media (min-width: 62em) {.mantine-hidden-from-md {display: none !important;}}@media (max-width: 74.99375em) {.mantine-visible-from-lg {display: none !important;}}@media (min-width: 75em) {.mantine-hidden-from-lg {display: none !important;}}@media (max-width: 87.99375em) {.mantine-visible-from-xl {display: none !important;}}@media (min-width: 88em) {.mantine-hidden-from-xl {display: none !important;}}</style><script type="application/ld+json">{"@context":"https://schema.org","@type":"Article","author":"Дмитрий Дементий","name":"В резюме не должно быть частой смены работы, или О требованиях тимлида к разработчикам. Интервью с Дмитрием Матвеевым, Evrone","datePublished":"2019-10-23T09:45:45.766Z","headline":"Тимлид — одна из ключевых для новичков фигур в команде. Этот специалист участвует в найме, организует онбординг — включает джунов в работу, следит за работой нового специалиста на испытательном сроке. То есть тимлид — один из тех, от кого зависит успешное трудоустройство новичка и его интеграция в команду. Подробнее об этом поговорили с Дмитрием Матвеевым, тимлидом компании Evrone. ","image":"/vite/assets/blog_post-7eTyeLLt.webp","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":54}]}</script><div style="--container-size:var(--container-size-lg);margin-top:var(--mantine-spacing-xl);height:100%" class="m_7485cace mantine-Container-root" data-size="lg" data-strategy="block"><script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"position":1,"@type":"ListItem","item":{"@id":"/blog","name":"Блог Хекслета"}},{"position":2,"@type":"ListItem","item":{"@id":"/blog/categories/career","name":"Карьера"}},{"position":3,"@type":"ListItem","item":{"@id":"/blog/posts/v-rezyume-ne-dolzhno-byt-chastoy-smeny-raboty-ili-o-trebovaniyah-timlida-k-razrabotchikam-intervyu-s-dmitriem-matveevym-evrone","name":"В резюме не должно быть частой смены работы, или О требованиях тимлида к разработчикам. Интервью с Дмитрием Матвеевым, Evrone"}}]}</script><div style="margin-bottom:var(--mantine-spacing-xs)" class="m_8b3717df mantine-Breadcrumbs-root"><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/"><div style="color:inherit" class="m_4451eb3a mantine-Center-root"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-home-link "><path d="M20.085 11.085l-8.085 -8.085l-9 9h2v7a2 2 0 0 0 2 2h4.5"></path><path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 1.807 1.143"></path><path d="M20 21a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M20 16a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M15 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M21 16l-5 3l5 2"></path></svg></div></a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/blog">Блог Хекслета</a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/blog/categories/career">Карьера</a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><p style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:var(--mantine-color-dimmed)" class="mantine-focus-auto m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root" data-size="sm">В резюме не должно быть частой смены работы, или О требованиях тимлида к разработчикам. Интервью с Дмитрием Матвеевым, Evrone</p></div><style data-mantine-styles="inline">.__m__-_R_eub_{margin-bottom:var(--mantine-spacing-xs);}@media(min-width: 36em){.__m__-_R_eub_{margin-bottom:var(--mantine-spacing-xs);}}</style><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root __m__-_R_eub_"><style data-mantine-styles="inline">.__m__-_R_deub_{width:100%;}@media(min-width: 36em){.__m__-_R_deub_{width:70%;}}@media(min-width: 75em){.__m__-_R_deub_{width:75%;}}</style><div class="__m__-_R_deub_"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><h1 style="--title-fw:var(--mantine-h1-font-weight);--title-lh:var(--mantine-h1-line-height);--title-fz:var(--mantine-h1-font-size)" class="m_8a5d1357 mantine-Title-root" data-order="1">В резюме не должно быть частой смены работы, или О требованиях тимлида к разработчикам. Интервью с Дмитрием Матвеевым, Evrone</h1></div></div></div><div style="position:absolute;top:calc(18.75rem * var(--mantine-scale))" class=""></div><style data-mantine-styles="inline">.__m__-_R_2iub_{--grid-gutter:var(--mantine-spacing-xl);}</style><div class="m_410352e9 mantine-Grid-root __m__-_R_2iub_"><div class="m_dee7bd2f mantine-Grid-inner"><style data-mantine-styles="inline">.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}@media(min-width: 48em){.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:83.33333333333334%;--col-max-width:83.33333333333334%;}}@media(min-width: 62em){.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:66.66666666666667%;--col-max-width:66.66666666666667%;}}</style><div class="m_96bdd299 mantine-Grid-col __m__-_R_dmiub_"><div style="--stack-gap:var(--mantine-spacing-md);--stack-align:stretch;--stack-justify:flex-start;margin-bottom:var(--mantine-spacing-xl)" class="m_6d731127 mantine-Stack-root"><div class=""><div style="--group-gap:var(--mantine-spacing-xs);--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-xl)" class="m_4081bf90 mantine-Group-root"><button style="--badge-height:var(--badge-height-sm);--badge-padding-x:var(--badge-padding-x-sm);--badge-fz:var(--badge-fz-sm);--badge-bg:var(--mantine-color-default);--badge-color:var(--mantine-color-default-color);--badge-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);cursor:pointer;color:inherit" class="m_347db0ec mantine-Badge-root" data-variant="default" data-size="sm" type="button" aria-label="Без стека"><span class="m_5add502a mantine-Badge-label">Без стека</span></button></div><div style="--group-gap:calc(0.625rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-sm);color:var(--mantine-color-gray-text)" class="m_4081bf90 mantine-Group-root"><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-inline-end:var(--mantine-spacing-lg)" class="m_4081bf90 mantine-Group-root">23 октября 2019 г.</div><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-clock "><path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0"></path><path d="M12 7v5l3 3"></path></svg></div>8 минут</div><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-thumb-up "><path d="M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3"></path></svg></div>54</div></div><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img style="--image-radius:var(--mantine-radius-md);--image-object-fit:cover;width:100%;height:100%" class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" alt="В резюме не должно быть частой смены работы, или О требованиях тимлида к разработчикам. Интервью с Дмитрием Матвеевым, Evrone"/></div></div><div role="link" tabindex="0" style="cursor:pointer"><button style="display:block;width:100%" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Присоединяйтесь к нашему Telegram-сообществу"><div style="background-color:light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-6))" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:auto;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-brand-telegram "><path d="M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4"></path></svg></div>Присоединяйтесь к нашему Telegram-сообществу</div></div></button></div><div style="margin-bottom:var(--mantine-spacing-xl)" class="m_d08caa0 mantine-Typography-root"><p>Тимлид — одна из ключевых для новичков фигур в команде. Этот специалист участвует в найме, организует онбординг — включает джунов в работу, следит за работой нового специалиста на испытательном сроке. То есть тимлид — один из тех, от кого зависит успешное трудоустройство новичка и его интеграция в команду. Подробнее об этом поговорили с <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://www.facebook.com/matveyev.d" rel="noopener noreferrer" target="_blank">Дмитрием Матвеевым</a>, тимлидом компании <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://evrone.com/" rel="noopener noreferrer" target="_blank">Evrone</a>.</p>
<p><strong>Дмитрий Дементий: Расскажите, пожалуйста, о себе. Кто вы и чем занимаетесь?</strong></p>
<p>Дмитрий Матвеев: В разработке с 2008 года. Преподавал в университете прикладную информатику, программирование на C++ и C#. Потом ушел в коммерческую веб-разработку. Начал с PHP, а в 2008 году перешел на Ruby On Rails.</p>
<p>С 2012 года работаю тимлидом. Делал проекты на аутсорсе. Собрал команду, в которой есть как опытные разработчики, так и джуниоры. В том числе есть опыт привлечения в проект студентов.</p>
<p>С 2015 года сотрудничаю с Evrone. Летом преподаю в IT Лаборатории (<a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://vk.com/itlab58" rel="noopener noreferrer" target="_blank">проект пензенского IT сообщества</a>).</p>
<p><strong>Д.Д.: Какой стек технологий использует в работе ваша команда?</strong></p>
<p>Д.М.: Разрабатываем на Ruby on Rails.</p>
<style data-mantine-styles="inline">.__m__-_R_fderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:70%;}@media(min-width: 36em){.__m__-_R_fderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xl);--carousel-slide-size:50%;}}</style><div style="--carousel-control-size:calc(2.5rem * var(--mantine-scale));--carousel-controls-offset:var(--mantine-spacing-sm);margin-bottom:var(--mantine-spacing-lg);padding-block:var(--mantine-spacing-sm);background:var(--app-color-surface)" class="m_17884d0f mantine-Carousel-root responsiveClassName" data-orientation="horizontal" data-include-gap-in-size="true"><div class="m_39bc3463 mantine-Carousel-controls" data-orientation="horizontal"><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="previous" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="next" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(-90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button></div><div class="m_a2dae653 mantine-Carousel-viewport" data-type="media"><div class="m_fcd81474 mantine-Carousel-container __m__-_R_fderddmiub_" data-orientation="horizontal"><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/rails-old?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">5 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Разработчик на Ruby on Rails</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите Ruby, Rails и проектирование REST API</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk5OCwicHVyIjoiYmxvYl9pZCJ9fQ==--81cde5ca73d8cf72ceb1577b525dda3ecf5fe51a/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Coding%20workshop-bro.png" alt="Разработчик на Ruby on Rails" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 995 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/ruby-sicp?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">1 месяц</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">СИКП на Ruby</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите фундаментальные принципы программирования на Ruby </p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzc1NywicHVyIjoiYmxvYl9pZCJ9fQ==--bd2826bc88b4074fdf555368020c1fc0ac0705c1/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Low%20code%20development-rafiki.png" alt="СИКП на Ruby" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/algorithms?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">2 месяца</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Алгоритмы и структуры данных</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Алгоритмы для собеседований</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAyOCwicHVyIjoiYmxvYl9pZCJ9fQ==--ae9eed98663dd1201759d042a5ba7ca790866156/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-bro.png" alt="Алгоритмы и структуры данных" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/fullstack-php?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">16 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Fullstack-разработчик на PHP</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root"></p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY2OSwicHVyIjoiYmxvYl9pZCJ9fQ==--cbbaa606be07bca305bd21d9919235989a1ed289/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20typing-amico.png" alt="Fullstack-разработчик на PHP" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 7 934 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/fullstack-javascript?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">12 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Fullstack-разработчик на Node.js</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Освоите JavaScript, Node.js, Fastify и React для фронтенда и бэкенда.</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDA0MywicHVyIjoiYmxvYl9pZCJ9fQ==--e2c6c0775e2308e42fbc5dc592ba2db0470632ca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png" alt="Fullstack-разработчик на Node.js" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 7 934 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><h2 style="--title-fw:var(--mantine-h2-font-weight);--title-lh:var(--mantine-h2-line-height);--title-fz:var(--mantine-h2-font-size);margin-bottom:var(--mantine-spacing-md);font-size:var(--mantine-font-size-h3)" class="m_8a5d1357 mantine-Title-root" data-order="2" data-responsive="true">Каталог</h2><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Полный список доступных курсов по разным направлениям</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="/vite/assets/development-BVihs_d5.png" alt="Orientation"/></div></div></div></a></div></div></div></div></div>
<h2 id="heading-2-1">Содержание</h2>
<ul>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-2">Кто такой тимлид и как он работает</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-3">Какую роль играет тимлид в найме и адаптации сотрудников</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-4">Что тимлид хочет от кандидатов на позицию джуниора</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-5">Заключение: об идеальной системе обучения и профессиональном росте</a></li>
</ul>
<h2 id="heading-2-2">Кто такой тимлид и как он работает</h2>
<p><strong>Д.Д.: Вопрос, ответ на который нужен начинающим специалистам: кто такой тимлид, чем он занимается?</strong></p>
<p>Д.М.: В команде может быть тимлид и проектный менеджер (проджект-менеджер). Роль этих специалистов варьируется в зависимости от организации процессов в конкретной компании.</p>
<p>Если обобщить, тимлид — человек, который может сам написать код, сделать что-то в проекте руками. Но при этом он еще и занимается менеджментом. Проджект не пишет код, эта позиция — чистый менеджмент.</p>
<p>Тимлид — драйвер команды. Он склеивает коллектив, контактирует с внешним миром, например, с заказчиками. То есть этот специалист должен быть хорошо подготовлен технически, иметь сильные хард-скиллы. Также для тимлида важны софт-скиллы, которые нужны для эффективного взаимодействия с членами команды и внешним миром.</p>
<p><strong>Д.Д.: Как тимлид взаимодействует с командой в целом и отдельными участниками в процессе разработки? Можно буквально несколько зарисовок рабочего процесса сделать, это очень интересно людям без опыта.</strong></p>
<p>Д.М.: Попробую описать процесс на примере рабочего дня. С моей точки зрения, краеугольный камень эффективности тимлида и команды в целом — daily meeting или ежедневный созвон. Во время митинга тимлид и участники команды синхронизируются. Это элемент организации процессов.</p>
<p>Следующий важный этап работы тимлида в течение дня — анализ задач. Он общается по каждой задаче с business owner. Это может быть заказчик или представитель заказчика. на этом этапе тимлиду нужно проработать путь решения задачи с учётом интересов бизнеса.</p>
<p>Тимлид видит картину в целом, интегрирует процессы, смотрит на задачи и пути их решения с точки зрения бизнеса.</p>
<p>В течение дня тимлид помогает разработчикам решать их текущие задачи. Речь идёт о рабочих вопросах по коду. Условно говоря, когда джуниор не может что-то сделать, в игру вступает лидер команды. Он помогает новичку сделать так, чтобы<a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/courses/js-testing" rel="noopener noreferrer" target="_blank"> тесты позеленели</a> (и чтобы тесты в принципе появились :). Можно сказать, что тимлид играет роль той самой уточки, после общения с которой разработчик находит способы решения задачи.</p>
<p>Если обобщить, лидер планирует работу команды на несколько шагов вперёд, отвечает на вопросы «почему сделать» и «как сделать».</p>
<h2 id="heading-2-3">Какую роль играет тимлид в найме и адаптации сотрудников</h2>
<p><strong>Д.Д.: Какова роль тимлида в найме сотрудников? Чем он занимается: рекрутинг, собеседования, онбординг новичков? Если в компании есть HR, как тимлид с ним взаимодействует?</strong></p>
<p>Д.М.: Роль в найме зависит от конкретной компании. В идеале тимлид активно участвует в поиске, отборе и адаптации новичков. Более того, он планирует усиление команды, даёт заказ на поиск новых специалистов, когда понимает, что новички нужны для решения задач.</p>
<p>Если в компании есть HR, он проводит первичную фильтрацию кандидатов. Если эйчара нет, первичный отбор берёт на себя тимлид. Кандидат встречается с тимлидом на втором или даже на первом собеседовании.</p>
<p>Интеграция новичков в команду — прямая обязанность лидера команды. Но тимлид может частично делегировать эту задачу кому-то из опытных сотрудников. В этом случае он следит за процессом и при необходимости подключается.</p>
<p><strong>Д.Д.: Как тимлид планирует работу команды? Планирование происходит сверху (вы говорите, что Джон на этой неделе делает то и это, а Джек это и то) или снизу (Джон и Джек предлагают план, а вы контролируете)?</strong></p>
<p>Д.М.: Иногда тимлид распределяет роли и задачи, хоть это и противоречит scrum. Это происходит, когда такое распределение очевидно и не вызывает значимых конфликтов в коллективе. Но в основном участники команды, включая начинающих разработчиков, сами определяют приоритетные задачи и распределяют роли.</p>
<p><strong>Д.Д.: О контроле: как тимлид контролирует рядовых разработчиков? Выполненные задачи, качество кода, другие аспекты.</strong></p>
<p>Д.М.: Сразу выскажу свою позицию: контроль рабочего стола считаю нонсенсом, деструктивной практикой. Это стресс для сотрудников и иллюзия контроля для руководителей. Такой контроль расслабляет работодателя, а сообразительные люди быстро находят способы его обходить. А программисты — сообразительные люди.</p>
<p>Тимлиду важен результат. То есть сотрудник может сидеть в соцсетях во время обеденного перерыва, если он выполняет поставленные задачи.</p>
<p>Если нет результата, нужно думать. Как я уже отмечал, важную роль в работе тимлида, в том числе с точки зрения контроля разработчиков, играет ежедневный созвон. Предпочитаю созваниваться с видео, это позволяет понять, всё ли в порядке с человеком, как он выглядит.</p>
<p>Негативно отношусь к работе ночью или в выходные. Если человек работает в команде, важно, чтобы он был на связи в рабочее время. И отдыхал в свободное время, это тоже важно.</p>
<p>В исключительных случаях можно идти навстречу сотруднику. Например, если разработчик живёт во Владивостоке, разницу во времени можно и нужно учитывать.</p>
<p>Плохо, когда человек систематически бывает недоступен без предупреждения. Правила хорошего тона — предупреждать о необходимости отлучиться.</p>
<p>Очень важный инструмент контроля — код-ревью. Как отмечалось выше, тимлид — программист. Обычно это специалист уровня senior. Он видит уровень разработчиков во время код-ревью. Это помогает контролировать ситуацию.</p>
<p><strong>Д.Д.: Должен ли тимлид заботиться о росте сотрудников? Например, есть в команде джуниоры. Они должны учиться и прогрессировать. Этот процесс должен идти снизу (от джунов) или сверху (от тимлида)?</strong></p>
<p>Д.М.: Если сотрудник не прогрессирует, виноват тимлид. Это аксиома. Развитие разработчиков — зона прямой ответственности лидера команды. Важно понимать, что необходимо обоюдной желание развиваться. Если у сотрудника такого желания нет, тимлид не поможет.</p>
<h2 id="heading-2-4">Что тимлид хочет от кандидатов на позицию джуниора</h2>
<p><strong>Д.Д.: Вернёмся к найму. Вам нужны разработчики. Какие требования вы предъявляете к кандидатам? Понятно, что это сильно зависит от проекта, но можно попробовать обобщить.</strong></p>
<p>Д.М.: Сначала отвлекусь, чтобы объяснить свою позицию. Я считаю, что реализованные проекты делают человека разработчиком уровня middle. У миддлов есть баланс качеств. С одной стороны, это самостоятельные разработчики. Они могут решать задачи сами. Разработчик уровня junior пока не стал самостоятельной рабочей единицей.</p>
<p>Конечно, руководителю хочется работать с миддлами — людьми, которые уже умеют решать задачи самостоятельно. Но это не всегда возможно по разным причинам.</p>
<p>И о разработчиках уровня senior. Я их определяю так: если человек умнее меня, он senior :)</p>
<p>Теперь о требованиях. В резюме не должно быть частой смены работы, это настораживает. Когда человек адаптируется в команде, компания инвестирует в него. Только спустя несколько недель или месяцев специалист приносит компании реальную пользу. Поэтому работодатель всегда заинтересован в долгосрочном сотрудничестве.</p>
<p>Рекомендация новичкам: не меняйте работу часто. Если устроились в компанию, где вам что-то не нравится, стоит потерпеть и постараться извлечь из ситуации пользу, кейс, который можно будет показывать на следующих собеседованиях.</p>
<p>Резюме должно быть понятным и логичным, но при этом в нём должны быть технические детали.</p>
<p>Если в компании есть HR, он определяет общую адекватность человека и его мотивацию. Если потенциальный новичок проходит первичный отбор, тимлид оценивает его пригодность к работе с реальными задачами. В разных компаниях процесс собеседований может сильно отличаться, но если обобщить, то это будет микс из:</p>
<ul>
<li>беседы на технические темы;</li>
<li>тестового задания;</li>
<li>совместного написание кода (live coding).</li>
</ul>
<p>Несколько лет назад я проводил собеседование и потом просил выполнить тестовое задание. Если у кандидата есть коммиты в open source проект, код из которого он может показать — это облегчает задачу с обеих сторон, и тогда в тестовом задании нет необходимости. Если человек нужен срочно, и на длительный формальный процесс найма нет времени, тогда я просто беседую и пытаюсь понять, какие задачи решал и может решить человек. Как пример золотой середины могу привести пример, как это сделано у нас в Evrone: на собеседовании дают небольшое и интересное задание, которое можно сделать за 15 минут, а уже по нему удобно смотреть, как человек мыслит и как привык писать код.</p>
<p><strong>Д.Д.: Какие хард-скиллы должны быть у специалиста, чтобы он мог всерьёз претендовать на позицию джуниора? Что нужно уметь?</strong></p>
<p>Д.М.: Нужны базовые знания языка и фреймворка, понимание общих принципов DRY и SOLID. Хотя сейчас и принято ругать ООП, но такой подход я считаю несколько инфантильным. На практике знание ООП очень важно. А если добавить к нему понимание функционального программирования, то, наверное, мы говорим уже не о джуниоре, а о состоявшемся и крутом специалисте.</p>
<p>Очень важно уметь и, главное, любить писать тесты. Хорошо, если есть минимальные знания менеджмента. И, особенно для веб-программирования, нужно знать принципы работы баз данных, понимать, как работают индексы. Перечисленного достаточно, чтобы начать работать джуниор разработчиком.</p>
<p><strong>Д.Д.: Аналогичный вопрос по софт-скиллз. Какие нужны софт-скиллы и как их оцениваете?</strong></p>
<p>Д.М.: Человек должен быть адекватным в целом, иметь здравый смысл, не делать фигню. Предполагается, что успешный джун должен понимать и оценивать задачи. Важно, чтобы человек умел задавать вопросы, выбирать приоритеты.</p>
<p>Начинающий разработчик должен уметь выражать свои мысли. Поэтому всем полезно читать книги, в том числе художественную литературу.</p>
<blockquote>
<p>Полезно читать книги, в том числе художественную литературу.</p>
</blockquote>
<p>Важный софт-скилл — умение слушать. Ещё человек должен уметь адекватно конфликтовать и договариваться. Под способностью адекватно конфликтовать подразумевается умение отстаивать свою позицию, аргументированно доказывать что-то другим разработчикам и руководителю.</p>
<p><strong>Д.Д.: Важные вопросы: пол и возраст. Я слышал, что на Западе есть мода не указывать пол и возраст, чтобы не было дискриминации по этим параметрам. И работодатели, и кандидаты к этому пришли. Как у нас обстоит дело? Есть ли шанс у кандидата 30, 35, 45 лет попасть на позицию джуниора? Есть ли красная черта возрастная? Например, в 34 берём человека, а в 34 и 6 месяцев не берём?</strong></p>
<p>Д.М.: Барьеров по полу и возрасту нет. По полу ответ короткий — здесь никаких проблем нет. О возрасте можно порассуждать.</p>
<p>У молодых и возрастных сотрудников есть преимущества и недостатки. Плюсы молодого специалиста: он готов к сверхурочной работе, энергичен. В то же время уже к условным 23 годам у него может быть солидный опыт за плечами. Например, человек с первого или второго курса университета где-то работает, получает опыт в реальном проекте.</p>
<p>Недостаток молодого специалиста — низкая стрессоустойчивость, эмоциональность. С ним приходится аккуратно общаться.</p>
<p>Преимущества возрастных специалистов: у них за плечами есть жизненный и профессиональный опыт. Эти люди стрессоустойчивы, они знают, чего хотят. Возрастные специалисты надежны, обычно они работают в компании долго.</p>
<p>Недостатком можно назвать меньшую по сравнению с молодежью энергичность, отсутствие желания и возможности совершать «подвиги» на работе. Хотя я считаю, что необходимость в подвигах — это всегда неудача менеджера.</p>
<p>И самое главное — у возрастных людей меньше времени остается на учёбу и профессиональное развитие. После работы им нужно провести время с семьей, пообщаться с детьми, а не изучать новый модный JS-фреймворк. Поэтому здесь на первый план выходит эффективный тайм-менеджмент.</p>
<p>Однако всё вышеперечисленное достаточно условно. В любом возрасте человек может работать продуктивно и достигать успехов, главное — наличие желания и воли.</p>
<p><strong>Д.Д.: Практикуете ли вы испытательный срок? Если да, на что обращаете внимание во время испытательного срока новичка?</strong></p>
<p>Д.М.: Испытательный срок — очень важный инструмент. Это как вопрос гигиены, без него нельзя. Во время испытательного периода обычно выявляются нюансы, которые невозможно отследить и понять ни на одном собеседовании. Бывает так, что люди просто не могут работать вместе в одной команде.</p>
<p>Нормальная продолжительность испытательного срока — от месяца до трёх. Простой критерий: если человек приносит команде (то есть бизнесу) пользу, то можно брать взаимную ответственность и договариваться на длительные рабочие отношения.</p>
<p><strong>Д.Д.: Что должен сделать джун, чтобы наверняка не пройти испытательный срок? Здесь не о крайностях типа прогулов или пьяных дебошей на работе, а о рабочих ситуациях. Как вы понимаете, что этот человек не подходит, хоть и старается? И как это понять человеку?</strong></p>
<p>Д.М.: Человек не проходит испытательный срок, если регулярно не выполняет поставленные задачи. Если такая ситуация происходит один раз, это нормально. В крайнем случае передаю задачу другому специалисту. Но если ситуация систематически повторяется, то такой боец пока не готов к длительному сотрудничеству с нами.</p>
<style data-mantine-styles="inline">.__m__-_R_4dderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:80%;}@media(min-width: 36em){.__m__-_R_4dderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xl);--carousel-slide-size:50%;}}</style><div style="--carousel-control-size:calc(2.5rem * var(--mantine-scale));--carousel-controls-offset:var(--mantine-spacing-sm);margin-bottom:var(--mantine-spacing-lg);padding-block:var(--mantine-spacing-sm);background:var(--app-color-surface)" class="m_17884d0f mantine-Carousel-root responsiveClassName" data-orientation="horizontal" data-include-gap-in-size="true"><div class="m_39bc3463 mantine-Carousel-controls" data-orientation="horizontal"><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="previous" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="next" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(-90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button></div><div class="m_a2dae653 mantine-Carousel-viewport" data-type="media"><div class="m_fcd81474 mantine-Carousel-container __m__-_R_4dderddmiub_" data-orientation="horizontal"><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/slakonar-vakansii-i-rezyume"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" loading="lazy" alt="Слаконар: вакансии и резюме"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Слаконар: вакансии и резюме</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Сегодня (18 октября) в 18:30 МСК пройдёт слаконар, посвящённый разбору вакансий и резюме. CEO Hex...</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">18 октября 2019 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/publichnoe-sobesedovanie-junior-python-programmist"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" loading="lazy" alt="Публичное собеседование: Junior Python-программист"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Публичное собеседование: Junior Python-программист</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">!youtube!(MgFH0IkQNMQ)
Сегодня в 19:00 по МСК на youtube-канале Хекслет начнётся публичное соб...</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">7 октября 2019 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/publichnoe-sobesedovanie-php-razrabotchik"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" loading="lazy" alt="Публичное собеседование: PHP-разработчик"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Публичное собеседование: PHP-разработчик</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">!youtube!(PmhdRXq1QBE)
Сегодня в 19:00 по МСК на youtube-канале Хекслет начнётся публичное соб...</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">30 сентября 2019 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div></div></div></div>
<h2 id="heading-2-5">Заключение: об идеальной системе обучения и профессиональном росте</h2>
<p><strong>Д.Д.: По вашему мнению, как выглядит идеальная система обучения программиста? Как и что надо изучать, чтобы стать хорошим специалистом?</strong></p>
<p>Д.М.: Идеальной системы обучения нет. В работе и в обучении важна самостоятельность. Специалист должен понимать, что его код будет поддерживать он сам или другие разработчики. Важно читать книги, например, Фаулера. Не бояться код-ревью, учиться читать чужой код.</p>
<p><strong>Д.Д.: Что нужно делать новичку, чтобы профессионально расти и продвигаться по карьерной лестнице? Стать тимлидом, например? Что учить, как и где работать?</strong></p>
<p>Д.М.: Важно понимать, зачем нужен рост. Позиция тимлида подходит не всем. Если обобщить, разработчик может идти по пути развития хард-скиллз. Тогда он растёт в сторону senior и «архитектора». Второе направление — развитие софт-скиллз. Это развитие в сторону тимлида, менеджера.</p>
<p>Тимлид жертвует программированием в пользу общения. Это экстраверт или интроверт, желающий стать экстравертом. Тимлид отвечает за себя и за того парня. Учитывайте это, когда планируете своё развитие.</p>
<p><strong>Д.Д.: Дмитрий, спасибо за интересную беседу!</strong></p>
<p>Д.М.: Читателям всего хорошего!</p></div><div class=""><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-lg)" class="m_4081bf90 mantine-Group-root"><div class="m_4451eb3a mantine-Center-root" data-inline="true"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:var(--mantine-spacing-xs);color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-user "><path d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0"></path><path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"></path></svg></div><p style="margin-inline-end:var(--mantine-spacing-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Дмитрий Дементий</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">6 лет назад</p></div><div style="align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_5dirddmiub_"><a style="display:inline-flex" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/v-rezyume-ne-dolzhno-byt-chastoy-smeny-raboty-ili-o-trebovaniyah-timlida-k-razrabotchikam-intervyu-s-dmitriem-matveevym-evrone/votes"><div style="--ti-size:var(--ti-size-sm);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:var(--mantine-spacing-xs);color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-thumb-up "><path d="M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3"></path></svg></div></a><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">54</p></div></div></div><div style="background-color:var(--mantine-color-indigo-light);border:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding:var(--mantine-spacing-xl)" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Читайте также:</p><ul style="margin-inline-start:var(--mantine-spacing-lg)" class="m_abbac491 mantine-List-root"><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/slakonar-vakansii-i-rezyume">Слаконар: вакансии и резюме</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/publichnoe-sobesedovanie-junior-python-programmist">Публичное собеседование: Junior Python-программист</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/publichnoe-sobesedovanie-php-razrabotchik">Публичное собеседование: PHP-разработчик</a></span></div></li></ul></div><div style="margin-block:var(--mantine-spacing-xl)" class="m_3eebeb36 mantine-Divider-root" data-orientation="horizontal" role="separator"></div></div><div></div></div><style data-mantine-styles="inline">.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}@media(min-width: 48em){.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:16.666666666666668%;--col-max-width:16.666666666666668%;}}@media(min-width: 62em){.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:33.333333333333336%;--col-max-width:33.333333333333336%;}}</style><div class="m_96bdd299 mantine-Grid-col __m__-_R_lmiub_ mantine-visible-from-md"><div style="background-color:var(--mantine-color-indigo-light);border:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-bottom:var(--mantine-spacing-xl);padding:var(--mantine-spacing-xl);width:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div style="margin-bottom:var(--mantine-spacing-md)" class="m_4451eb3a mantine-Center-root" data-inline="true"><p style="font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Категории</p></div><ul class="m_abbac491 mantine-List-root"><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Мотивация">Мотивация</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Истории успеха">Истории успеха</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Дневник студента">Дневник студента</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Код">Код</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Карьера">Карьера</button></span></div></li></ul></div><div style="justify-content:end;margin-top:0rem;position:sticky;top:calc(5rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlmiub_"><div tabindex="0" style="cursor:pointer"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses_web_development?promo_name=program_category&promo_position=blog_post&promo_creative=card&promo_type=card"><div style="background-color:var(--mantine-color-default);border:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);padding-inline:var(--mantine-spacing-xl);padding-top:var(--mantine-spacing-xl);padding-bottom:var(--mantine-spacing-xs);width:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div class="m_4451eb3a mantine-Center-root" data-inline="true"><p style="font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Курсы по веб-разработке</p></div><img class="m_9e117634 mantine-Image-root" src="/vite/assets/development-BVihs_d5.png"/><p style="margin-bottom:var(--mantine-spacing-xs);text-align:right" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></a></div></div></div></div></div></div></div>
</main>
<footer class="bg-dark fw-light text-light px-3 py-5">
<div class="row small">
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 mb-3">Хекслет</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/about">О нас</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/testimonials">Отзывы</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://b2b.hexlet.io" role="button">Корпоративное обучение</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/blog">Блог</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/qna">Вопросы и ответы</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/glossary">Глоссарий</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://help.hexlet.io" data-target="_blank" role="button">Справка</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" target="_blank" rel="noopener noreferrer" href="/map">Карта сайта</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 fw-normal mb-3">Направления</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_devops">DevOps
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_data_analytics">Аналитика
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_backend_development">Бэкенд
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_programming">Программирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_testing">Тестирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_front_end_dev">Фронтенд
</a></li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Профессии</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/go">Go-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/java">Java-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python">Python-разработчик </a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/data-analytics">Аналитик данных</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/qa-engineer">Инженер по ручному тестированию</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php">РНР-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/frontend">Фронтенд-разработчик</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Навыки</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python-django-developer">Django</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/docker">Docker</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php-laravel-developer">Laravel</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/postman">Postman</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-react-developer">React</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-rest-api">REST API в Node.js</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/spring-boot">Spring Boot</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/typescript">Typescript</a>
</li>
</ul>
</div>
</div>
<hr>
<div class="row">
<div class="col-12 col-sm-4 col-md-2">
<div class="fs-4">
<ul class="list-unstyled d-flex">
<li class="me-3">
<a aria-label="Telegram" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://t.me/hexlet_ru"><span class="bi bi-telegram"></span>
</a></li>
<li>
<a aria-label="Youtube" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://www.youtube.com/user/HexletUniversity"><span class="bi bi-youtube"></span>
</a></li>
</ul>
</div>
<div class="mb-2 d-flex flex-column">
<a class="link-light text-decoration-none" rel="nofollow" href="mailto:support@hexlet.io">support@hexlet.io</a>
<a class="link-light text-decoration-none py-2" target="_blank" href="https://t.me/hexlet_help_bot">t.me/hexlet_help_bot</a>
</div>
<ul class="list-unstyled d-flex">
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://hexlet.io/locale/switch?new_locale=en" data-target="_self" role="button"><span class="my-auto">EN</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 opacity-100 external-link" rel="nofollow" data-href="https://ru.hexlet.io/locale/switch?new_locale=ru" data-target="_self" role="button"><span class="my-auto">RU</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://kz.hexlet.io/locale/switch?new_locale=kz" data-target="_self" role="button"><span class="my-auto">KZ</span>
</span></li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<ul class="list-unstyled fs-4">
<li class="mb-3">
<a class="link-light text-decoration-none" href="tel:8%20800%20100%2022%2047">8 800 100 22 47</a>
<span class="d-block opacity-50 small">бесплатно по РФ</span>
</li>
<li>
<a class="link-light text-decoration-none" href="tel:%2B7%20495%20085%2021%2062">+7 495 085 21 62</a>
<span class="d-block opacity-50 small">бесплатно по Москве</span>
</li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<div class="small mb-3">Образовательные услуги оказываются на основании Л035-01298-77/01989008 от 14.03.2025</div>
<ul class="list-unstyled small">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/legal">Правовая информация</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/offer">Оферта</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/license">Лицензия</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/contacts">Контакты</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-12 col-md-4 small">
<div class="mb-2">
<div>ООО «<a href="/" class="text-decoration-none link-light">Хекслет Рус</a>»</div>
<div>108813 г. Москва, вн.тер.г. поселение Московский,</div>
<div>г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3</div>
<div>ОГРН 1217300010476</div>
<div>ИНН 7325174845</div>
</div>
<hr>
<div>АНО ДПО «<a href="/" class="text-decoration-none link-light">Учебный центр «Хекслет</a>»</div>
<div>119331 г. Москва, вн. тер. г. муниципальный округ</div>
<div>Ломоносовский, пр-кт Вернадского, д. 29</div>
<div>ОГРН 1247700712390</div>
<div>ИНН 7736364948</div>
</div>
</div>
</footer>
<div id="root-assistant-offcanvas"></div>
<script src="/vite/assets/assistant-Bukl1lYy.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-BrRXra1y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/MarkdownBlock-DbyKWoR_.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/shiki-V011pkdv.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-XR8Qr8kR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dist-GCHh59xr.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useIsomorphicEffect-HJ6VK0D3.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-KSp6QbZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/classnames-l6ipYlLR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/debounce-jMQ_Cf4f.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v67327c56f0bb4ef8b305cae61679db8f1769101564043" integrity="sha512-rdcWY47ByXd76cbCFzznIcEaCN71jqkWBBqlwhF1SY7KubdLKZiEGeP7AyieKZlGP9hbY/MhGrwXzJC/HulNyg==" data-cf-beacon='{"version":"2024.11.0","token":"d11015b65d11429ea6b4a2ef37dd7e0b","server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>