Академия началась 10 лет назад с интерактивных тренажёров по вёрстке, которые сделал Саша Першин, но довольно быстро появились и полноценные интенсивные курсы для верстальщиков. Через какое-то время добавились курсы по JavaScript, а потом и по PHP.
Всё это добро нужно было кому-то вести — сначала всё делали Саша и Лёша Симоненко, а потом появились и другие авторы. Некоторых вы и без меня хорошо знаете — например, Вадима Макеева. А всего за 10 лет у профкурсов Академии было 14 авторов. При этом автор — не наставник и не преподаватель в привычном смысле. Он не занимается отдельно с каждым студентом и не проверяет домашние задания и итоговые проекты.
Чтобы узнать, чем на самом деле занимаются авторы, я подловил их в тёмном коридоре и задал кучу неудобных вопросов. Поговорили о работе авторов, секретах профессии, революциях в вебе, HTML 6 и ответственности за судьбы людей.
Привет. Расскажите, кто вы, чем занимаетесь и что любите делать больше всего?
Андрей Серёдкин: Джуниор-верстальщик и автор курсов в Академии (смеется) Нет, только автор курсов по вёрстке в Академии. Люблю играть в Splatoon и BOTW на Nintendo Switch.
Коля Шабалин: Автор профессиональных курсов в направлении HTML.
Кирилл Сенкевич: Автор курсов по PHP. Занимаюсь этим больше пяти лет, а всего в разработке 12 лет. Мне кажется, лучше всего у меня получается планировать работу, дробить её на отдельные этапы и уточнять требования.
Игорь Антонов: Автор курсов по JavaScript и техлид в HTML Academy. Пишу код с 2006 года. Люблю программировать и писать технические статьи.
Кто такой автор? Писать курс — это как? Что нужно уметь?
Кирилл: Нужно объяснять вещи простым языком и влезать в шкуру студента. Тебе может быть понятно всё, но студент при этом не понимает ни слова. Ещё нужно уметь структурировать информацию — чтобы не перегружать студентов, но раскрывать всю нужную теорию.
Коля: Моя версия — подбирать слова и быть сдержанным. Смотреть, что бывает в окружающем мире, понимать, какие приёмы использовать, а какие лучше не надо.
Андрей: На самом деле нужно не очень много специфических навыков — это умение структурировать информацию и желание донести информацию. Разница в том, что в Академии научат доносить информацию, а желание донести — важная вещь, которой не научишь.
Игорь: Добавлю еще одну популярную мысль — нужно простыми словами рассказывать о сложных вещах. Самое главное — проверять то, чему учишь и быть уверенным, что это можно использовать на практике. Главное — понимать конечную задачу, потому что без задачи обучение не даст эффекта.
Программирование — не самоцель, мы учим решать задачи при разработке веб-приложений.
Правда, что автор курсов должен сначала поработать программистом, а только потом идти в авторы?
Коля: Думаю, что да. Знать путь и пройти путь — разные вещи. Можно знать, как работает асинхронное программирование в теории, но не уметь с ним работать.
Кирилл: Я согласен, нужно отработать хотя бы 3-4 года. Это время, за которое можно стать опытным разработчиком и поучаствовать в проектах разной сложности.
Андрей: А по мне неоднозначный вопрос. Опыт в разработке будет полезен для понимания каких-то сложных вещей, но мне кажется, что умение донести информацию важнее. Оно не зависит от работы и огромного опыта.
Игорь: Я скорее согласен с Колей и Кириллом. Многие вещи невозможно рассказать, пока сам не попробуешь и не набьешь кучу шишек.
На что похожа работа автора?
Игорь: Это смесь работы профессиональным разработчиком (потому что пишем код), тимлидом (потому что делаем ревью кода) и журналистом (потому что пишем статьи).
Андрей: Работа автора похожа на некрасивый пирог. Сначала кажется, что это что-то непонятное и бесформенное, особенно, если почитать задачи. Но когда пробуешь кусочек, понимаешь, что это вкусная и интересная вещь. Я занимаюсь вещами, которыми раньше никогда не занимался — пишу статьи, делаю информацию понятной, общаюсь с сообществом не как участник, а как ведущий. Это круто.
Коля: Мне кажется, работа автора похожа на золотоискателя, такого, который любит своё дело. Он откапывает тонну золота, но не останавливается, потому что знает, что всегда есть ещё. И я, например, собираюсь копать еще глубже.
Кирилл: Это смесь из разработки и творчества. Первая часть — когда делаешь демонстрации, примеры кода. Вторая часть — творческая, когда ты как автор пишешь учебник.
Писать учебник — это как? Садишься и пишешь каждый день по 20 страниц как книжку?
Андрей: Нет. Это сложная командная работа. Написание курса — это очень много обсуждений, разговоров, споров и анализа. Чтобы учить, нужно понимать, чему учить, а эти вещи нужно сначала самому найти. Поэтому написание это, как ни странно, очень много чтения.
Кирилл: Курс по PHP — учебник, и задания, и проект, критерии. Курс разрабатывается полгода. Сначала появляются учебный и личный проект и их код, затем задания. Дальше теория — пишешь главы, ищешь примеры, аналогии, роешься в документации.
Так что если говорить о том, что делается каждый день — все понемножку.
Что такое курс на выходе? Большой вордовский файл?
Коля: Нет. Это сервис, сайт для обучения студентов. Там уже есть всё, что нужно. Оно разложено по полочкам, в нужный момент о себе напомнит, протестирует, задаст вопросы.
Андрей: То, что видят студенты — и есть рабочий материал. Курс существует внутри интерфейса, а его контент — внутри репозитория. Эти вещи мы и обновляем. Нет какого-то отдельного места для хранения. Каждый поток — отдельный репозиторий.
Игорь, а правда, что в учебнике по Node.js миллион знаков?
Игорь: Правда, их почти 1 400 000. Два тома «Войны и мира».
Его вообще реально прочитать целиком?
Игорь: Да, я же его написал (смеётся).
Бывает ли у вас ощущение «Да о чём тут ещё рассказывать» перед очередным обновлением курса?
Андрей: Иногда такое ощущение есть, но как только начинаешь копаться в материале, всплывают какие-то штуки, которые появились недавно. Или всплывают старые, о которых ты не знал. Можно провести сравнение было—стало.
Коля: А у меня не было ни разу. Потому что стандарты развиваются, каждый месяц выходит по одной новой спецификации, которую внедрят через 5-8 лет, а значит, в любой момент времени есть спецификация, которую можно внедрить сейчас.
С вами над курсами в Академии работает много людей. Расскажите вкратце, кто они?
Андрей: Давай расскажу на примере курсов по вёрстке. Мы пишем курсы вдвоём с Колей. Второй автор — важная роль, в общении с другим человеком можно понять плюсы и минусы написанного.
Есть менеджер — человек, который берет на себя всю текучку, помогает не уходить в работу только над курсом, а делать и сопутствующие задачи. Вместе с менеджером работает продюсер — человек, у которого есть видение курсов как продукта, и того, как они будут развиваться.
Кураторы и адвайзеры — ещё одни руки, которые помогают при работе со студентами, своеобразная техподдержка, да и просто поддержка. Разработка помогает с интерфейсом курса. Контентщики пишут много статей, которые мы добавляем в учебные материалы.
Ну и господин Першин — методист, помогает в определении направления программы.
Кирилл: Добавлю, что на курсах по PHP кураторы помогают с технической частью, занести задания в репозиторий, найти ошибки в тексте, вычитку сделать. Иногда привлекаем сторонних людей, например, для курса по Laravel мы привлекли стороннего разработчика для консультаций и написания кода.
Как взаимодействуете со студентами?
Коля: Давайте отвечу за всех. Всё начинается со знакомства на первом лайве и ответов на вопросы вживую. Дальше мы можем встретиться в студенческом чате в Дискорде. Третье — личная жизнь. Например, ко мне в соцсети может прийти любой студент и сказать «Коля, помоги перед первым собеседованием». Я помогаю.
Студенты не бесят?
Коля, Андрей, Кирилл одновременно: Нет!
Игорь: Нет, не бесят. Общение со студентами — челлендж. Если они не понимают материал, то нужно пересмотреть повествование и сделать материал более простым и понятным.
Чего студентам точно не надо делать, чтобы успешно защититься?
Коля: Сейчас будет сложный ответ. Не ежедневно верстать и читать материалы. Думать о том, что «Не буду делать ничего в течение недели, а потом в субботу и воскресенье доделаю» — так не заработает. Не надо отвлекаться на посторонние вещи.
У нас процесс обучения плотный, мы сразу предупреждаем студентов, что у них не будет времени на то, что мешает учёбе. Работать параллельно с курсом можно, но каждый день тусить с друзьями на вечеринках и марафонить сериалы времени точно не будет.
Игорь: Да, всё так. Есть соблазн, что в начале может быть слишком легко, но нагрузка меняется и можно наломать дров, если бежать вперед. А так студентам нужно обязательно читать все материалы, которые даются при подготовке к лайвам.
Чувствуете ли вы ответственность за судьбы студентов?
Андрей: Я думаю, что люди влияют на свои судьбы сами. Мы можем помогать, упрощать моменты, связанные с пониманием разработки, но обычно студенты делают всё сами.
Кирилл: В какой-то мере чувствую. Всегда есть ощущение, что нужно делать работу качественно, чтобы студент не бросал обучение, потому что ему непонятно. Если ты сделаешь понятный курс, это кому-то поможет найти новую работу.
Технологии, спецификации, революции
Это правда, что вы постоянно читаете спецификации? Что там интересного из свежего?
Коля: Да. Читаю спеки HTML еженедельно, но хотелось бы ежедневно. Из последнего читал про каскадные слои и это взорвало мне мозг, потому что это новая технология, которая только будет внедряться. И пока непонятно, для чего она нужна и для каких задач подходит. Я пока придумал одну типовую задачу — сторонние виджеты на сайте.
Андрей: Да, я тоже регулярно читаю спеку. Если что-то непонятно, то вместо поиска по форумам иду и читаю документацию. Например, недавно я читал про создание тултипов и доступность тултипов через aria-атрибуты или элементы взаимодействия.
Игорь: Да. Но не каждый день, а по мере необходимости: при подготовке материалов, обновлениях спеки и так далее. На днях перечитывал раздел о приведении типов, чтобы сделать более развернутый материал.
Кирилл: Последнее из нового в PHP — типизация, близкая к уровню Java в последних версиях. Это очень круто.
Коля, Андрей, когда нам ждать HTML6?
Коля: Никогда, если не придут бунтари. HTML 5 это живой, вечнозелёный стандарт.
Андрей: Согласен, что HTML6 никогда не будет. Потому что HTML развивается эволюционно, и HTML не отменял то, что было раньше, он дополнял.
Ну хотя бы JavaScript чем-нибудь новым заменят?
Игорь: Вряд ли. Это сложная задача, да и никто не захочет отказываться от миллионов уже существующих приложений. Поэтому и развивают обратную совместимость. Хороший пример — TypeScript. Он приносит много полезностей для разработчика, но не заменяет JavaScript.
Нужна ли вебу революция? Какой она должна быть?
Кирилл: Это так не работает, это невозможно. Таких революций история технологий не знает, может, только Flash. Веб-технологии развиваются эволюционно, а с чистого листа никогда.
Андрей: Кажется, это не очень хорошая идея, потому что это как «Всё плохо, давай переделывать». В итоге мы придём к такому же моменту, где находимся сейчас, а время потеряем.
Коля: Думаю, что революция не нужна. Конечно, в вебе куча проблем. Чтобы сверстать форму, можно знать всё про формы, быть гением форм. Но при этом можно подключить библиотеку и снять проблемы.
Что вас больше всего раздражает в ваших языках?
Игорь: Раздражает API в JavaScript. Местами он странный и разрозненный, потому что проектировался в разное время. Например, не всегда из названия функции или метода понятно, как эта штука работает. Другая проблема: многие вещи можно сделать несколькими способами. С одной стороны это хорошо, а с другой «зачем», да и как объяснить выбор новичку?
Плюс есть сложные темы, в которые нужно погрузиться, чтобы понять. Например, Event Loop, контекст или ООП, в котором используется прототипное наследование.
Кирилл: В PHP самая раздражающая вещь в том, что все до сих пор считают, что он 3 или 4 версии. В этом отчасти есть здравое зерно, потому что правда есть много легаси и плохих решений. Но в целом язык уже вырос, и сейчас меня раздражает только его имидж. Очевидно, что PHP не умирает.
Кирилл, к вопросу об имидже. Все говорят, что пора уходить с PHP на Go
Кирилл: А зачем уходить, если можно совмещать? Go — язык довольно узкого применения по сравнению с PHP. У Go есть свои плюсы, но это довольно нишевый язык, в том плане, что невозможно переписать всё с PHP на Go 1 в 1. А вот выучить стоит — хотя бы для повышения своей ценности, общего развития и для того, чтобы если встанет задача на проекте, которая лучше решается на Go, решить её.
А верстальщикам чего не хватает для счастья?
Коля: Быстрого внедрения новых CSS-свойств. Ещё нет новых HTML-тегов. Ну и хочется, чтобы все тесты писались быстрее.
Андрей: Не хватает более тонкой работы над типографикой. Например, починить параметр line-height, который не совсем совпадает с книжной типографикой. Но это мелочи — так-то всего хватает.
Когда у веб-разработчика наступает середина карьеры?
Кирилл: У меня есть мнение, с которым могут не согласиться. Продолжительность карьеры разработчика 7-10 лет. Дальше можно продолжать, но это довольно грустно, потому что зарплата не растет, новых вызовов нет, большинство проектов не требуют десятилетнего опыта, поэтому разработчика легко могут заменить. Поэтому нужно идти в управление — тимлиды, техлиды и так далее.
Раскройте секрет — чего не рассказывают на курсах, но что потом встречается в реальной работе?
Кирилл: На курсах не учат копаться в легаси-коде и исправлять ошибки, а в жизни джунам нужно участвовать в реальных проектах, где много старого кода. И большую часть времени джун тратит на попытки выяснить, как работает чужой код.
Андрей: Что многие вещи решаются переговорами между людьми, а не следованием четкому ТЗ. На курсах дают хорошие макеты и вылизанные ТЗ. Но в реальности ТЗ не высечены в камне, поэтому, например, компоненты можно обсудить с дизайнером.
Игорь: Как минимум, на работе приходится не только применять навыки программирования, но и сталкиваться с другими инструментами — например, с консольными утилитами.
То же самое с навыками программирования. Например, у нас есть система критериев качества вёрстки, которую мы составляем с сообществом, и мы учим работать на её основе. Но в компании, куда джун приходит после курсов, могут быть другие правила, и тогда придется немного доучиваться. Хотя мы стараемся доносить, что в разных компаниях всё по-разному.
Лайвы и теннисные мячики
Каждую неделю вы ведёте лайвы, где полтора-два часа что-то рассказываете студентам. Как вы готовитесь?
Андрей: Если это новый материал, который я ещё не рассказывал, то устраиваем прогон лайва без зрителей. За счет этого ещё и время отмеряем. Только я не учу наизусть, а делаю как преподы по математике — как бы вывожу всё, что скажу, по тем материалам, которые уже есть.
Коля: В день лайва я всем говорю, что сегодня Коля занят и не будет отвечать ни на какие вопросы — мне помогает Андрей. Дальше я обязательно пересматриваю лайв из предыдущего потока, пересматриваю презентацию, полчаса думаю, как её улучшить, если можно это сделать. За час до лайва начинаются дыхательно-ротовые тренировки, чтобы речь была более правильной. За полчаса до лайва дышу.
Раз в неделю у вас полтора часа со специалистом по речи. Постановка речи — сложное занятие?
Коля: Невероятное сложное. Я не выговариваю Р и Л. Самое сложное упражнение — на выговаривание этих букв. А кроме этого тяжёлое упражнение на темпоритм — нужно управлять скоростью речи и балансировать ей по шкале от 1 до 9. Долго объяснять подробнее :)
Кирилл: Вспоминая занятия, могу сказать, что это было непросто, какие аспекты ни возьми. И дикция, и выражение. Не могу сказать, что я сильно чего-то достиг во время занятий, но научился ставить акценты.
В каждой студии, где проводятся лайвы, лежат теннисные мячики. Зачем они?
Коля: Это как раз инструмент для работы с речью. С помощью мячиков мы тренируем произношение. А ещё они постоянно пропадают.
Игорь: Дополню, что мячики нужны, чтобы оттачивать чувство ритма и успевать проговаривать скороговорки, пока мяч летит партнеру. И мы пока даже ничего не разбили (смеется).
Про уверенность в своих силах
Важно ли верить в то, что делаешь?
Коля: Да. Особенно мне — я человек-сомнение.
Андрей: Да. Если мы учили пользоваться инструментом, а потом поняли, что это плохой инструмент, мы внутри команды обсуждаем это дело. И если все согласны, что он не ок, то проще его убрать. Но вот, например, Pixel Perfect никто не любит, но на начальном этапе это хороший инструмент, чтобы натренировать насмотренность.
Чувствуете себя звездами?
Игорь: Нет. Это не очень подходит нашей профессии. Хотя есть конференции — возможность структурировать свои мысли и поделиться ими с аудиторией. Но и там самое ценное не выступить, а получить какой-то опыт после выступления, обменяться мнениями.
Андрей: Есть некоторое волнение перед людьми, но прям звездой, наверное, нет. На улицах ещё не узнают и фанатки не бегают.
Коля: Вообще ноль. Один раз ко мне с журфака какого-то университета пришли и взяли интервью, но потом не было никакой обратной связи. Так что нет, звездой я себя не чувствую.
У вас есть сайд-проекты?
Коля: Я человек с миллионом сайд-проектов. На 3 месте «Петрович» — склонятор фамилий и имён в онлайне. 2 место — генератор рандомной строки. 1 место — сервис по поиску статей по веб-разработке. Ещё я с недавнего времени составляю фронтенд-новости для Хабра.
Игорь: Да, несколько пет-проектов. На них я тренируюсь в изучении новых технологии. Самый многострадальный — блог, у меня есть движок блога, который я постоянно перепиливаю. Второе — система мотивации моих детей, где можно оставить задачу и получить вознаграждение и ачивку за выполнение. Ещё я вхожу программный комитет Podlodka TechLead Crew и помогаю организовывать онлайн-конференции.
Андрей: А у меня нет. Я считаю, что если сайд-проект появляется, то он живет внутри работы. Соблюдаю ворк-лайф баланс.
Чем будешь заниматься, если фронтенд запретят?
Кирилл: Буду заниматься трафиком.
Андрей: Пойду копать каналы (смеется). Пойду в психологи или коучи.
Игорь: Буду заниматься другой разработкой — я же начинал с десктопа на Delphi. Так что писал бы под мобилку или под десктоп.
Коля: А я создам подпольную штаб-квартиру по изучению фронтенда.
Если вы тоже хотите когда-нибудь создать подпольную штаб-квартиру по изучению фронтенда или просто любите выступать, делиться опытом и пишете код на JavaScript, React или Node.js, то давайте знакомиться. Напишите Соне — её контакты внутри ссылок, а она расскажет, что делать дальше.