Почему они рекомендуют веб?

Представители Mail.Ru Group, КРОК, Яндекс, «Интаро» и Softline о перспективности направления веб-разработки для программистов.
01 сентября 2015150479Юлия Фролова9785814

Чтобы выяснить преимущества сферы веб-разработки для программистов, мы поговорили с представителями Mail.Ru Group, КРОК, Яндекс, «Интаро» и Softline. Все респоденты имеют большой опыт в веб-программировании, большинство из них занимает топовые должности в IT-компаниях.

Александр Горный, директор по информационным технологиям Mail.Ru Group:

Проникновение интернета растет каждый год. Количество времени, которое средний пользователь проводит в интернете, растет каждый год. Количество дел, которые можно теперь делать через интернет, растет каждый год. Что может быть перспективнее? 

В растущей отрасли рост ничем не ограничен, новые возможности открываются каждый день. Имена стартаперов-победителей у всех на слуху и повторять их бессмысленно. Внутри больших компаний возможности также не ограничены – большинство топов любой интернет-компании начинали карьеру программистами. Возьмем хотя бы генерального директора и основателя Mail.Ru Group Дмитрия Гришина. 

Сергей Дорогин, ведущий инженер-разработчик Департамента информационных технологий компании КРОК:

Web-платформа сейчас является основной по распространенности. Это самый простой способ получить максимальный охват по количеству возможных пользователей или клиентов. Когда-то давно, Sun Microsystems придумала слоган для Java “write once, run anywhere”, теперь то же самое можно сказать и про web-платформу. Это уже не просто сайты, а полноценные приложения, вплоть до 3D-игр. 

Важным преимуществом Web-платформы является то, что развитие технологий происходит через глобальные организации, в которые входят все заинтересованные компании. Это развитие оформляется в виде стандартов, которые не контролируются каким-то одним вендором, несмотря на конкурентную борьбу за долю рынка.

Само понятие веб-разработки за последнее время претерпело изменения. Раньше это ассоциировалось с такими технологиями как PHP, Ruby, Java, ASP и т.д. Сейчас же это в основном JavaScript и CSS/HTML. Да, back-end по-прежнему разрабатывается обычно на упомянутых технологиях. Но сейчас стало возможным реализовывать полный стек на JavaScript. Благодаря развитию возможностей браузеров все больше логики размещается на клиенте.

