Когда мы решали, с кем публично поговорить о вёрстке, преподаватель Хекслета Никита Михайлов предложил позвать на интервью Вадима Макеева. Связались с Вадимом, он согласился и рассказал нам много интересного о вёрстке, рынке труда, развитии фронтендеров и обучении новичков. Результатами беседы делимся с вами. Со стороны Хекслета в разговоре участвовали преподаватель вёрстки Никита Михайлов и редактор Дмитрий Дементий.
- На позиции преподавателя нужен человек, который умеет и разрабатывать, и преподавать: об обучении новичков
- С интересом слежу за вещами, которые принципиально меняют то, как мы разрабатываем: о перспективах и развитии HTML и CSS
- Новичкам всё ещё сложно стартовать: о рынке труда
Дмитрий Дементий: Вадим, расскажи пожалуйста о себе — кто ты, чем занимаешься.
Вадим Макеев: Я фронтендер, энтузиаст разных стандартов и веб-платформы в целом, любитель всего открытого и свободного, но не слишком линуксоид. Мы тут посчитали, что сообществу «Веб-стандарты» в этом году будет 15 лет, и все эти 15 лет я его развиваю. Я много где работал и много чем занимался в течение этих 15 лет, но постоянно занимался сообществом.
Это можно назвать сквозной деятельностью, «Веб-стандарты» проходят сквозь всё в качестве моего главного проекта. Хотя изначально не было таких планов, мы просто тусовались с друзьями.
Около четырёх лет я работал в HTML Академии, в январе этого года закончил работать. До этого лет семь работал в браузере Opera, представлял его в России для сообщества разработчиков. Перед этим успел поработать в «Яндексе», LiveJournal и других компаниях.
Вот такой у меня путь: сначала разработчик, потом DevRel, сейчас занимаюсь и образованием, и технологиями, и другими вещами, о которых ещё поговорим.
Д. Д.: Недавно ты написал в соцсетях, что уходишь из HTML Академии. А для людей в теме ты ассоциируешься с Академией. Прямо как у Маяковского: «Мы говорим партия, подразумеваем Ленин». Можешь сказать пару слов, что дальше? Будешь заниматься обучением или хочешь погрузиться с головой в практическую разработку?
В. М.: Я проработал в HTML Академии ровно четыре года, успел сделать много интересного и полезного: программы, проекты и так далее. Теперь я подумал, что хочу заниматься чем-то в более самостоятельном режиме. Практически всю жизнь у меня была работа фултайм, компания, в которой я работаю. Задачи этой компании были моими задачами.
Но параллельно я занимался какими-то своими проектами, и их количество всё время росло. Приходилось отвлекаться, выбирать между задачами работодателя и своими проектами. Подумал, что есть вариант и возможности стать независимым специалистом.
У меня есть проекты, о которых я сейчас не говорю публично. Они кладут мне на стол хлеб с маслом в этом году. Я подумал, раз есть такая возможность, займусь этим, а по ходу дела буду выяснять, чем заниматься дальше.
Сейчас я скорее в переходном периоде, чем в состоянии «вылетел из одного гнезда, приземлился в другом». Чем буду заниматься дальше? Вряд ли займусь тем, чем занимался в HTML Академии. То есть я не буду создавать программу курса, читать лекции, разрабатывать учебные планы. Скорее всего, буду заниматься чем-то другим просто ради разнообразия.
Не думаю, что буду занят рядовым фронтендерством. Кажется, я это уже перерос, но не в том смысле, что я уже круче этого, а в том смысле, что вырос в сторону. Мне ближе и интереснее деятельность DevRel, Event-менеджера, опенсорс-контрибьютора. Мне кажется, эти вещи у меня получаются. А может уйду в видео- и аудиопродакшен. Но пока я в переходном периоде.
Д. Д.: Вадим, а образование будет присутствовать в профессиональной деятельности?
В. М.: Думаю, от этого никуда не уйти. Занимаюсь образованием примерно с 2006 или 2005 года, когда прочитал свои первые доклады, лекции. Вопрос в том, занимаюсь ли я образованием в рамках каких-то институтов или самостоятельно. Самостоятельно я продолжаю делать образовательный контент, например, снимаю видео. Вряд ли я буду писать книгу, но были мысли про подкасты, статьи. Буду помогать новичкам или тем, кто уже работает, узнавать какие-то вещи лучше.
Но полноценные учебные программы, профессии, курсы — слишком большая вещь, чтобы заниматься этим самостоятельно. Я не готов делать какие-то компании, стартапы. Если кто-то позовёт меня автором, скорее всего откажусь. Мне бы хотелось пока заняться чем-то другим, а там посмотрим.
Никита Михайлов: А тебе интереснее обучать начинающих или продолжающих, которым интересны более глубокие вопросы?
В. М.: Интереснее всего работать с начинающими, но проще работать с людьми среднего и высокого уровня. Тебе не нужно думать, как с ними разговаривать. Ты просто говоришь, как считаешь нужным.
А интереснее с новичками, потому что тебе нужно сообразить, как отбросить груз своих знаний, и всех своих травм, я бы даже сказал. Не объяснять то, что уже неактуально, что помешает новичкам понять тему. Это не все умеют.
Я часто слышу такие высказывания: «Этой технологией я не пользовался, она конечно поддерживается во всех браузерах, но я ей не доверяю». Такие люди предпочитают делать по старинке. А это «по старинке» отбрасывает новичков назад, заставляет их изучать концепции, которые уже не нужны.
Кто-то говорит, что современному фронтендеру надо уметь голыми руками собирать какой-то там микроконтроллер. Этот кто-то считает это фундаментом, без которого никуда. Кто-то говорит, что надо разобраться, как верстать на флоутах. Мол, вы же обязательно будете почтовые рассылки верстать.
А людям просто нужен современный ECMAScript, гриды и всё. Зачем усложнять, если кроссбраузерности достаточно.
С другой стороны, при работе с новичками важно суметь объяснить человеку, как строятся интерфейсы, как работает CSS. Потому что люди, которые приходят куда-то учиться, ждут мгновенного старта. У них нет тех года или полутора лет, за которые я в спокойном ритме, обучаясь на журфаке, въезжал в веб-разработку. Мне не нужно было срочно устраиваться на работу. Я просто развлекался, получал удовольствие. Как люди себе находят хобби, так и я нашёл.
Не у всех новичков сегодня есть такая возможность. Многие хотят за полгода найти работу. Безусловно, не у всех это получается. Обучение занимает чуть больше времени. И на рынке есть петля с условным названием «чтобы устроиться, нужен опыт работы, но где взять опыт, если без него на работу не берут».
Н. М.: А ты не следишь за выпускниками HTML Академии, которые прошли через тебя? Или ты просто вёл занятия?
В. М.: Следить за выпускниками сложно. Когда ты заходишь в чат и видишь там 700 человек, сложно проследить за всеми. Я читал лекции, разрабатывал программы, отвечал на вопросы во время и после лайвов. А связью со студентами у нас всегда занимались наставники, кураторы и другие люди. У этих людей была возможность не просто ответить на вопрос студента, а разобраться в сути этого вопроса.
Авторы в Академии занимаются другим. Но я отхожу от этого. До мая читаю лайвы в профессии, которая сейчас идёт, но как приходящий автор, который не разрабатывает программы. Просто помогаю ребятам доделать то, о чём я договорился. Академия идёт дальше и я иду дальше.
На позиции преподавателя нужен человек, который умеет и разрабатывать, и преподавать: об обучении новичков
Д. Д.: Хотелось бы поговорить об обучении новичков фронтенду, у тебя здесь большой опыт. Как ты думаешь, кем должен быть идеальный преподаватель вёрстки или фронтенд-разработки: практикующим разработчиком, «чистым» преподавателем, или он должен так или иначе сочетать практическую разработку и преподавание?
В. М.: Допускаю, что можно организовать процесс обучения так, что преподаватель будет приходящим. Он будет читать лекции, участвовать в программе, а рядом с ним будет работать условный методист или соавтор, который будет заниматься основной частью работы.
То есть я допускаю модель, в которой практикующий разработчик работает не full time, а занимается курсом part time, тратит на обучение студентов треть рабочего времени. Сам я в такой схеме не участвовал. Я четыре года работал в Академии в режиме full time. Но модель с part time занятостью может существовать, это такой компромисс.
Когда в Академию искали авторов, всегда требовали, чтобы у человека был хороший практический опыт. Это должен быть senior. Но этот человек должен быть заинтересован в том, чтобы рассказывать, показывать, развивать и продвигать других людей. Мне кажется, чтобы быть успешным преподавателем, разработчику скорее нужны качества тимлида.
Что касается практического опыта, я допускаю, что если разработчик уходит на фултайм в образование, он будет проседать. Вам никто не даст времени и возможностей разрабатывать, работать плотно с командой, вести серьёзные проекты, если у вас есть другая задача. Это тормозит развитие разработчика.
Я знаю, что многие люди приходят в образование и уходят именно поэтому. То есть они приходят, работают, потом вспоминают, что давно не разрабатывали и уходят. Или наоборот — senior устаёт от ежедневных галер и приходит в другое место. Я не могу назвать его более спокойным. Просто здесь другие вызовы, другие потоки.
Если резюмировать, на позиции преподавателя нужен человек, который умеет и разрабатывать, и преподавать. Было бы классно, если бы школы практиковали ситуации, где фронтендер — part time автор. Это помогало бы такому автору не терять связь с реальностью. Если разработчик перестаёт практиковаться, он теряет связь с отраслью. И это негативно влияет на качество образования.
Есть образование, а есть практика. Как бы школы не рассказывали, что учат на практике, это не практика, а всё равно какая-то условность. Не вижу в этом ничего плохого, потому что в такой ситуации, в игре, обучение работает лучше всего.
То есть нужен гибрид преподавателя и практикующего разработчика. Вопрос в том, как его делать: разрешить разработчикам участвовать в обучении part time или смириться с тем, что люди будут заходить и выходить.
Н. М.: Вадим, а как ты в Академии четыре года поддерживал свои навыки? Пытался брать на себя дополнительные проекты, или может тебе помогали поддерживать профессиональный уровень твои подкасты?
В. М.: Строго говоря, я пришёл в Академию уже не разработчиком. В Opera Software я занимался DevRel. То есть я уже не был fulltime-разработчиком, который каждый день пилит продукт.
Чтобы не терять связь с реальностью, я постоянно занимаюсь какими-то собственными проектами, которые держат меня и мои навыки в тонусе. Я интересуюсь новыми технологиями, фреймворками, периодически прохожу курсы, которые меня интересуют.
Кстати, можно по-разному оставаться в курсе того, что происходит. Можно углубиться в какой-то стек и работать в компании 5 лет на этом стеке. Мой подход немного отличается. Я знаю поменьше, но про большее.
Я много читаю, пишу много новостей, поэтому у меня другой взгляд на вещи. Мне кажется, такой подход полезен в образовании, потому что здесь важно подсказать студенту не конкретный набор техник для конкретного проекта, а объяснить, как устроена вся платформа, как устроен рынок, какие есть требования, задачи.
Я был предрасположен к образовательной деятельности, потому что уже широко смотрел на отрасль. И я всегда был специалистом с широким взглядом, хотя иногда углублялся в какие-то вопросы, например, в доступность, производительность и так далее.
В целом продолжаю писать код каждый день, мне это дико интересно. Я всегда был скорее разработчиком интерфейсов, чем программистом. Мне это гораздо интереснее, поэтому продолжаю заниматься этим. Мне интересны дизайн, типографика, UX так же, как интересен фронтенд. Благодаря этому я актуален.
Д. Д.: Если перенестись в идеальный мир и попытаться построить лучшую систему обучения вёрстки, как она должна выглядеть? Как был бы организован процесс обучения в идеальной с твоей точки зрения школе, какой была бы среда обучения, программа? Вопрос глобальный, но по основным вехам можно пройтись.
В. М.: Я не видел много школ изнутри. По сути, это только Академия и какие-то курсы, в которых я сам участвовал как студент из интереса. Всех моделей я не знаю. Но если попытаться придумать свою с нуля, это безусловно должна быть имитация рабочего процесса. В этот процесс должны быть включены все типичные инструменты взаимодействия: системы контроля версий, социальный кодинг, системы организации пакетов типа npm, условные доски Trello.
То есть нужно использовать процессы, которые приучают студента к тому, с чем он будет работать дальше. Важно, чтобы у студента не было ощущения, что ему показали тренажёр, в котором он слева пишет код, а справа видит интерфейс, цвета и текст. Важно, чтобы не было ни малейшего подозрения, что именно так всё и будет. Чтобы человек как можно раньше получал в руки профессиональные инструменты.
Да, задачи будут упрощённые. Да, ты не слишком глубоко узнаешь инструменты. Но ты с самого начала будешь понимать, как всё устроено в реальной разработке. Задачи тоже должны быть близкими к реальности — не гипотетическими, а практическими. Чтобы ты с первых шагов делал какой-то интерфейс. Чтобы у тебя всегда были менторы, наставники, просто коллеги, с которыми можно обсуждать рабочие вопросы. Чтобы группа, с которой ты учишься, включала столько людей, сколько включает какая-то команда.
Мне кажется, такая схема повторяет то, к чему ты на самом деле готовишься. А дальше можно вводить нюансы. Я уже говорил, что нужно учить студентов ультрасовременным технологиям. Это как издают книги. Например, в ноябре 2020 года на всех книгах, которые печатаются в типографиях, уже стоит 2021 год. Потому что когда эти книги довезут до магазинов, люди не захотят покупать прошлогодние книги. То же самое со студентами. Их нужно учить ультрасовременным вещам, потому что когда они придут на рынок, ситуация уже поменяется.
Фронтенд очень быстро развивается. По крайней мере, вечнозелёным браузерам, сегодняшним и вчерашним, нужно учить. А это сложно, потому что где ты найдёшь на рынке столько преподавателей, которые разбираются в современных технологиях? Они умеют работать под IE 11 и поддерживать старые браузеры на старых технологиях. А студентам по-честному надо преподавать что-то новое и свежее. В разных типах компаний разный подход к созданию интерфейсов и разные задачи. Но нужно собирать по отрасли информацию и преподавать современные технологии.
Мне кажется, я впервые формулирую модель идеальной школы, поэтому спасибо за вопрос.
Д.Д.: Я правильно услышал, что практика должна идти впереди всего, что прежде всего надо ориентироваться на практику?
В. М.: Да. Просто когда вы решаете какую-то практическую задачу, важно объяснять, почему так. В этом месте приходит теория, спецификация, какой-то фундамент, который люди запоминают, понимают, откуда берутся источники знаний. Что не просто кто-то сказал, что нужно делать так, а в документе написано об этом. Мотивация изначально должна быть глубоко практической, в этом я уверен.
Д. Д.: При желании верстать может научиться каждый, или верстальщику нужны какие-то способности, предрасположенность, черты характера? Если да, то какие?
В. М.: Я бы не хотел никому ставить дополнительных барьеров. На пути к вёрстке, к разработке интерфейсов и так достаточно барьеров. Всё-таки это дело пока неестественное, всё-таки общество вокруг меня пока недостаточно цифровое, компьютерное, погружённое в IT, чтобы можно было легко переключиться во фронтенд. Общество всё ещё достаточно аналоговое и традиционное, поэтому барьеров очень много.
Если говорить про какие-то личные качества, мне кажется, что скрупулёзность, интерес к мелочам, аккуратизм безусловно важны. Усидчивость, желание и умение разобраться тоже играют важную роль. Фронтендер — это в некотором роде часовщик, в некотором роде инженер, человек, который готов разбираться с особенностями, решать челленджи, обеспечивать совместимость, ограничения.
Важно понимать, что инженеры-фронтендеры — это не физики-ядерщики, которые не думают о потребителях своей энергии, условно говоря, если они работают на атомной электростанции. Это скорее люди, которые делают машины, интерфейсы к ним. Поэтому огромную роль играет эмпатия. То есть с точки зрения технологии важны скрупулёзность, внимательность, инженерный склад ума. С другой стороны, очень важны эмпатия, интерес к человеку, способность понимать, что людям нужно и так далее. Без эмпатии вы можете стать программистом, но не разработчиком интерфейсов.
Завершая мысль, если вы не чувствуете в себе ничего из того, что я перечислил, забудьте, что я говорил, и всё равно пробуйте. Возможно, я сказал ерунду.
С интересом слежу за вещами, которые принципиально меняют то, как мы разрабатываем: о перспективах и развитии HTML и CSS
Н. М.: Вадим, я хочу немного отвлечься и пройтись по техническим вопросам. Вокруг нас становится больше новых интерфейсов, например, VR (виртуальная реальность) и AR (дополненная реальность). Это как-то повлияет на работу фронтендеров, верстальщиков в ближайшее время?
В. М.: Вокруг меня не появляется ни дополненная, ни виртуальная реальность. Я не вижу этого. Все мы поиграли, у всех закружилась голова, и все сказали, что это классно. А зачем это, никто не понимает.
Я пока не вижу перспектив, связанных с интерфейсами, пока мы не разберёмся с проблемами на аппаратном уровне, пока не сделаем так, чтобы всё работало хорошо. Чтобы наши устройства стабильно выдавали 120 fps, тогда поговорим про массовые интерфейсы.
Сейчас даже технологий не так много, хотя некоторые компании вкладываются в их развитие. Они пытаются встраивать в очки виртуальной реальности браузеры, пытаются делать фреймворки, с помощью которых создаются интерфейсы для виртуального мира.
Есть попытки, но они в зачаточном состоянии. Скорее всего все эти спецификации перепишут ещё раза три-четыре, прежде чем они получат массовое распространение. Пока есть только идея и есть фантастические фильмы. Мы только нащупываем, зачем это нужно и как это создавать. До фронтенда, до нормального интерфейса ещё далеко. Рано сейчас говорить всем покупать очки виртуальной реальности и разрабатывать для них интерфейсы. Никто не знает, как.
Да, хочется делать какие-то футуристические вещи. Но я не футурист, я больше о том, как сделать хорошо то, что есть сейчас. Это интереснее и практичнее.
Н. М.: У нас пользовательский опыт мало меняется, но меняются подходы, которые используют разработчики. Например, CSS всё расширяется. В черновиках уже появились слои (layers). Интересное решение для изоляции и грамотной каскадности. Уже давно ведётся речь о вложенности селекторов. Каких нововведений ждёшь ты и что бы ты хотел видеть в нативном CSS?
В. М.: Мне очень понравилась идея Мириам Сюзанн — слои каскада. Более того, у этого специалиста есть ещё несколько интересных черновиков. В частности, там есть инструменты для изоляции стилей, организации модульности и так далее.
Я интересуюсь идеями, которые эволюционно развивают CSS. Потому что я жду от веба обратной совместимости, как и большинство разумных людей. Благодаря ей не нужно будет ничего переписывать с нуля. То есть я не хотел бы терять огромные объёмы информации и совместимость ради того, чтобы фронтендерам было удобно завтра что-то разрабатывать.
Так что в CSS я жду решения задач, которые формировались последние лет 5. Это модульность как главный тренд. Она позволяет написать стили для конкретного компонента так, чтобы они не утекали наружу. Есть Shadow DOM, есть декларативный Shadow DOM, есть спецификации, которые предполагают, что стили не утекают за пределы какой-то директивы.
Ещё одна спецификации, которую предлагает Мириам Сюзанн — возможность подключать разные библиотеки с разными указаниями и обозначать, какой код специфичнее. И, конечно же, это выражения от контейнеров, которые позволяют в тренде этой модульности менять стили, опираясь не на ширину окна, а на размеры конкретного элемента. Это предложение в работе, им занимаются ребята из Chrome и просто независимые специалисты.
Если есть ощущение, что CSS никуда не движется и всё пропало, это не так. Там очень много всего варится. Если говорить о каких-то синтаксических вещах, например, о вложенности как в препроцессорах, удобных селекторах, кое-что из этого внедряется. Появляются not, has, is. Да, это здорово. Хотя я давно слез с Sass, у меня нет потребности в какой-то глубокой вложенности, в создании каких-то очень сложных деревьев.
То есть по синтаксическим вещам я не скучаю. А вот фундаментальные вещи жду: изоляцию стилей, выражения от контейнера, управление каскадом. Я с интересом слежу за вещами, которые принципиально меняют то, как мы разрабатываем, а не за теми, которые чуть-чуть подкрашивают опыт разработки. Для этого есть препроцессоры.
Нам надо помогать своим опытом и кейсами разрабатывать вещи, которые принципиально меняют разработку, потому что есть уже слишком много альтернатив — CSS-in-JS, атомарный CSS и так далее. Эти альтернативы просто выбрасывают существующий CSS в окно и говорят, что теперь мы пишем стили иначе. А мне бы не хотелось, чтобы что-то выбрасывали в окно. Мне бы хотелось, чтобы CSS развивался, и для этого есть все перспективы.
Н. М.: Не кажется ли тебе, что нативный CSS всё больше приближается к возможностям препроцессоров? Наступит ли ситуация, когда пре- пост-процессоры будут не нужны?
В. М.: Здесь всё происходит так, как развивается веб в целом. Сначала в вебе не было видео, использовали Flash. Сначала не было Java-апплетов, потом они появились. Создатели веб-платформ смотрят по сторонам, видят у разработчиков новые задачи и находят новые способы решать эти задачи, стандартизируют их. То же самое происходит с CSS.
Нужно понимать процессы. Представьте, что вы работаете над проектом, у которого 6 млрд пользователей. Цена ошибки — вашей технологией никто не будет пользоваться. Она приведёт к каким-то проблемам, и ей никто не будет пользоваться.
Мы сталкиваемся с ситуациями, когда стандарты появляются, ими никто не пользуется, и приходится всё откатывать. Это потерянные время и деньги. Поэтому стандарты разрабатываются медленно, с оглядкой на существующие решения. Мне нравится схема, когда кто-то сделал полифил, кто-то препроцессор, кто-то транспилятор, а стандарты своей спокойной поступью, учитывая интересы всех сторон — браузеров, компаний, разработчиков, постепенно внедряются.
Так же развивается CSS. Переменные из препроцессоров стали кастомными свойствами. Они стали глубже и круче. Разработчики сильно хотят вложенность? Есть спецификация. CSS развивается очень логично и правильно.
Н. М.: Мы в разговоре несколько раз затрагивали тему браузеров, ты начинал с того, что работал в Opera. И в Twitter у тебя написано, что ты эксперт Chrome. Ты входишь в это комьюнити? Можешь рассказать, что там происходит?
В. М.: Есть инициатива, которая называется Google Developer Expert. По сути, это сообщество людей, которых Google считает экспертами. Внутри есть подразделения, например, эксперты по Android, вебу, Flutter и так далее.
Мне предложили стать экспертом по вебу. Я вошёл в группу людей, которые регулярно о чём-то публично рассказывают, ведут подкасты, пишут статьи. Эти люди чуть поближе к командам, которые внедряют новые возможности в Chrome.
С ними периодически созваниваются, заранее рассказывают о технологиях, показывают, собирают фидбек. Это можно назвать ближним кругом разработчиков, с которым делятся инсайдами.
Н. М.: В последнее время инструменты разработчика различных браузеров обросли множеством возможностей для верстальщиков. Ты следишь за этим? Как это может изменить процесс обучения и разработки? Сообщество в разработке этих возможностей принимает участие?
В. М.: Ребята, которые занимаются инструментами для разработчиков, внимательно следят за их актуальностью. Они смотрят, чтобы дефолтный браузер был максимально удобным для разработчиков. Несмотря на то, что все фронтендеры разрабатывают кроссбраузерно, тестируют вёрстку в разных браузерах, у тебя есть какой-то основной браузер, которым ты пользуешься каждый день.
Конечно, разработчики браузеров хотят, чтобы их продукты был популярным не только среди обычных пользователей, но и среди разработчиков. Естественно, все хотят привлекать разработчиков возможностями DevTools. На самом деле, для этого не нужна помощь сообщества. Достаточно проводить опросы, внимательно следить за статьями и фидбеком от разработчиков. У Google Developer Experts ещё не было созвонов по поводу DevTools, но я думаю, эту тему когда-то будут обсуждать с экспертами.
В целом ребята делают всё правильно, я слежу за релизами инструментов для разработчиков. Должен сказать, что DevTools в Chrome, Firefox и Safari развиваются своими путями. Я вижу, что они конкурируют. Кто-то реализовал новую возможность первым, и разработчики видят, что этот браузер стал удобнее. Это очень интересный способ конкурировать за узкую прослойку аудитории, которая имеет мощные инструменты влияния.
Мне нравится, как Firefox выкатывает инструменты для тестирования шрифтов, гридов, доступности. А Chrome, у которого бюджеты больше, понимает, что забыл об этом. Но он начинает навёрстывать, и в ближайшие полгода или год появляются похожие реализации.
Так же поступает и Firefox: смотрит на своего главного конкурента Chrome, видит интересные инструменты и решает внедрить свои интересные решения. С Safari совсем другая история. Они работают в стиле «мы себе на уме, мы сделаем красивый интерфейс, а если внутри не будет каких-то возможностей, ничего страшного».
За этим интересно наблюдать, я вижу конкуренцию за умы разработчиков. Но всё-таки есть монополия в мире браузеров для пользователей и браузеров для разработчиков. Конечно же, основные тренды задаёт Chrome, а всем остальным приходится догонять. Поэтому нельзя говорить о полноценной конкуренции, в рамках которой браузеры обмениваются мощными репликами-решениями.
Периодически Firefox и Safari позволяют себе интересные выпады, интересные эксперименты, но не так ярко и громко, как это делает Chrome. Но в целом за этой конкуренцией интересно наблюдать, и она работает на пользу вебу в целом и разработчикам в частности.
Н. М.: Недавно вышел стандарт WCAG 3.0. Это одно из важнейших событий 2021 года в области доступности. Что он привнёс и как это повлияет на разработку новых продуктов?
В. М.: Всё не совсем так, стандарт не вышел. Это просто публичный анонс первого черновика гайдлайнов по доступности. Стандартом он станет года через три в лучшем случае. Это непростой документ, он используется как, например, международные стандарты ISO. Их используют в законодательных инициативах, когда какие-то сайты, интерфейсы должны быть доступными по закону, иначе... Тут можно получить штрафы и судебные иски.
Поэтому такие документы, в частности, WCAG 2.1.1 (текущая версия), разрабатываются долго. И из-за этого обстоятельства он немного устарел. Это главное его отличие от WCAG 3.0, черновика, который никто не воспринимает как руководство к действию. Если вам интересна эта тема, можно почитать статью «Что нового в WCAG 3.0».
Главное отличие в том, что область действия этого гайдлайна расширяется. Раньше он касался только веба, а теперь распространяется на все интерфейсы. Создатели гайдлайна хотят решить более сложную задачу: убедиться, что сайты, веб-приложения, нативные приложения и все интерфейсы в любой спинке кресла в самолёте доступны по параметрам, которые пытаются сформулировать в рамках этой спецификации.
Это очень сложная задача. Я уже видел недовольных людей в сообществе доступности. Естественно, это только начало пути, спецификация будет меняться. Но в целом задачи приятные и интересные. Там меняются критерии оценки: сейчас это A, AA, AAA, но будет бронзовый, серебряный уровень. По-моему, такие параметры. Меняется способ оценки интерфейса.
На мой взгляд, рядовому разработчику прямо сейчас не нужно бросаться и изучать WCAG 3.0. Скорее я бы рекомендовал узнать, что существует WCAG 2, почитать его. Потому что он сейчас применим, актуален и важен.
Новичкам всё ещё сложно стартовать: о рынке труда
Д. Д.: Вадим, теперь хотелось бы поговорить о рынке труда. Ждёт ли рынок труда начинающих верстальщиков? На что может рассчитывать новичок, который окончил курсы — позиция, зарплата, перспективы?
В. М.: Я не эйчар, передо мной нет списка открытых вакансий, чтобы ловко рассуждать про цены, востребованность и необходимые навыки. Здесь лучше посмотреть на исследования крупных ресурсов, которые специализируются на поиске и предложениях работы.
Могу сказать только то, что всё ещё есть сложности для новичков, им трудно стартовать. Мне регулярно пишут в личку и в чатах, что есть барьер между тем, что ты чему-то научился и начал работать.
Крупные компании и школы пытаются решать этот вопрос. Например, я знаю, что в топовых компаниях, которые обучают фронтендеров, есть эйчары, которые работают с выпускниками, пытаются помочь им правильно составить резюме, правильно подавать себя и договариваться с компаниями.
В той же самой Академии есть Лига А, в которой всех выпускников после определённого уровня ставят в очередь, и они постепенно получают опыт коммерческой разработки. Я бы не сказал, что это массовое явление, которое может помочь всем.
Нам всё ещё нужна гибкость на уровне компаний, чтобы все они принимали стажёров, интернов, приглашали людей на летнюю практику. Это нужно, чтобы не разогревался рынок, чтобы не было кадрового голода, конкуренции между компаниями, переманивания сотрудников.
Кстати, компании тоже делают буткэмпы, школы, в которые набирают условно 50 человек, из которых 10 человек устраиваются на работу в этой компании, а 40 человек уходит с каким-то опытом, приближенным к реальной разработке. Но это делают единицы: «Яндекс», Mail.Ru, X5 что-то такое анонсировал. Частенько они целятся в разработчиков уровня middle и senior.
В общем, новичкам сложновато, и у меня нет магического решения. Могу только ещё раз напомнить компаниям: берите новичков, доверяйте им, растите тех людей, которые будут делать ваши интерфейсы. Вы немного вложитесь сейчас, и у вас появятся руки, головы, преданные хорошие сотрудники, которые знают, как вы устроены изнутри.
Д. Д.: Мы очень часто сталкиваемся с вопросами о возрасте — и наш эйчар, которые работает с выпускниками, и преподаватели, и наставники. В связи с этим к тебе сразу два вопроса. Первый: у тебя тоже часто спрашивают, в каком возрасте не поздно «войти в айти»? И второй: собственно, в каком возрасте не поздно изучать вёрстку с прицелом на трудоустройство? Есть ли вообще возрастной барьер для кандидатов на рынке труда?
В. М.: Мне кажется, что физический возраст не сильно влияет на востребованность человека. Скорее влияет интеллектуальный и культурный возраст. Речь о том, насколько ты готов учиться новому, насколько ты гибок, есть ли у тебя свободное время. Потому что есть навыки обучения, адаптации к новым условиям работы, у которых есть начало и есть конец. Не в смысле жёсткого начала и конца, а в смысле подъёма и спада.
Есть чисто физиологические рамки, которые мешают людям в слишком раннем возрасте правильно организовывать своё время, правильно учиться. И в слишком позднем возрасте есть рамки, которые мешают осваивать новые технологии, тратить много времени, отвлекаясь от семьи, от решения каких-то проблем.
Но мне кажется, это не должно становится барьером, если человек готов учиться, если у него гибкое время и он готов посвятить себя новой профессии, тут никаких особых рамок нет. Просто надо попробовать. Надо не сомневаться — а получится ли у меня, достаточно ли я взрослый или не слишком ли старый, а пробовать.
Просто идти на какие-то курсы, пробовать, смотреть, читается ли, понимается ли. Есть ли базовая компьютерная грамотность, чтобы всё это понимать. Если есть, если получается, то какая разница, какого пола, цвета или возраста человек, который делает вам хорошие интерфейсы?
Другое дело, что кому-то будет сложно взлететь в профессии с верстальщика до архитектора. Естественно, быстрые карьерные взлёты — это признаки молодости и горячности. А если вам нужно найти профессию, которая приносит деньги, какая разница, сколько вам лет?
Д. Д.: Вадим, ты говоришь, что в слишком раннем и слишком позднем возрасте тяжело. Будем какие-то границы обозначать? Нам, например, один человек писал, что ему 23 года и уже поздновато учиться. А другие люди учатся в 50 лет, успешно оканчивают и устраиваются на работу. Есть какие-то реальные границы?
В. М.: Лично я начал заниматься IT поздновато. Мне было лет 18, когда начал заниматься какими-то компьютерными технологиями. До этого не было собственного компьютера. Вижу, как люди в 19 лет работают на пятой работе и знают всё, что я знаю сейчас.
То есть каких-либо границ я бы не проводил. Специально в начале подчеркнул, что есть интеллектуальный возраст. Если человек рано повзрослел, если у него был классный опыт, книги, возможность учиться IT рано, то возраст не будет помехой. То же самое с более поздним возрастом.
Обстоятельства, в которых вы находитесь, гораздо важнее физического возраста. Если у вас есть свободное время, возможность этим заниматься, у вас получается, то есть нет чисто физиологических сложностей с восприятием новой информации, учёбой, способностью сосредотачиваться, какие могут быть границы?
Только психологические. А с этим надо заглянуть к психологу, и это не шутка. Если вы понимаете, что у вас какие-то проблемы, которые не дают вам сделать важные шаги, загляните к специалисту. Он убедит вас, что с вами всё в порядке.
Д. Д: Что должен знать и уметь новичок после курсов, чтобы устроиться на работу верстальщиком?
В. М.: На самом деле, нужны очень разные верстальщики. Вижу компании, которым нужны специалисты, которые верстают под WordPress и подключают jQuery-плагины, или просто работают с Photoshop и верстают страницы. И вижу компании, которым нужно, чтобы специалист знал React, Redux и вообще был fullstack. И их называют новичками, это фантастика, конечно.
Тут сложно что-то рекомендовать кроме изучения фундаментальных вещей. Если вы знаете фундамент, то разберётесь с нюансами. Рекомендовал бы всем разобраться с уровнем абстракций ниже, чем пишут в вакансиях. Там никто не пишет, что вам нужно знать HTML и CSS, хотя без этого никуда.
Все требуют знания конкретного фреймворка, на котором компания разрабатывает, и конкретный препроцессор, на котором она пишет. Это всё надстройки над технологиями. Поэтому могу рекомендовать изучать фундаментальный технологии: HTML, CSS, JavaScript, графика, редакторы как основу, с которой можно двигаться дальше.
Не рекомендовал бы углубляться в конкретный стек, потому что компании меняются, в связи с чем вам придётся снова и снова изучать что-то новое. Понять, чем отличается статическая страница у вас на компьютере от Single Page Application, которое развёрнуто на сервере — это важно и нужно. Потрогать современные фреймворки, посмотреть, как они работают — да. Но это скорее расширение кругозора, чем идеальные знания какого-то условного React.
Представьте, что приходите на работу, а там не React, а Angular или Vue. Можно сказать, что вы ничего не понимаете. А можно разобраться в JavaScript, понять, как всё работает и двигаться дальше. Технологии приходят и уходят, а фундамент остаётся.
Наверное, здесь можно и работодателям рекомендовать смотреть на фундаментальные знания. Не пытайтесь искать идеального кандидата, лучше ищите людей, у которых есть основы и которые готовы учиться.
Д. Д.: Вадим, как ты считаешь, ребята из России, Украины, Беларуси, Казахстана и других стран постсоветского пространства востребованы на международном рынке труда? Может ли верстальщик со знанием английского языка найти работу в иностранной компании или брать заказы на Upwork и других биржах?
В. М.: Не вижу никаких принципиальных несовместимостей с международным рынком труда, кроме знания языка. Есть культурные особенности, которым нужно обучиться. В русскоязычной культуре принято несколько иначе общаться, поэтому бывают сложности, я сам с этим сталкивался.
Возможно, рабочие процессы могут отличаться. Но в целом с точки зрения стека технологий наше сообщество вполне конкурентоспособное. Регулярно вижу подтверждения этому. Многие друзья и знакомые уезжают или просто ездят поработать в другие страны. И они востребованы.
Во-первых, это особенность отрасли. В мире не так много людей, которые хорошо разбираются в IT. Во-вторых, если ты начал заниматься IT, ты востребован. Не могу сказать, что в наших просторах какая-то супер крутая школа. Мы скорее пытаемся придумать что-то на ходу. У нас индустрия образования во фронтенде начала формироваться лет 5 назад. До этого фундаментальное образование было не очень качественным, все учились на практике.
Не могу сказать, что у нас есть какая-то особая инженерная культура во фронтенде. Она есть в других отраслях. Тем не менее мы востребованы, я это вижу. Любой специалист уровня middle или senior может рассчитывать на позицию где-нибудь в Европе. С релокейтом и неплохими перспективами.
Д. Д.: А как ты относишься к фрилансу? Востребованы ли верстальщики-фрилансеры? И где лучше стартовать новичку: в компании или на бирже фриланса?
В. М.: Я никогда всерьёз не фрилансил, но моё нынешнее состояние очень близко к фрилансу, хотя я не принимаю заказы, не состою на каких-то биржах.
Мне сложно что-то советовать новичкам, тут есть полярные точки зрения. Но всё-таки поделюсь своей: лучше начинать в команде, чем индивидуально, потому что в начале карьеры нужен плотный обмен опытом.
Даже если это виртуальная команда, которая формируется для конкретного проекта на фриланс-бирже, всё равно это будет опосредованное общение, менее плотное и менее ценное для вас.
Лучше начинать в команде, где вы будете смотреть за плечо человеку, он будет ревьюить ваш код и так далее. Другое дело, что это может быть виртуальная команда, но всё-таки команда, которая работает над своим продуктом, над общими заказами в течение какого-то времени.
Потом, когда вы научитесь организовывать своё время, когда сумеете написать себе хорошее резюме, поработаете с каким-то количеством проектов, тогда сможете попробовать фриланс. Например, можно снизить нагрузку на работе и попробовать позаниматься фрилансом. Но всё-таки это не должен быть первый шаг в карьере.
Это лично мой взгляд, возможно, я не прав. Но всё-таки мне кажется, что в начале карьеры важно получить опыт от коллег — не только технический, но и командный, организационный.
Д. Д.: Что кроме вёрстки нужно прокачивать верстальщикам, чтобы оставаться востребованными специалистами и расти?
В. М.: Мне кажется, в нашей отрасли есть определённые особенности. Это не просто список «было бы хорошо, если бы вы...». Здесь скорее речь идёт о списке «если вы не делаете этого, то быстро потеряете актуальность».
В веб-разработке всё быстро развивается. Недавно в подкасте «Веб-стандарты» мы обсуждали книги, которые опубликовало одно издательство. Мы смотрим на книги по фронтенду — читать их заголовки просто смешно. Смотрим на книги по бэкенду — нормальные и актуальные книги, хотя изданы в одно время с книгами по фронтенду. Это всё объясняет.
Теперь советы. Нужно активно интересоваться тем, что происходит: новости, релизы браузеров, новые стандарты. Надо всё пробовать, щупать. То есть быть очень близко к краю развития, который всё-время растёт.
Нужно посвящать какое-то время на работе внедрению нового, посвящать какое-то личное время инновациям, чтобы оставаться актуальным. Я не говорю, что в профессии нечего делать без подобных навыков. Если вы хотите заниматься на работе работой, а дома отдыхать — вперёд, это нормально. Но чтобы повышать квалификацию, развиваться, нужно постоянно интересоваться новым.
Чуть раньше я говорил про английский язык как международный язык общения. Это очень важно, без этого сложно читать первоисточники. А на русский язык их переводят поздно. Или, к сожалению, переводят ерунду. Или поздно и плохо переводят ерунду.
Если мы говорим конкретно о вёрстке, разработке интерфейсов, здесь есть важная особенность — вы работаете на стыке дисциплин. Хотя это можно сказать про любую профессию.
Фронтендер играет интеграционную роль, поэтому для него важны т-образные навыки. Он должен крепко разбираться в программировании, понимать, как работает JavaScript, окружение, сборки, пайплайны доставки контента и так далее.
Плюс фронтендер должен разбираться в интерфейсах, чтобы пользователям его продукта было удобно, хорошо, доступно. Нужно разбираться в инструментах графики, в типографике. Поэтому поглядывайте на смежные области.
Но это не единственное условие существования в профессии, а шаги, которые можно сделать, чтобы в ней расти. Если вы доросли и хотите сфокусироваться на семье, на своём маленьком бизнесе, на том, чтобы отдыхать и путешествовать, вперёд. А шаги, которые я раньше порекомендовал, помогут вам двигаться дальше на работе.
Д. Д.: Вадим, спасибо большое за интересные ответы! Думаю, наши читатели получили очень много полезной информации.
Н. М.: Спасибо, Вадим!
В. М.: Я сам сформулировал для себя много нового. Поэтому с радостью соглашаюсь на подобные интервью. Иногда тебе задают вопрос, а ты не понимаешь, почему раньше об этом не задумывался. Или думаешь, что ты об этом думаешь, и пробуешь сформулировать. Сегодня я сформулировал несколько хороших вещей, поэтому вам тоже спасибо.