Теперь, когда мы знакомы со всеми ролями учебного процесса, инструментами и правилами коммуникациями, поговорим о производстве контента. Наставник формирует контент-план для группы заранее, в идеале — на 1-2 месяца вперед. Вспомним, что активности могут проводиться в самых разных форматах — это позволяет нам подойти к вопросу творчески и сформировать контент-план так, чтобы он был увлекательным для наших студентов. Чтобы мы могли постоянно производить новый контент высокого качества и подавать его в разных форматах, команда Хекслета подготовила ряд рекомендаций и шаблонов.
Выбор темы
Иногда тему можно выбрать просто исходя из запроса студентов или их уровня. Запрос (особенно сколько-нибудь массовый) сам по себе появляется редко, поэтому его нужно «провоцировать»: например, предложить в чате несколько тем, которые могли бы быть интересны студентам. Это может повлечь за собой предметную дискуссию, которая поможет нам понять текущие запросы студентов. Если есть запрос сразу на несколько тем, то приоритетную среди них можно выбрать голосованием в группе. Для этого нужно обратиться к кураторам — они помогут создать такой опрос.
Но может случиться и такое, что запрос от студентов еще не успел оформиться, их уровень неоднороден, а самостоятельное формулирование темы вызывает у них затруднения. В такой ситуации мы можем воспользоваться универсальными темами или выбрать тему по конкретной специфике. Также, темы можно «подсматривать» в готовых активностях других наставников.
Выбор темы всегда связан с уровнем студентов. И этот уровень лучше всего явно обозначать для каждой запланированной активности. Например:
-
Хорошо: Приглашаются студенты, выполняющие второй и третий проект профессии. Новичкам, кто ниже уровнем, может быть сложно, но при желании заходите послушать. Тем, кто уже прошел третий модуль, ничего нового не расскажу, но можете поучаствовать для закрепления темы.
-
Нормально: Будут разобраны темы из третьего модуля профессии, приглашаются все желающие.
-
Плохо: Сегодня расскажу про ООП, всех жду.
Применимость на практике
На длинной дистанции и при большом количестве контента студентам не всегда очевидно, как теория и практика Хекслета сопоставляется с реальной работой. Например, студент может возразить: «Как создание CLI-утилиты в первом проекте поможет мне в работе? Это же прошлый век, сейчас на винде мне никогда не требуется запускать терминал!». Возражение может не быть выражено так явно (или даже не быть выражено вовсе), но, тем не менее, его стоит отработать.
Некоторые темы стоит обозначить, как применимые на практике. Конечно, мы можем сделать так для каждой из тем, но и не стоит искусственно притягивать сюда все подряд. Также, студентам можно напоминать о применимости знаний на практике даже просто в чате. Например:
-
Анонс активности «вебинар по CLI-утилитам»: разберемся, зачем нужны консольные утилиты и как это пригодится нам в реальных проектах.
-
Ответ на вопрос студента: Чтобы ответить на этот вопрос, мне нужно увидеть результат отладочной печати и текст ошибки. Чтобы их хорошо оформить в вопросе, опирайтесь на эту статью. Помните, что на реальной работе развитый навык постановки вопросов поможет вам быстрее находить решения и выглядеть профессионально в глазах коллег.
Некоторые задачи также могут попасться студентам на предстоящих собеседованиях — будет не лишним упомянуть и об этом.
Универсальные темы
Большое количество важных и универсальных тем раскрывается в статьях блога Хекслета. Можно использовать эти публикации, чтобы сформулировать темы для наших собственных активностей. В этих постах уже есть как главные идеи, так и примеры кода. Мы можем расширять их, раскрывать детальнее, адаптировать под запрос наших студентов. Эти статьи также рекомендуются к прочтению при прохождении проектов.
Именование в программировании
Вне зависимости от уровня студента, именование — вечно актуальная тема. Для вдохновения можно опираться на евангелие от Кирилла Мокевнина «Ментальное программирование»:
Как правильно учиться и справляться с ошибками
Мы стараемся не учить людей, а помогать им учиться. Для этого нужно помогать им рефлексировать, делиться с ними развивающей обратной связью и учить справляться с неудачами. Материалы для вдохновения:
Отладочная печать и постановка вопросов
На Хекслете большой акцент делается на освоение отладочной печати «с первых строк», чтобы студенты привыкали читать тесты, отлаживать код и понимать полученный вывод. Студентам мы рекомендуем задавать вопросы только с результатами отладочной печати, чтобы мы могли ему помочь, даже не заглядывая в код. Для этого мы даем студентам прочитать статьи:
Книга месяца
В базе знаний Хекслета есть раздел с рекомендуемыми книгами, которые можно рекомендовать студентам с нашей краткой рецензией и отзывом (конечно, если мы сами ее читали). Также можно выбирать книгу, а через некоторое время (например, через месяц) созвониться со студентами для обсуждения прочитанного. Зачастую у студентов недостаточно времени, чтобы учиться и читать книги, поэтому эта тема должна носить рекомендательный характер, а не быть списком обязательной литературы.
Вместо книг можно рекомендовать хорошие статьи из блога Хекслета, Medium, Habr или других источников. А еще можно писать статьи самостоятельно, чтобы закрыть какой-то типовой страх или непонятную студентам тему. Методисты и редакторы блога помогут нам хорошо ее составить и красиво оформить.
Темы со спецификой
Сюда относятся любые темы, которые касаются конкретного языка программирования, фреймворка, практики на Хекслете. При составлении темы по специфике, нам следует опираться на конкретные идеи, а не абстрактные размытые формулировки. Например:
Плохо → Хорошо:
- Вебинар по React → Вебинар «Хуки в React».
- Слаконар «Как работает PHP» → Слаконар «Как используется FastCGI для работы PHP».
- Q&A-сессия по Django → Q&A-сессия про динамический роутинг в Django «под капотом».
Особенности языка или технологии
Все, что сопряжено с конкретным языком программирования или технологией: docker, асинхронность в языке, рабочие инструменты (gitlab, youtrack, pomodoro timer), приемы и хитрости в языке/технологии.
Разбор типовых ошибок проекта
Если все студенты прошли один и тот же проект, то по типовым ошибкам можно сделать активность с их разбором. Здесь главное выстроить подачу так, чтобы не «проспойлерить» решение тем, кто до этого проекта еще не дошел. Если спойлеры неизбежны, то о них нам нужно предупредить студентов заранее.
Можно взять проблемную задачу из проекта, вынести ее, как самостоятельную и прорешать как бы «в отрыве» от проекта. Например, вместо форматтеров из проекта «Вычислитель отличий» сделать отдельные задачи с похожими форматтерами.
Курсы, испытания и упражнения на Хекслете
Иногда контента на Хекслете может быть недостаточно или по нему возникает много вопросов у студентов. В таких случаях нам следует действовать по следующему алгоритму:
- Сообщить команде Хекслета, что есть проблемы с определенным контентом: рассказать, где и по каким причинам люди застряли в обучении.
- Организовать мероприятие со студентами и помочь им разобраться. Иногда можно даже помочь с решениями, чтобы не возникало простоя в обучении.
При этом важно, чтобы студенты прошли все предыдущие курсы. В противном случае они могут что-то пропустить и начать сразу где-нибудь с курса ООП, имея в багаже менее половины самостоятельных решений. Таким студентам нам нужно рекомендовать сначала пройти все предыдущие курсы и решить задания самостоятельно.
Выбор формата
Итак, с темами мы определились. Что же дальше? А дальше нам осталось только выбрать формат для наших активностей на эти темы. Наставник может выбрать одну тему и подать ее в разных форматах. Например, тема «Отладочная печать» может быть проведена в нескольких форматах. Как это может выглядеть в анонсах студентам:
- Сегодня пройдет вебинар на тему «Отладочная печать», где мы разберемся с подходом на уровне кода, а также познакомимся с инструментом «Дебаггер» на примере VSCode.
Следующая активность:
- В прошлый раз мы на вебинаре познакомились с отладочной печатью, а сегодня я приглашаю вас закрепить теорию практикой на масскодинге. Я буду давать примеры кода, а вы будете через отладочную печать находить в них ошибки.
Следующая активность:
- На масскодинге по отладочной печати мы столкнулись с рекурсией, и тема далась тяжело. Поэтому сегодня вечером я проведу слаконар на тему отладочной печати и рекурсии.
В итоге наш контент-план на месяц будет выглядеть примерно так:
Первый месяц:
- Вебинар «Именование в программировании».
- Слаконар «Как справляться с ошибками и упрощать себе жизнь проще за счет правильной постановки вопросов».
- Q&A-сессия «Чистый код, декларативность и императивность».
- Лайвкодинг «Специфика языка».
Второй месяц:
- Вебинар «Отладочная печать и дебаггеры».
- Слаконар «Книга месяца».
- Публичное собеседование с Пупкиным В. Порешаем задачки на круглые люки, поговорим про чистый код, декларативность и императивность.
- Q&A-сессия «Именование в программировании».
В условиях асинхронных групп, куда новые студенты приходят постоянно, некоторые активности можно повторять каждые 2 месяца — они не потеряют своей актуальности. Это снижает для нас когнитивную нагрузку и позволяет учитывать опыт уже проведенных активностей, чтобы на каждой итерации мы могли выдавать нашим студентам контент все лучшего качества.
База материалов наставников
Этот инструмент уже рассматривался ранее, но вспомним его суть. Весь контент, созданный наставниками, сохраняется в единое пространство. Когда мы хотим провести для студентов активность на заданную тему (или не можем эту тему подобрать), мы заходим в базу, изучаем материалы и берем их за основу для собственных активностей.
Изучение материалов других наставников может вдохновить нас на создание собственной темы, подсказать удачные формулировки мыслей и задать понимание отправной и конечной точек той или иной темы. Может быть и обратное — когда готовый материал не понравился и мы поняли, как делать не следует.
Заключение
Мы рассмотрели список тем, которые наставник может давать студентам на протяжении всего обучения, независимо от их уровня. Благодаря широкому выбору форматов одну и ту же тему можно разбирать несколько раз. Это генерирует большое количество комбинаций и потенциально позволяет распланировать наперед целые месяцы обучения.
Бывают и специфичные темы или запросы от студентов, когда требуется рассказать о чем-то менее универсальном. В таком случае нам важно правильно выделить ключевую мысль и пройтись только по ней.
Независимо от выбранной темы, наставник должен определиться с аудиторией, подготовить контент-план, а также ссылки и презентации заранее — желательно, за неделю до активности. Так мы сможем провести тестовый прогон с методистами и получить обратную связь.
Нам также важно пояснять, как доносимая нами теория соотносится с реальной практикой. В этом нам помогают как акценты на этом аспекте в ходе нашего рассказа (а лучше — примеры кейсов), так и активности вида «публичное собеседование» или «решение задач с собеседований».
Если все же случилось так, что вдохновение иссякло и мы не можем найти тему — это тоже абсолютно нормально, особенно на начальных этапах. Можно написать в общий чат наставников, обозначив нашу программу, средний уровень студентов и те темы, которые мы уже брали для обсуждения. Другие наставники и команда Хекслета ответят в чате и помогут с выбором темы.
<!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 23:05:54 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="CChQ1lC3fYmFknORp_1xC_x4InsvsJhbIrv6RFaXhVjn-ZvhosnQ6TPRVwmr8oF8PHEP0SeHZvmfW2AQBJBiNg";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>Темы активностей | Наставник Хекслета</title>
<meta name="description" content="Темы активностей / Наставник Хекслета: Как наставнику выбрать тему для активностей и при чем тут трудоустройство">
<link rel="canonical" href="https://ru.hexlet.io/courses/tutor-school-hexlet/lessons/activity-themes/theory_unit">
<meta name="robots" content="noarchive">
<meta property="og:title" content="Темы активностей">
<meta property="og:title" content="Наставник Хекслета">
<meta property="og:description" content="Темы активностей / Наставник Хекслета: Как наставнику выбрать тему для активностей и при чем тут трудоустройство">
<meta property="og:url" content="https://ru.hexlet.io/courses/tutor-school-hexlet/lessons/activity-themes/theory_unit">
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="T8MQqXEkB3zKHuBVV8KokxMzcTlkwVWfttXbzwae9HGgEtueg1qqHHxdxM1bzVjk0zpck2z2qz0LNUGbVJkTHw" />
<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">
<div id="app" data-page="{"component":"web/courses/lessons/theory_unit","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-26T23:05:54.839Z","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":"6k-lFLthEY3SMJtpRqK07Eyy7TDhekRnMolp4UXImLEFnm4jSR-87WRzv_FKrUSbjLvAmulNusWPafO1F89_3w","topics":[],"lesson":{"exercise":null,"units":[{"id":4971,"name":"theory","url":"/courses/tutor-school-hexlet/lessons/activity-themes/theory_unit"}],"links":[],"ordered_units":[{"id":4971,"name":"theory","url":"/courses/tutor-school-hexlet/lessons/activity-themes/theory_unit"}],"id":2241,"slug":"activity-themes","state":"approved","name":"Темы активностей","course_order":900,"goal":"Как наставнику выбрать тему для активностей и при чем тут трудоустройство","self_study":null,"theory_video_provider":null,"theory_video_uid":null,"theory":"Теперь, когда мы знакомы со всеми ролями учебного процесса, инструментами и правилами коммуникациями, поговорим о производстве контента. Наставник формирует контент-план для группы заранее, в идеале — на 1-2 месяца вперед. Вспомним, что активности могут проводиться в самых разных форматах — это позволяет нам подойти к вопросу творчески и сформировать контент-план так, чтобы он был увлекательным для наших студентов. Чтобы мы могли постоянно производить новый контент высокого качества и подавать его в разных форматах, команда Хекслета подготовила ряд рекомендаций и шаблонов.\n\n## Выбор темы\n\nИногда тему можно выбрать просто исходя из запроса студентов или их уровня. Запрос (особенно сколько-нибудь массовый) сам по себе появляется редко, поэтому его нужно «провоцировать»: например, предложить в чате несколько тем, которые могли бы быть интересны студентам. Это может повлечь за собой предметную дискуссию, которая поможет нам понять текущие запросы студентов. Если есть запрос сразу на несколько тем, то приоритетную среди них можно выбрать голосованием в группе. Для этого нужно обратиться к кураторам — они помогут создать такой опрос.\n\nНо может случиться и такое, что запрос от студентов еще не успел оформиться, их уровень неоднороден, а самостоятельное формулирование темы вызывает у них затруднения. В такой ситуации мы можем воспользоваться универсальными темами или выбрать тему по конкретной специфике. Также, темы можно «подсматривать» в готовых активностях других наставников.\n\nВыбор темы всегда связан с уровнем студентов. И этот уровень лучше всего явно обозначать для каждой запланированной активности. Например:\n* **Хорошо**: Приглашаются студенты, выполняющие второй и третий проект профессии. Новичкам, кто ниже уровнем, может быть сложно, но при желании заходите послушать. Тем, кто уже прошел третий модуль, ничего нового не расскажу, но можете поучаствовать для закрепления темы.\n* **Нормально**: Будут разобраны темы из третьего модуля профессии, приглашаются все желающие.\n* **Плохо**: Сегодня расскажу про ООП, всех жду.\n\n## Применимость на практике\n\nНа длинной дистанции и при большом количестве контента студентам не всегда очевидно, как теория и практика Хекслета сопоставляется с реальной работой. Например, студент может возразить: «Как создание CLI-утилиты в первом проекте поможет мне в работе? Это же прошлый век, сейчас на винде мне никогда не требуется запускать терминал!». Возражение может не быть выражено так явно (или даже не быть выражено вовсе), но, тем не менее, его стоит отработать.\n\nНекоторые темы стоит обозначить, как применимые на практике. Конечно, мы можем сделать так для каждой из тем, но и не стоит искусственно притягивать сюда все подряд. Также, студентам можно напоминать о применимости знаний на практике даже просто в чате. Например:\n* **Анонс активности** «вебинар по CLI-утилитам»: разберемся, зачем нужны консольные утилиты и как это пригодится нам в реальных проектах.\n* **Ответ на вопрос студента**: Чтобы ответить на этот вопрос, мне нужно увидеть результат отладочной печати и текст ошибки. Чтобы их хорошо оформить в вопросе, опирайтесь на [эту статью](https://help.hexlet.io/learning-support/kak-pravilno-zadavat-voprosy). Помните, что на реальной работе развитый навык постановки вопросов поможет вам быстрее находить решения и выглядеть профессионально в глазах коллег.\n\nНекоторые задачи также могут попасться студентам на предстоящих собеседованиях — будет не лишним упомянуть и об этом.\n\n## Универсальные темы\n\nБольшое количество важных и универсальных тем раскрывается в статьях блога Хекслета. Можно использовать эти публикации, чтобы сформулировать темы для наших собственных активностей. В этих постах уже есть как главные идеи, так и примеры кода. Мы можем расширять их, раскрывать детальнее, адаптировать под запрос наших студентов. Эти статьи также рекомендуются к прочтению при прохождении проектов.\n\n\n### Именование в программировании\n\nВне зависимости от уровня студента, именование — вечно актуальная тема. Для вдохновения можно опираться на евангелие от Кирилла Мокевнина «Ментальное программирование»:\n* [Ментальное программирование](https://www.youtube.com/watch?v=eEEHWQNuCLQ)\n* [Ментальное программирование 2](https://www.youtube.com/watch?v=vkUTX1hruF8)\n\n### Как правильно учиться и справляться с ошибками\n\nМы стараемся не учить людей, а помогать им учиться. Для этого нужно помогать им рефлексировать, делиться с ними развивающей обратной связью и учить справляться с неудачами. Материалы для вдохновения:\n* Вебинар [«Как самостоятельно учиться?»](https://www.youtube.com/watch?v=dCYZppVgGww)\n* Статья [«Как учиться и справляться с негативными мыслями?»](https://guides.hexlet.io/ru/learning)\n* Статья [«Ловушки обучения»](https://ru.hexlet.io/blog/posts/traps-learning)\n* Статья [«Сложные простые задачи по программированию»](https://ru.hexlet.io/blog/posts/slozhnye-prostye-zadachi-po-programmirovaniyu)\n\n### Отладочная печать и постановка вопросов\n\nНа Хекслете большой акцент делается на освоение отладочной печати «с первых строк», чтобы студенты привыкали читать тесты, отлаживать код и понимать полученный вывод. Студентам мы рекомендуем задавать вопросы только с результатами отладочной печати, чтобы мы могли ему помочь, даже не заглядывая в код. Для этого мы даем студентам прочитать статьи:\n* [Отладочная печать](https://help.hexlet.io/code-and-test-errors/kak-naiti-oshibki-v-kode)\n* [Как правильно задавать вопросы](https://help.hexlet.io/learning-support/kak-pravilno-zadavat-voprosy)\n* [Темы из цикла статей «Совершенный код»](https://www.google.com/search?q=site:https://ru.hexlet.io/blog/posts%20%22%D0%A1%D0%BE%D0%B2%D0%B5%D1%80%D1%88%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9%20%D0%BA%D0%BE%D0%B4:%22)\n\n### Книга месяца\n\nВ базе знаний Хекслета есть раздел с [рекомендуемыми книгами](https://ru.hexlet.io/pages/recommended-books), которые можно рекомендовать студентам с нашей краткой рецензией и отзывом (конечно, если мы сами ее читали). Также можно выбирать книгу, а через некоторое время (например, через месяц) созвониться со студентами для обсуждения прочитанного. Зачастую у студентов недостаточно времени, чтобы учиться и читать книги, поэтому эта тема должна носить рекомендательный характер, а не быть списком обязательной литературы.\n\nВместо книг можно рекомендовать хорошие статьи из блога Хекслета, Medium, Habr или других источников. А еще можно писать статьи самостоятельно, чтобы закрыть какой-то типовой страх или непонятную студентам тему. Методисты и редакторы блога помогут нам хорошо ее составить и красиво оформить.\n\n\n## Темы со спецификой\n\nСюда относятся любые темы, которые касаются конкретного языка программирования, фреймворка, практики на Хекслете. При составлении темы по специфике, нам следует опираться на конкретные идеи, а не абстрактные размытые формулировки. Например:\n\nПлохо → Хорошо:\n* Вебинар по React → Вебинар «Хуки в React».\n* Слаконар «Как работает PHP» → Слаконар «Как используется FastCGI для работы PHP».\n* Q&A-сессия по Django → Q&A-сессия про динамический роутинг в Django «под капотом».\n\n### Особенности языка или технологии\n\nВсе, что сопряжено с конкретным языком программирования или технологией: docker, асинхронность в языке, рабочие инструменты (gitlab, youtrack, pomodoro timer), приемы и хитрости в языке/технологии.\n\n### Разбор типовых ошибок проекта\n\nЕсли все студенты прошли один и тот же проект, то по типовым ошибкам можно сделать активность с их разбором. Здесь главное выстроить подачу так, чтобы не «проспойлерить» решение тем, кто до этого проекта еще не дошел. Если спойлеры неизбежны, то о них нам нужно предупредить студентов заранее.\n\nМожно взять проблемную задачу из проекта, вынести ее, как самостоятельную и прорешать как бы «в отрыве» от проекта. Например, вместо форматтеров из проекта «Вычислитель отличий» сделать отдельные задачи с похожими форматтерами.\n\n### Курсы, испытания и упражнения на Хекслете\n\nИногда контента на Хекслете может быть недостаточно или по нему возникает много вопросов у студентов. В таких случаях нам следует действовать по следующему алгоритму:\n1. Сообщить команде Хекслета, что есть проблемы с определенным контентом: рассказать, где и по каким причинам люди застряли в обучении.\n2. Организовать мероприятие со студентами и помочь им разобраться. Иногда можно даже помочь с решениями, чтобы не возникало простоя в обучении.\n\nПри этом важно, чтобы студенты прошли все предыдущие курсы. В противном случае они могут что-то пропустить и начать сразу где-нибудь с курса ООП, имея в багаже менее половины самостоятельных решений. Таким студентам нам нужно рекомендовать сначала пройти все предыдущие курсы и решить задания самостоятельно.\n\n\n## Выбор формата\n\nИтак, с темами мы определились. Что же дальше? А дальше нам осталось только выбрать формат для наших активностей на эти темы. Наставник может выбрать одну тему и подать ее в разных форматах. Например, тема «Отладочная печать» может быть проведена в нескольких форматах. Как это может выглядеть в анонсах студентам:\n* Сегодня пройдет **вебинар** на тему «Отладочная печать», где мы разберемся с подходом на уровне кода, а также познакомимся с инструментом «Дебаггер» на примере VSCode.\n\nСледующая активность:\n* В прошлый раз мы на вебинаре познакомились с отладочной печатью, а сегодня я приглашаю вас закрепить теорию практикой на **масскодинге**. Я буду давать примеры кода, а вы будете через отладочную печать находить в них ошибки.\n\nСледующая активность:\n* На масскодинге по отладочной печати мы столкнулись с рекурсией, и тема далась тяжело. Поэтому сегодня вечером я проведу **слаконар** на тему отладочной печати и рекурсии.\n\nВ итоге наш контент-план на месяц будет выглядеть примерно так:\n\nПервый месяц:\n* Вебинар «Именование в программировании».\n* Слаконар «Как справляться с ошибками и упрощать себе жизнь проще за счет правильной постановки вопросов».\n* Q&A-сессия «Чистый код, декларативность и императивность».\n* Лайвкодинг «Специфика языка».\n\nВторой месяц:\n* Вебинар «Отладочная печать и дебаггеры».\n* Слаконар «Книга месяца».\n* Публичное собеседование с Пупкиным В. Порешаем задачки на круглые люки, поговорим про чистый код, декларативность и императивность.\n* Q&A-сессия «Именование в программировании».\n\nВ условиях асинхронных групп, куда новые студенты приходят постоянно, некоторые активности можно повторять каждые 2 месяца — они не потеряют своей актуальности. Это снижает для нас когнитивную нагрузку и позволяет учитывать опыт уже проведенных активностей, чтобы на каждой итерации мы могли выдавать нашим студентам контент все лучшего качества.\n\n## База материалов наставников\n\nЭтот инструмент уже рассматривался ранее, но вспомним его суть. Весь контент, созданный наставниками, сохраняется в единое пространство. Когда мы хотим провести для студентов активность на заданную тему (или не можем эту тему подобрать), мы заходим в базу, изучаем материалы и берем их за основу для собственных активностей.\n\nИзучение материалов других наставников может вдохновить нас на создание собственной темы, подсказать удачные формулировки мыслей и задать понимание отправной и конечной точек той или иной темы. Может быть и обратное — когда готовый материал не понравился и мы поняли, как делать не следует.\n\n## Заключение\n\nМы рассмотрели список тем, которые наставник может давать студентам на протяжении всего обучения, независимо от их уровня. Благодаря широкому выбору форматов одну и ту же тему можно разбирать несколько раз. Это генерирует большое количество комбинаций и потенциально позволяет распланировать наперед целые месяцы обучения.\n\nБывают и специфичные темы или запросы от студентов, когда требуется рассказать о чем-то менее универсальном. В таком случае нам важно правильно выделить ключевую мысль и пройтись только по ней.\n\nНезависимо от выбранной темы, наставник должен определиться с аудиторией, подготовить контент-план, а также ссылки и презентации заранее — желательно, за неделю до активности. Так мы сможем провести тестовый прогон с методистами и получить обратную связь.\n\nНам также важно пояснять, как доносимая нами теория соотносится с реальной практикой. В этом нам помогают как акценты на этом аспекте в ходе нашего рассказа (а лучше — примеры кейсов), так и активности вида «публичное собеседование» или «решение задач с собеседований».\n\nЕсли все же случилось так, что вдохновение иссякло и мы не можем найти тему — это тоже абсолютно нормально, особенно на начальных этапах. Можно написать в общий чат наставников, обозначив нашу программу, средний уровень студентов и те темы, которые мы уже брали для обсуждения. Другие наставники и команда Хекслета ответят в чате и помогут с выбором темы.\n"},"lessonMember":null,"courseMember":null,"course":{"start_lesson":{"exercise":null,"units":[{"id":4963,"name":"theory","url":"/courses/tutor-school-hexlet/lessons/intro/theory_unit"}],"links":[],"ordered_units":[{"id":4963,"name":"theory","url":"/courses/tutor-school-hexlet/lessons/intro/theory_unit"}],"id":2233,"slug":"intro","state":"approved","name":"Введение","course_order":100,"goal":"Познакомимся с курсом и целями обучения","self_study":null,"theory_video_provider":null,"theory_video_uid":null,"theory":"Добро пожаловать в школу наставников Хекслета. Этот курс будет первым шагом на пути к новым знаниям о коммуникациях, обучении и создании контента. По результатам обучения в школе наставников мы подготовимся к работе тимлида, прокачаем soft-skills, научимся доносить информацию интересно и помогать людям преодолевать сложности в обучении. Завершив этот курс, мы можем закрепить теорию практикой, [став наставником на Хекслете](https://www.notion.so/hexlet/8eed0c8e28e8407d8e10d1dca0214198).\n\nНаставники играют важную роль в обучении любым новым навыкам. Например, на новой работе нам могут дать в наставники опытного сотрудника, чтобы он рассказал о рабочих процессах, коллегах, технике безопасности и непосредственно о нашей трудовой деятельности. Это помогает нам быстрее адаптироваться в коллективе, структурировать информацию и в конечном итоге — быстрее перейти из состояния новичка в состояние полноценного сотрудника. Диапазон ответственности наставника может быть достаточно широким — от краткой справки до полноценного обучения с нуля.\n\nДля разных сотрудников один и тот же наставник может оказывать разный уровень поддержки. У каждого свой уровень hard- и soft-скиллов, свой темп усвоения информации, своя степень вовлечения в новые процессы. Многое здесь зависит и от самого наставника — если наставничать поставили человека без опыта, то даже максимальная отдача и вовлеченность не сильно помогут результату.\n\nЧтобы стать хорошим наставником, недостаточно просто быть экспертом в своей теме. Нужно уметь «программировать» процесс обучения, отрабатывать сомнения и страхи студента, помогать преодолевать сложности и в целом доводить студента до желаемой цели так, чтобы оставить ему багаж необходимых теоретических знаний и практических навыков.\n\nВ рамках этого курса мы познакомимся с наставничеством на Хекслете. Мы будем учитывать специфику конкретной платформы и задач:\n1. Узнаем, как устроен Хекслет и как организован процесс обучения на нем\n2. Разберемся с ролью наставника, его правами и обязанностями\n3. Научимся взаимодействовать со студентами в зависимости от их уровня и ситуации в их учебном процессе\n4. Познакомимся с другими участниками учебного процесса\n5. Узнаем как сделать процесс обучения эффективнее и интереснее\n\nЭтот курс будет полезен не только наставникам, но и студентам. Он поможет понять, как будет поступать наставник в той или иной ситуации, а как — ни в коем случае не поступит. Какие ситуации являются для студента нормальными, а какие требуют помощи от наставника или сотрудников Хекслета. В конечном счете все наставники — это студенты Хекслета. Даже если сегодня наставничество кажется чем-то очень далеким, то вовсе не факт, что в будущем ничего не поменяется.\n"},"id":250,"slug":"tutor-school-hexlet","challenges_count":0,"name":"Наставник Хекслета","allow_indexing":true,"state":"approved","course_state":"finished","pricing_type":"free","description":"На этом курсе мы разберем, какими знаниями и инструментами необходимо владеть разработчику, чтобы стать успешным тимлидом, уверенно выступать на конференциях и становиться наставником для других людей. Вы узнаете, как делать хорошие ревью, создавать качественный контент, работать с мотивацией студентов и выстраивать эффективные коммуникации. Курс подойдет для действующих разработчиков, которые хотят перейти на новый уровень развития в своей карьере.","kind":"additional","updated_at":"2026-01-20T11:44:57.583Z","language":"other","duration_cache":8100,"skills":["Выстраивать процесс обучения","Создавать полезный и интересный контент","Объяснять сложные вещи простыми словами","Работать с мотивацией студентов","Организовывать людей для совместного решения задач"],"keywords":[],"lessons_count":9,"cover":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NzIzMSwicHVyIjoiYmxvYl9pZCJ9fQ==--5ce48cb2b7fd0d8203735d6d855aafc5f55996f5/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fZmlsbCI6WzYwMCw0MDBdfSwicHVyIjoidmFyaWF0aW9uIn19--6067466c2912ca31a17eddee04b8cf2a38c6ad17/image.png"},"recommendedLandings":[],"lessonMemberUnit":null,"accessToLearnUnitExists":true,"accessToCourseExists":true},"url":"/courses/tutor-school-hexlet/lessons/activity-themes/theory_unit","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><div style="position:absolute;top:0rem" class=""></div><div style="max-width:var(--container-size-xl);height:100%;min-height:0rem" class=""><style data-mantine-styles="inline">.__m__-_R_5ub_{--grid-gutter:0rem;}</style><div style="height:100%;min-height:0rem" class="m_410352e9 mantine-Grid-root __m__-_R_5ub_"><div class="m_dee7bd2f mantine-Grid-inner" style="height:100%"><style data-mantine-styles="inline">.__m__-_R_rdub_{--col-flex-grow:auto;--col-flex-basis:91.66666666666667%;--col-max-width:91.66666666666667%;}@media(min-width: 48em){.__m__-_R_rdub_{--col-flex-grow:auto;--col-flex-basis:83.33333333333334%;--col-max-width:83.33333333333334%;}}</style><div style="min-width:0rem;height:100%;min-height:0rem;display:flex" class="m_96bdd299 mantine-Grid-col __m__-_R_rdub_"><style data-mantine-styles="inline">.__m__-_R_6qrdub_{margin-top:0rem;padding-inline:var(--mantine-spacing-xs);width:100%;}@media(min-width: 48em){.__m__-_R_6qrdub_{margin-top:var(--mantine-spacing-xl);width:80%;}}@media(min-width: 62em){.__m__-_R_6qrdub_{padding-inline:var(--mantine-spacing-xl);}}</style><div style="margin-inline:auto;max-width:var(--mantine-breakpoint-xl)" class="__m__-_R_6qrdub_"><div style="color:var(--mantine-color-dimmed)" 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:calc(0.125rem * var(--mantine-scale));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-lock "><path d="M5 13a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-6"></path><path d="M11 16a1 1 0 1 0 2 0a1 1 0 0 0 -2 0"></path><path d="M8 11v-4a4 4 0 1 1 8 0v4"></path></svg></div><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Наставник Хекслета</p></div><h1 style="--title-fw:var(--mantine-h1-font-weight);--title-lh:var(--mantine-h1-line-height);--title-fz:var(--mantine-h1-font-size);margin-bottom:var(--mantine-spacing-xl)" class="m_8a5d1357 mantine-Title-root" data-order="1">Теория: Темы активностей</h1><script type="application/ld+json">{"@context":"https://schema.org","@type":"LearningResource","name":"Темы активностей","inLanguage":"ru","isPartOf":{"@type":"LearningResource","name":"Наставник Хекслета"},"isAccessibleForFree":"False","hasPart":{"@type":"WebPageElement","isAccessibleForFree":"False","cssSelector":".paywalled"}}</script><div class=""><div style="--alert-color:var(--mantine-color-indigo-light-color);margin-bottom:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-lg)" class="m_66836ed3 mantine-Alert-root" id="mantine-_R_remqrdub_" role="alert" aria-describedby="mantine-_R_remqrdub_-body" aria-labelledby="mantine-_R_remqrdub_-title"><div class="m_a5d60502 mantine-Alert-wrapper"><div class="m_667f2a6a mantine-Alert-icon"><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-rocket "><path d="M4 13a8 8 0 0 1 7 7a6 6 0 0 0 3 -5a9 9 0 0 0 6 -8a3 3 0 0 0 -3 -3a9 9 0 0 0 -8 6a6 6 0 0 0 -5 3"></path><path d="M7 14a6 6 0 0 0 -3 6a6 6 0 0 0 6 -3"></path><path d="M14 9a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></div><div class="m_667c2793 mantine-Alert-body"><div class="m_6a03f287 mantine-Alert-title"><span id="mantine-_R_remqrdub_-title" class="m_698f4f23 mantine-Alert-label">Полный доступ к материалам</span></div><div id="mantine-_R_remqrdub_-body" class="m_7fa78076 mantine-Alert-message"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Зарегистрируйтесь и получите доступ к этому и десяткам других курсов</p><a style="--button-height:var(--button-height-xs);--button-padding-x:var(--button-padding-x-xs);--button-fz:var(--mantine-font-size-xs);--button-bg:linear-gradient(45deg, var(--mantine-color-blue-filled) 0%, var(--mantine-color-cyan-filled) 100%);--button-hover:linear-gradient(45deg, var(--mantine-color-blue-filled) 0%, var(--mantine-color-cyan-filled) 100%);--button-color:var(--mantine-color-white);--button-bd:none" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="gradient" data-size="xs" href="/u/new"><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">Зарегистрироваться</span></span></a></div></div></div></div></div><div class="paywalled m_d08caa0 mantine-Typography-root"><p>Теперь, когда мы знакомы со всеми ролями учебного процесса, инструментами и правилами коммуникациями, поговорим о производстве контента. Наставник формирует контент-план для группы заранее, в идеале — на 1-2 месяца вперед. Вспомним, что активности могут проводиться в самых разных форматах — это позволяет нам подойти к вопросу творчески и сформировать контент-план так, чтобы он был увлекательным для наших студентов. Чтобы мы могли постоянно производить новый контент высокого качества и подавать его в разных форматах, команда Хекслета подготовила ряд рекомендаций и шаблонов.</p>
<h2 id="heading-2-1">Выбор темы</h2>
<p>Иногда тему можно выбрать просто исходя из запроса студентов или их уровня. Запрос (особенно сколько-нибудь массовый) сам по себе появляется редко, поэтому его нужно «провоцировать»: например, предложить в чате несколько тем, которые могли бы быть интересны студентам. Это может повлечь за собой предметную дискуссию, которая поможет нам понять текущие запросы студентов. Если есть запрос сразу на несколько тем, то приоритетную среди них можно выбрать голосованием в группе. Для этого нужно обратиться к кураторам — они помогут создать такой опрос.</p>
<p>Но может случиться и такое, что запрос от студентов еще не успел оформиться, их уровень неоднороден, а самостоятельное формулирование темы вызывает у них затруднения. В такой ситуации мы можем воспользоваться универсальными темами или выбрать тему по конкретной специфике. Также, темы можно «подсматривать» в готовых активностях других наставников.</p>
<p>Выбор темы всегда связан с уровнем студентов. И этот уровень лучше всего явно обозначать для каждой запланированной активности. Например:</p>
<ul>
<li><strong>Хорошо</strong>: Приглашаются студенты, выполняющие второй и третий проект профессии. Новичкам, кто ниже уровнем, может быть сложно, но при желании заходите послушать. Тем, кто уже прошел третий модуль, ничего нового не расскажу, но можете поучаствовать для закрепления темы.</li>
<li><strong>Нормально</strong>: Будут разобраны темы из третьего модуля профессии, приглашаются все желающие.</li>
<li><strong>Плохо</strong>: Сегодня расскажу про ООП, всех жду.</li>
</ul>
<h2 id="heading-2-2">Применимость на практике</h2>
<p>На длинной дистанции и при большом количестве контента студентам не всегда очевидно, как теория и практика Хекслета сопоставляется с реальной работой. Например, студент может возразить: «Как создание CLI-утилиты в первом проекте поможет мне в работе? Это же прошлый век, сейчас на винде мне никогда не требуется запускать терминал!». Возражение может не быть выражено так явно (или даже не быть выражено вовсе), но, тем не менее, его стоит отработать.</p>
<p>Некоторые темы стоит обозначить, как применимые на практике. Конечно, мы можем сделать так для каждой из тем, но и не стоит искусственно притягивать сюда все подряд. Также, студентам можно напоминать о применимости знаний на практике даже просто в чате. Например:</p>
<ul>
<li><strong>Анонс активности</strong> «вебинар по CLI-утилитам»: разберемся, зачем нужны консольные утилиты и как это пригодится нам в реальных проектах.</li>
<li><strong>Ответ на вопрос студента</strong>: Чтобы ответить на этот вопрос, мне нужно увидеть результат отладочной печати и текст ошибки. Чтобы их хорошо оформить в вопросе, опирайтесь на <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://help.hexlet.io/learning-support/kak-pravilno-zadavat-voprosy" rel="noopener noreferrer" target="_blank">эту статью</a>. Помните, что на реальной работе развитый навык постановки вопросов поможет вам быстрее находить решения и выглядеть профессионально в глазах коллег.</li>
</ul>
<p>Некоторые задачи также могут попасться студентам на предстоящих собеседованиях — будет не лишним упомянуть и об этом.</p>
<h2 id="heading-2-3">Универсальные темы</h2>
<p>Большое количество важных и универсальных тем раскрывается в статьях блога Хекслета. Можно использовать эти публикации, чтобы сформулировать темы для наших собственных активностей. В этих постах уже есть как главные идеи, так и примеры кода. Мы можем расширять их, раскрывать детальнее, адаптировать под запрос наших студентов. Эти статьи также рекомендуются к прочтению при прохождении проектов.</p>
<h3 id="heading-3-4">Именование в программировании</h3>
<p>Вне зависимости от уровня студента, именование — вечно актуальная тема. Для вдохновения можно опираться на евангелие от Кирилла Мокевнина «Ментальное программирование»:</p>
<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="https://www.youtube.com/watch?v=eEEHWQNuCLQ" rel="noopener noreferrer" target="_blank">Ментальное программирование</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="https://www.youtube.com/watch?v=vkUTX1hruF8" rel="noopener noreferrer" target="_blank">Ментальное программирование 2</a></li>
</ul>
<h3 id="heading-3-5">Как правильно учиться и справляться с ошибками</h3>
<p>Мы стараемся не учить людей, а помогать им учиться. Для этого нужно помогать им рефлексировать, делиться с ними развивающей обратной связью и учить справляться с неудачами. Материалы для вдохновения:</p>
<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="https://www.youtube.com/watch?v=dCYZppVgGww" rel="noopener noreferrer" target="_blank">«Как самостоятельно учиться?»</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="https://guides.hexlet.io/ru/learning" rel="noopener noreferrer" target="_blank">«Как учиться и справляться с негативными мыслями?»</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="https://ru.hexlet.io/blog/posts/traps-learning" rel="noopener noreferrer" target="_blank">«Ловушки обучения»</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="https://ru.hexlet.io/blog/posts/slozhnye-prostye-zadachi-po-programmirovaniyu" rel="noopener noreferrer" target="_blank">«Сложные простые задачи по программированию»</a></li>
</ul>
<h3 id="heading-3-6">Отладочная печать и постановка вопросов</h3>
<p>На Хекслете большой акцент делается на освоение отладочной печати «с первых строк», чтобы студенты привыкали читать тесты, отлаживать код и понимать полученный вывод. Студентам мы рекомендуем задавать вопросы только с результатами отладочной печати, чтобы мы могли ему помочь, даже не заглядывая в код. Для этого мы даем студентам прочитать статьи:</p>
<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="https://help.hexlet.io/code-and-test-errors/kak-naiti-oshibki-v-kode" rel="noopener noreferrer" target="_blank">Отладочная печать</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="https://help.hexlet.io/learning-support/kak-pravilno-zadavat-voprosy" rel="noopener noreferrer" target="_blank">Как правильно задавать вопросы</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="https://www.google.com/search?q=site:https://ru.hexlet.io/blog/posts%20%22%D0%A1%D0%BE%D0%B2%D0%B5%D1%80%D1%88%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9%20%D0%BA%D0%BE%D0%B4:%22" rel="noopener noreferrer" target="_blank">Темы из цикла статей «Совершенный код»</a></li>
</ul>
<h3 id="heading-3-7">Книга месяца</h3>
<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/pages/recommended-books" rel="noopener noreferrer" target="_blank">рекомендуемыми книгами</a>, которые можно рекомендовать студентам с нашей краткой рецензией и отзывом (конечно, если мы сами ее читали). Также можно выбирать книгу, а через некоторое время (например, через месяц) созвониться со студентами для обсуждения прочитанного. Зачастую у студентов недостаточно времени, чтобы учиться и читать книги, поэтому эта тема должна носить рекомендательный характер, а не быть списком обязательной литературы.</p>
<p>Вместо книг можно рекомендовать хорошие статьи из блога Хекслета, Medium, Habr или других источников. А еще можно писать статьи самостоятельно, чтобы закрыть какой-то типовой страх или непонятную студентам тему. Методисты и редакторы блога помогут нам хорошо ее составить и красиво оформить.</p>
<h2 id="heading-2-8">Темы со спецификой</h2>
<p>Сюда относятся любые темы, которые касаются конкретного языка программирования, фреймворка, практики на Хекслете. При составлении темы по специфике, нам следует опираться на конкретные идеи, а не абстрактные размытые формулировки. Например:</p>
<p>Плохо → Хорошо:</p>
<ul>
<li>Вебинар по React → Вебинар «Хуки в React».</li>
<li>Слаконар «Как работает PHP» → Слаконар «Как используется FastCGI для работы PHP».</li>
<li>Q&A-сессия по Django → Q&A-сессия про динамический роутинг в Django «под капотом».</li>
</ul>
<h3 id="heading-3-9">Особенности языка или технологии</h3>
<p>Все, что сопряжено с конкретным языком программирования или технологией: docker, асинхронность в языке, рабочие инструменты (gitlab, youtrack, pomodoro timer), приемы и хитрости в языке/технологии.</p>
<h3 id="heading-3-10">Разбор типовых ошибок проекта</h3>
<p>Если все студенты прошли один и тот же проект, то по типовым ошибкам можно сделать активность с их разбором. Здесь главное выстроить подачу так, чтобы не «проспойлерить» решение тем, кто до этого проекта еще не дошел. Если спойлеры неизбежны, то о них нам нужно предупредить студентов заранее.</p>
<p>Можно взять проблемную задачу из проекта, вынести ее, как самостоятельную и прорешать как бы «в отрыве» от проекта. Например, вместо форматтеров из проекта «Вычислитель отличий» сделать отдельные задачи с похожими форматтерами.</p>
<h3 id="heading-3-11">Курсы, испытания и упражнения на Хекслете</h3>
<p>Иногда контента на Хекслете может быть недостаточно или по нему возникает много вопросов у студентов. В таких случаях нам следует действовать по следующему алгоритму:</p>
<ol>
<li>Сообщить команде Хекслета, что есть проблемы с определенным контентом: рассказать, где и по каким причинам люди застряли в обучении.</li>
<li>Организовать мероприятие со студентами и помочь им разобраться. Иногда можно даже помочь с решениями, чтобы не возникало простоя в обучении.</li>
</ol>
<p>При этом важно, чтобы студенты прошли все предыдущие курсы. В противном случае они могут что-то пропустить и начать сразу где-нибудь с курса ООП, имея в багаже менее половины самостоятельных решений. Таким студентам нам нужно рекомендовать сначала пройти все предыдущие курсы и решить задания самостоятельно.</p>
<h2 id="heading-2-12">Выбор формата</h2>
<p>Итак, с темами мы определились. Что же дальше? А дальше нам осталось только выбрать формат для наших активностей на эти темы. Наставник может выбрать одну тему и подать ее в разных форматах. Например, тема «Отладочная печать» может быть проведена в нескольких форматах. Как это может выглядеть в анонсах студентам:</p>
<ul>
<li>Сегодня пройдет <strong>вебинар</strong> на тему «Отладочная печать», где мы разберемся с подходом на уровне кода, а также познакомимся с инструментом «Дебаггер» на примере VSCode.</li>
</ul>
<p>Следующая активность:</p>
<ul>
<li>В прошлый раз мы на вебинаре познакомились с отладочной печатью, а сегодня я приглашаю вас закрепить теорию практикой на <strong>масскодинге</strong>. Я буду давать примеры кода, а вы будете через отладочную печать находить в них ошибки.</li>
</ul>
<p>Следующая активность:</p>
<ul>
<li>На масскодинге по отладочной печати мы столкнулись с рекурсией, и тема далась тяжело. Поэтому сегодня вечером я проведу <strong>слаконар</strong> на тему отладочной печати и рекурсии.</li>
</ul>
<p>В итоге наш контент-план на месяц будет выглядеть примерно так:</p>
<p>Первый месяц:</p>
<ul>
<li>Вебинар «Именование в программировании».</li>
<li>Слаконар «Как справляться с ошибками и упрощать себе жизнь проще за счет правильной постановки вопросов».</li>
<li>Q&A-сессия «Чистый код, декларативность и императивность».</li>
<li>Лайвкодинг «Специфика языка».</li>
</ul>
<p>Второй месяц:</p>
<ul>
<li>Вебинар «Отладочная печать и дебаггеры».</li>
<li>Слаконар «Книга месяца».</li>
<li>Публичное собеседование с Пупкиным В. Порешаем задачки на круглые люки, поговорим про чистый код, декларативность и императивность.</li>
<li>Q&A-сессия «Именование в программировании».</li>
</ul>
<p>В условиях асинхронных групп, куда новые студенты приходят постоянно, некоторые активности можно повторять каждые 2 месяца — они не потеряют своей актуальности. Это снижает для нас когнитивную нагрузку и позволяет учитывать опыт уже проведенных активностей, чтобы на каждой итерации мы могли выдавать нашим студентам контент все лучшего качества.</p>
<h2 id="heading-2-13">База материалов наставников</h2>
<p>Этот инструмент уже рассматривался ранее, но вспомним его суть. Весь контент, созданный наставниками, сохраняется в единое пространство. Когда мы хотим провести для студентов активность на заданную тему (или не можем эту тему подобрать), мы заходим в базу, изучаем материалы и берем их за основу для собственных активностей.</p>
<p>Изучение материалов других наставников может вдохновить нас на создание собственной темы, подсказать удачные формулировки мыслей и задать понимание отправной и конечной точек той или иной темы. Может быть и обратное — когда готовый материал не понравился и мы поняли, как делать не следует.</p>
<h2 id="heading-2-14">Заключение</h2>
<p>Мы рассмотрели список тем, которые наставник может давать студентам на протяжении всего обучения, независимо от их уровня. Благодаря широкому выбору форматов одну и ту же тему можно разбирать несколько раз. Это генерирует большое количество комбинаций и потенциально позволяет распланировать наперед целые месяцы обучения.</p>
<p>Бывают и специфичные темы или запросы от студентов, когда требуется рассказать о чем-то менее универсальном. В таком случае нам важно правильно выделить ключевую мысль и пройтись только по ней.</p>
<p>Независимо от выбранной темы, наставник должен определиться с аудиторией, подготовить контент-план, а также ссылки и презентации заранее — желательно, за неделю до активности. Так мы сможем провести тестовый прогон с методистами и получить обратную связь.</p>
<p>Нам также важно пояснять, как доносимая нами теория соотносится с реальной практикой. В этом нам помогают как акценты на этом аспекте в ходе нашего рассказа (а лучше — примеры кейсов), так и активности вида «публичное собеседование» или «решение задач с собеседований».</p>
<p>Если все же случилось так, что вдохновение иссякло и мы не можем найти тему — это тоже абсолютно нормально, особенно на начальных этапах. Можно написать в общий чат наставников, обозначив нашу программу, средний уровень студентов и те темы, которые мы уже брали для обсуждения. Другие наставники и команда Хекслета ответят в чате и помогут с выбором темы.</p></div></div></div></div><style data-mantine-styles="inline">.__m__-_R_1bdub_{--col-flex-grow:auto;--col-flex-basis:8.333333333333334%;--col-max-width:8.333333333333334%;}@media(min-width: 48em){.__m__-_R_1bdub_{--col-flex-grow:auto;--col-flex-basis:16.666666666666668%;--col-max-width:16.666666666666668%;}}</style><div style="min-width:0rem;height:100%;min-height:0rem" class="m_96bdd299 mantine-Grid-col __m__-_R_1bdub_"><div style="margin-inline:var(--mantine-spacing-xs)" class="mantine-visible-from-sm"><a style="--button-color:var(--mantine-color-white);margin-bottom:var(--mantine-spacing-lg);text-decoration:none" class="mantine-focus-auto m_849cf0da mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses/tutor-school-hexlet/lessons/activity-themes/finish_unit?unit=theory" data-disabled="true" data-block="true" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label"><span style="margin-inline-end:var(--mantine-spacing-xs)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Дальше</span>→</span></span></a><a style="padding-inline:0rem" class="mantine-focus-auto m_f0824112 mantine-NavLink-root m_87cf2631 mantine-UnstyledButton-root"><span class="m_690090b5 mantine-NavLink-section" data-position="left"><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;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="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-list-numbers "><path d="M11 6h9"></path><path d="M11 12h9"></path><path d="M12 18h8"></path><path d="M4 16a2 2 0 1 1 4 0c0 .591 -.5 1 -1 1.5l-3 2.5h4"></path><path d="M6 10v-6l-2 2"></path></svg></div></span><div class="m_f07af9d2 mantine-NavLink-body"><span class="m_1f6ac4c4 mantine-NavLink-label">Навигация по теме</span><span class="m_57492dcc mantine-NavLink-description">Теория</span></div><span class="m_690090b5 mantine-NavLink-section" data-position="right"></span></a><div style="margin-block:var(--mantine-spacing-lg)" class="m_3eebeb36 mantine-Divider-root" data-orientation="horizontal" role="separator"></div><div style="margin-block:var(--mantine-spacing-lg)" class=""><div style="justify-content:space-between;margin-bottom:calc(0.1875rem * var(--mantine-scale));color:var(--mantine-color-dimmed);font-size:var(--mantine-font-size-xs)" class="m_8bffd616 mantine-Flex-root __m__-_R_qimrbdub_"><p style="font-size:var(--mantine-font-size-xs)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Завершено</p><p style="font-size:var(--mantine-font-size-xs)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">0 / 9</p></div><div style="--progress-size:var(--progress-size-sm)" class="m_db6d6462 mantine-Progress-root" data-size="sm"><div style="--progress-section-size:0%;--progress-section-color:var(--mantine-color-gray-filled)" class="m_2242eb65 mantine-Progress-section" role="progressbar" aria-valuemax="100" aria-valuemin="0" aria-valuenow="0" aria-valuetext="0%"></div></div></div><div style="--toc-bg:var(--mantine-color-blue-light);--toc-color:var(--mantine-color-blue-light-color);--toc-size:var(--mantine-font-size-sm);--toc-radius:var(--mantine-radius-sm);margin-top:var(--mantine-spacing-xl)" class="m_bcaa9990 mantine-TableOfContents-root" data-variant="light" data-size="sm"></div></div><div class="mantine-hidden-from-sm"><div style="--stack-gap:0rem;--stack-align:stretch;--stack-justify:flex-start" class="m_6d731127 mantine-Stack-root"><a style="--button-color:var(--mantine-color-white);margin-bottom:var(--mantine-spacing-xs);padding:0rem;text-decoration:none" class="mantine-focus-auto m_849cf0da mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses/tutor-school-hexlet/lessons/activity-themes/finish_unit?unit=theory" data-disabled="true" data-block="true" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">→</span></span></a><button style="--ai-size:var(--ai-size-sm);--ai-bg:transparent;--ai-hover:var(--mantine-color-indigo-light-hover);--ai-color:var(--mantine-color-indigo-light-color);--ai-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-block:var(--mantine-spacing-lg);color:inherit;width:100%" class="mantine-focus-auto m_8d3f4000 mantine-ActionIcon-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-disabled="true" type="button" disabled=""><span class="m_8d3afb97 mantine-ActionIcon-icon"><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-list-numbers "><path d="M11 6h9"></path><path d="M11 12h9"></path><path d="M12 18h8"></path><path d="M4 16a2 2 0 1 1 4 0c0 .591 -.5 1 -1 1.5l-3 2.5h4"></path><path d="M6 10v-6l-2 2"></path></svg></span></button></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>