О популярности веб-платформы, в частности, говорит статистика используемых языков на Github. Уже несколько лет лидерство удерживает JavaScript (см. http://githut.info/, https://www.githubarchive.org/, а также исследование)

Карьерные возможности масштабны как в области web-разработки, так и в ИТ-отрасли в целом. В мире спрос на разработчиков и, в частности, специалистов по веб-платформе будет только расти. Инвестиции в свои знания – самые правильные, они не зависят от курса валюты и цены на нефть. Навыки разработчика котируются в независимости от страны нахождения при условии владения английским языком. На веб-технологиях можно построить конечное решение в любой стране мира. При желании и определенном везении можно стать хоть Марком Цукербергом, либо основать свою компанию, причем не обязательно софтверную. 

В наши дни, если приложение можно оформить как web, то это делают почти всегда. Исключениями могут быть лишь те случаи, когда система должна работать с какими-то специфическими устройствами, либо есть ограничения по производительности. Поэтому в собственных разработках ИТ-компании также ориентируются на web-технологии. КРОК здесь не исключение. К нам можно прийти с минимальными знаниями на позицию стажера и получить необходимый опыт в ходе работы на реальных проектах.

Александр Шмидт, Backend developer в Яндекс:

Разработка программного обеспечения – это в принципе перспективное направление. А конкретно web – он никуда не девается, всё больше и больше людей требуется для создания не только сайтов, но и разнообразных приложений на базе глобальной сети. С развитием мобильных платформ растёт потребность и в разработчиках мобильных приложений, но и они, в большинстве случаев, полагаются на сетевое взаимодействие с серверным программным обеспечением.

Если говорить о технической карьере (т.е., не вырастать в чистое руководство людьми), то можно углубляться в серверную разработку, доходя до создания сложных инфраструктурных систем и облачных решений для больших компаний, или же, наоборот, оттачивать мастерство фронтендера при разработке динамических веб-страниц. Я мало касаюсь этой части в последние годы, но со стороны кажется, что даже просто успевать следить за новыми стандартами и возможностями браузеров и уметь их применять – это очень дорогого стоит. Из серверной разработки можно перейти в data science – набирающее обороты направление, о котором сейчас только и разговоров.

При желании в этой сфере можно достичь очень многого. Взять, например, любую из успешных интернет-компаний: их создатели, имея навыки разработки, сами с нуля сделали свои продукты, когда к ним пришла хорошая идея (Фейсбук, Твиттер, Инстаграм). Если же говорить про чисто технические достижения (не связанные с основанием собственного бизнеса), то ещё, пожалуй, очень рано судить. "Рок-звёзд" в этой области ещё очень мало. Навскидку на ум приходит, например, Брэд Фитцпатрик – создатель ЖЖ, который для своей блог-платформы создал целый ряд технологий, теперь ставший одним из ключевых сотрудников Гугла, и принимающий участие в создании нового языка программирования - Go.

Это направление интересно потому, что почти всегда есть, куда расти: по мере углубления в область, сложность задач растёт так, что "упереться в потолок" довольно сложно. И постоянное развитие технологий тоже не даёт заскучать. 

Про свой опыт: когда-то у меня был свой музыкальный сайт, с посещаемостью до 200 тысяч посетителей в сутки - было интересно в одиночку создавать систему, которая бы это выдерживала :). Сейчас, опять же, Яндекс, где даже самые маленькие проекты всё равно подразумевают нетривиальную инфраструктуру.

Сергей Марина, руководитель отдела веб-разработки компании Softline в Таганроге:

В веб-разработке нет границ. Мы нацелены на решения различных задач пользователей, а пользователями может быть весь мир. Можно создать сайт с посещаемостью до 1 млрд человек. Можно стать «человеком мира», работая в сфере веб-разработки.

Возможностей для карьерного роста много. Если есть желание и склонность к решению больших веб-задач, можно стать тимлидером, архитектором систем, решать задачи с высокой нагрузкой. Или, к примеру, заниматься юзабилити, реализовывать удобные, эргономичные интерфейсы. Веб-разработка не ограничивается 2-3 языками, их существует множество, как и технологий для решения тех или иных задач. 

Если говорить о собственном интересном опыте, то мне запомнилось два крупных проекта. Мой первый проект – высоконагруженный интернет-магазин бытовой техники с посещаемостью порядка 50 тыс. человек в день. Нужно было не только сделать красивый и удобный интерфейс, но и решать задачи бизнеса, направленные на увеличение продаж. Мы реализовывали различные логики и сценарии покупок. В результате заказчику проекта удалось увеличить продажи сопутствующих товаров на 15-20%. 

Другой интересный проект – портал для чтения книг через мобильные устройства, персональные компьютеры и веб-браузер. Я делал систему защиты от копирования, еще одной интересной задачей была разработка и предоставление витрины как сервиса – партнеры могли с помощью Java-скриптов получить полноценный интернет-магазин книг на своих ресурсах. Услугой воспользовались более 40 партнеров. Сервис приносил прибыль не только нам, но и им. 

Ильяс Салихов, СТО в группе компаний «Интаро»:

Покупка товаров и билетов, поиск информации, оплата штрафов, заказ такси, музыка и общение, автоматизация бизнеса – я перечислил первое, что пришло на ум, а это немногое из того, что уже позволяет нам веб-среда, и то, что создано именно веб-разработчиками.

Интересных задач для программистов в этой сфере множество, наши клиенты (например, Госдума, Связной, Столплит и др.) в этом плане тоже не дают скучать, да и сами мы не стоим на месте – набирает обороты выросший внутри компании проект retailCRM.

