В 13 лет Сергей Чикуëнок сделал первый сайт, а после школы рванул из белорусской провинции в Москву, где устроился в студию Артемия Лебедева. В статье из цикла материалов о сетевых профессиях он уже в роли ведущего веб-разработчика «Одноклассников» рассказывает Onliner.by о философии MacOS, верстальщиках, настоящих разработчиках и превращении сайтов в мини-приложения.
Сергей связан с веб-разработкой более 20 лет. Свой первый сайт он написал в 1997 году в возрасте 13 лет, живя в маленьком городке Белоозерске Брестской области. Парень сделал HTML-сайт для компании, торговавшей минеральной водой, на домашнем компьютере Pentium 120 с 16 МБ оперативной памяти.
— Так получилось, что первый свой сайт я сделал даже ни разу не побывав в интернете. Отец мне как-то рассказал про парня из новостей, который в США делал сайты для компаний. Его никто не видел и лично не знал, платили удаленно десятки тысяч долларов за проект. Оказалось, что ему что-то около 17 лет. Для меня, как паренька из маленького городка, это была какая-то запредельная сумма. Отец купил мне диск «100 и 1 программа для создания Web-сайтов». Веб-разработку я начал изучать именно с документации, руководств и справочников к этим программам.
Ведущий веб-разработчик «Одноклассников» никогда не заканчивал профильного вуза. Какое-то время учился удаленно по специальности «Информационные технологии в экономике», но там преподавали больше экономику, чем программирование. А потому курс был заброшен, так как не давал каких-то прикладных знаний. Еще будучи школьником Сергей устроился в минскую компанию по пошиву одежды на свою первую удаленную работу, связанную с веб-разработкой. Позже трудился на московскую студию и сразу после окончания школы отправился в столицу России.
— В принципе, я самоучка. Для решения моих задач мне нужны были прикладные знания. Стал изучать разные языки программирования, разные подходы к программированию. Со временем появился опыт разработки на Java и Swift. Теперь я называю себя в большей степени веб-программистом. Разбираюсь в разработке серверных частей, devops, приложений, занимаюсь разработкой инструментов для сборки и оптимизации сайтов.
— Изучение новых инструментов было вызвано производственными задачами или скорее природным любопытством?
— Эти инструменты я постигал во многом благодаря увлечению и разработке opensource-проектов. На них я получил 80% моих сегодняшних знаний, за которые мне платят и за которые я приобрел определенный статус. Эти проекты вынуждали изучать новые подходы, инструменты и языки.
Стаж профессиональной работы в вебе у Сергея насчитывает уже 20 лет. 33-летний разработчик замечает некую цикличность в развитии как технологий, так и трендов.
— История движется по спирали. Давным-давно я писал статьи об оптимизации графики, а мне пеняли, мол, «глупо тратить на это усилия, ведь у нас есть „толстый“ интернет и мощные компьютеры, которые все с легкостью „переваривают“». В этот момент как раз случился переход на мобайл, когда мы получили медленный интернет и слабые карманные компьютеры в виде первых смартфонов. И все эти проблемы снова актуализировались.
Сейчас мобильники стали мощными, но оптимизация по-прежнему актуальна. С учетом всего современного инструментария, которым пользуются ремесленники-разработчики, мы все равно получаем «тяжелые» сайты. И снова приходится думать, как заставить наш сайт, на котором появилось 2 МБ JavaScript, хоть как-то работать на флагманском Android.
— Как поменялась профессия веб-разработчика за годы перехода от веба 1.0 до мобильного интернета?
— Принципиальное различие в разработке заключается в том, что мы получили много классных инструментов для подготовки кода для веба. Благодаря этому меняется парадигма разработки. Раньше приходилось помнить про различия браузеров, тащить весь код, который обеспечивает одинаковую работу сайта, сразу на все браузеры, даже если он там не нужен. Сейчас это делается автоматически. Браузеры стали более похожими по возможностям. Нет таких диких проблем, которые были с Internet Explorer лет 10 назад.
Мы можем писать компактный и эффективный код и затем превращать его в специализированные сборки, нацеленные на конкретную категорию пользователей, браузер, среду исполнения. Раньше не было Node.js и все писали JavaScript под браузер. Сейчас пишут более абстрактные модули, которые могут работать и в браузере, и на сервере.
— Сейчас мы переживаем эру Mobile First, когда большинство пользователей выходит в интернет со смартфона и разработчики делают сайты легковесными и оптимизированными под плохое соединение. Какие тренды вытекают из этого подхода?
— Относительно недавно мобильная платформа стала популярнее в вебе, чем десктоп. Вокруг этого теперь крутятся разные подходы к разработке. Тот же Google пропагандирует Progressive Web Apps — приложения, написанные на веб-технологиях и способные работать в офлайне. Сами браузеры меняются под это, позволяя эффективно хранить и исполнять код, устанавливать эти мини-сайты-приложения на рабочий стол. Из этого вытекает и основной тренд — переход в мобильные устройства, когда сами сайты становятся мини-приложениями.
Говорить о том, что веб-разработчики отвечают только за лицо сайта, можно было лет 5—10 назад. Тогда интерфейсы были относительно простыми, вся логика происходила в бэкэнде, а интерфейс просто предоставлял формочку для ввода данных и получения результата от сервера.
Но сейчас появляются «толстые» клиенты — когда много логики выполняется непосредственно на пользовательском устройстве. И тут для качественной работы нужны другие решения и подходы, причем даже для типовых задач. Ведь среда исполнения этого мини-приложения непредсказуема. На бэкэнде ты всегда знаешь и контролируешь, на чем запускаешь код. Если сервер не справляется, его легко проапгрейдить. С клиентом это невозможно. Ты не знаешь, кто и чем пользуется. А потому приходится делать низкоуровневые оптимизации.
Лично мне приходится писать код, оптимизируя его под работу JIT-компиляторов. На сегодняшний момент сложность фронтэнд-разработки многократно увеличилась.
— Получается, сегодня глупо называть веб-разработчика банальным словом «верстальщик»? Того надменного отношения программистов к вебу, как лет 10 назад, уже не осталось?
— Я никогда не замечал к себе какого-то надменного или снисходительного отношения со стороны программистов, потому что мог продемонстрировать, какого рода задачи я могу решать. Не просто сверстать страничку на декоративном языке HTML и CSS, а оптимизировать ее под медленную среду исполнения. Это требует алгоритмического мышления, серьезных знаний каких-то структур, проектирования и подходов.
— Тебе довелось поработать в студии Артемия Лебедева. Насколько отличалась философия разработки и сложность проектов от не таких раскрученных в интернете компаний?
— Там очень много внимания уделялось интерфейсу сайта и тому, как с ним работает пользователь. Для него все должно было быть простым и понятным. Там не считают пользователя каким-то интернет-специалистом, который понимает, какие данные вводить и почему что-то может пойти не так.
В студии разрабатывали сложные в плане реализации, но простые с пользовательской точки зрения интерфейсы. И необходимо было учитывать вариативность интерфейсов в зависимости от поведения юзера. Это очень сильно повлияло на меня как на специалиста: стал больше внимания уделять деталям с точки зрения пользователя.
После работы в студии Лебедева удалось поработать в стартапе. Там я также сильно переосмыслил свой опыт. В студии не важно, что произойдет с проектом дальше: сдали, закрыли актами выполненных работ и забыли. У стартапа же с этого момента все только начинается — на реальном проекте необходимо отслеживать поведение юзеров. Находят ли они необходимые данные, почему не попадают на целевую страницу. Все это нуждается в обмерке, все это надо применять в дальнейшей разработке и с утроенной силой дорабатывать, ведь всего на старте не учтешь. А некачественное решение может привести к потере денег или провалу проекта.
— Там же, в студии Лебедева, ты пересел с Windows на Mac. Чем это было продиктовано?
— Как и все, я сперва работал на Windows, какое-то время — на Linux. В студии Лебедева заметил, что многие разработчики сидят за «маками». У меня тогда еще было странное предубеждение относительно платформы — думал, что ею в основном пользуются дизайнеры. А потому пробовать не торопился.
Однажды я демонстрировал Теме Лебедеву свои эксперименты с полем ввода даты на сайте. Он мне доходчиво объяснил, почему это фигня и почему никто без руководства не поймет, как этим пользоваться. Тема показал мне, как на Mac можно поменять время, банально перетащив стрелку аналоговых часов на экране. Дело в том, что в интерфейсе продуктов Apple очень много внимания уделяется различным мелочам и метафорам из реальной жизни. И эти мелочи очень часто производят довольно приятные впечатления, хоть и не всегда реально нужны и далеко не каждый сможет догадаться, что такие мелочи есть. Часто знакомство с этими мелочами происходит интуитивно и оставляет очень приятное впечатление.
На меня это произвело большое впечатление, и я решил попробовать Mac, чтобы понимать ценность своих идей и разработок. Так я осознал, что простота не в том, чтобы завернуть кучу функционала в компактную коробочку, а в том, чтобы юзеру было просто пользоваться инструментом.
Начинающим разработчикам я даю совет поменьше быть программистом, который сосредотачивается на процессе, а не на конечном результате. Такие специалисты используют какие-то инструменты, подходы и паттерны без осознания того факта, для кого они это делают и кто этим будет пользоваться. Для меня Mac стал не просто удобной платформой с UNIX-подобным ядром, где работают многие «линуксовые» инструменты. Он научил меня тому, на что стоит обращать внимание при работе.
— Говоря о молодых разработчиках, мог бы отметить, какая специализация в веб-разработке сейчас более востребована?
— По специализации можно выделить бэкэнд- и фронтэнд-разработчиков, а также full-stack, который умеет делать все. Могу точно сказать, что всегда востребованы качественные специалисты. Сейчас много так называемых спецов, которые знают что-то по верхам, но совершенно не разбираются в среде, в которой они работают. Как говорится, «один плохой программист с легкостью создает два новых рабочих места». И это проблема не только веб-разработки, но и всей IT-индустрии.
Если перенестись на лет 10—20 назад, то разработкой занимались только очень квалифицированные кадры, которые понимали, как все устроено. У них не было качественных, простых и доступных инструментов. Сегодня у нас огромное количество таких инструментов, позволяющих решать большое количество задач. В плане развития технологий это здорово. Плохо же то, что некоторые получают навыки работы с упрощенными инструментами и готовы называть себя программистами, претендовать на серьезные должности.
Моноблоки в каталоге Onliner.by
Читайте также:
Перепечатка текста и фотографий Onliner.by запрещена без разрешения редакции. nak@onliner.by