На заре развития веб-технологии были просты и в какой-то мере примитивны. Разработчики в свое время были “людьми-оркестрами”: программировали серверную логику, верстали страницы, накручивали javascript. Сегодня найти программиста, сильного сразу в нескольких областях веб-разработки сложно, да и, пожалуй, уже неправильно. Каждая из них сильно эволюционировала и продолжает свое развитие, появляется специализация и такие позиции, как frontend-разработчики (отвечают за работу веб-проекта в браузере), backend-разработчики (отвечают за серверную реализацию веб-сервиса), разработчики баз данных, архитекторы. Это видно и по нашей компании, где когда-то единый отдел разработки эволюционировал в несколько специализированных отделов. Каждый специалист может найти интересную область и применить себя в ней. Кроме того встают отдельные вопросы масштабируемости и отказоустойчивости веб-проекта, обеспечения безопасности, работы с big data, интеграции с другими системами и мониторинга. С точки зрения профессионального роста разработчик может расти как «вширь», так и «вглубь».

Меняется и подход к разработке проектов. Если в прежние годы были популярны классические подходы разработки ПО: водопадные, спиральные модели, где проект целиком планировался и расписывался на годы, потом долго и мучительно разрабатывался, тестировался и только потом запускался, то в современное динамичное время такие сроки разработки проектов – непозволительная роскошь: к моменту запуска проект уже будет устаревшим. Сейчас применяются гибкие методологии разработки (Agile, Scrum), которые используются и у нас в Интаро. С одной стороны они позволяют быстро запускать проекты, а затем активно и итеративно его развивать, с другой стороны, быстро корректировать вектор развития, таким образом повышая шансы проекта на успех. 

У новых методологий разработки есть и еще один немаловажный плюс. Задачи, сделанные разработчиком не ожидают общего завершения проекта, а запускаются в работу сразу, как только готовы. Пользователи быстрее получают обновления, а программист видит, что результат его трудов используется, а не «пылится» в репозитории. Как правило это здорово держит в тонусе мотивацию отдельных разработчиков и команды в целом, поддерживает общий драйв проекта.

Если говорить о возможности участия в интересных проектах, то могу рассказать о нескольких кейсах из личного опыта. Например, в рамках разработки официального сайта Государственной Думы была проведена огромная работа по переработке 11 информационных систем, интеграции с 5 системами, подготовке к высоким нагрузкам и обеспечению отказоустойчивости. Отдельно решался вопрос по разработке и согласованию с 8-м центром ФСБ подсистемы информационной безопасности. Кроме того наш frontend-отдел сделал большой вклад в проект в виде подготовки мобильной версии и версии для слабовидящих. На следующих этапах был проработана тема OpenGov (открытое государство): была запущен портал публичного обсуждения законопроектов «Вече», система анализа голосований депутатов, а также запущен API поиска по законопроектам.

В свое время разрабатывали внутреннюю систему расчета и сайт для компании «Мой Ген», которая предоставляет информацию о рисках заболеваний на основе анализа ДНК. Тогда мы отдельно решали задачи оптимизации расчета и сравнения ДНК: каждая из них состоит из многих миллионов нуклеотид, поэтому попарное сравнение генерирует миллиарды и триллионы операций. В таких случаях приходится обращаться к низкоуровневым языкам: C, C++. Сейчас ситуация лучше, появляются производительные языки нового поколения (Rust, Go), которые ускоряют решение таких задач.

В настоящее время активно работаем над retailCRM (специализированная CRM для e-commerce). Проект работает на нескольких десятках серверов в 2 датацентрах. Он самостоятельно масштабируется в зависимости от нагрузки, автоматически создает новые аккаунты, удаляет неработающие, мониторит поведение клиентов в магазинах, подключенных к CRM, формирует RFM-сегментацию клиентов, производит триггерные рассылки и многое другое. Количество интеграций уже перевалило за 50 и постоянно увеличивается.

Как видно спектр задач, которые решаются при разработке более-менее крупного современного интернет-проекта, огромен и интересен. Это всегда вызов и мотивация для команды.

Тем, кто хочет стать программистом, рекомендуем профессию «Веб-разработчик».