Любой крупный сайт состоит из трех частей: фронт, бэк и база. Пользователь взаимодействует с фронтом через кнопки интерфейса, фронт отправляет запросы бэку, а тот, в свою очередь, принимает запросы, обрабатывает их, пишет в базу/читает из базы, отправляет ответ обратно. Фронт показывает ответ человеку. Примерно так работает любой интернет-ресурс. Наладить этот механизм призваны IT-разработчики. В этот раз мы совместно с ребятами из SkillFactory решили поговорить с представителем одной из наиболее востребованных сегодня профессий и узнать, как в нее попасть и что это может дать.Михаил Клименкобэкенд-разработчикстаж 6 лет
В чём заключается работа бэкенд-разработчика?
Работа бэкенд-разработчика заключается в написании логики обработки запросов. Среди «разрабов» есть шутка, что бэкенд нужен, чтобы перекладывать JSONы. JSON — это один из популярных форматов текстового сообщения. То есть рабочий день любого бэкенд-сервиса похож на день клерка: среди горы макулатуры сидит скучный человек, а на него сверху сыпятся всё новые бумаги. И ему нужно каждую из них распределить по отдельным папкам, отделам и прочему.
Разработчик бэкенда — это тот, кто пишет инструкцию для такого клерка. Например, если пришел документ, нужно:
1. Посмотреть на дату исполнения. Если дата истекла — нужно выкинуть документ.
2. Посмотреть на отдел назначения. Если это не твой отдел — поставить печать «Не тот отдел» и отправить документ обратно.
3. Обратить внимание на форму документа.
3.1 Если форма У-0236 — надо отправить в ответ форму З-1348.
И так далее.
После такого объяснения бэкенд-разработка может показаться скучной, но самое интересное начинается, когда запросов становится сотни и тысячи в секунду, а ресурсов мало. Тогда нужно запускать множество сервисов параллельно, синхронизировать их работу между собой, продумывать варианты оптимизации. И максимальное удовольствие наступает в момент, когда находится простое решение, налаживающее такой сложный процесс. Настоящий катарсис.
Где вы учились и с чего начинали свой пусть в бэкенде?
Я учился в Армавирском механико-технологическом институте на специальности «Программное обеспечение вычислительной техники и автоматизированных систем». Это небольшой провинциальный институт, но некоторые преподаватели были очень толковыми, да и в целом там было весело.
Моя первая работа была в небольшом банке, в отделе сопровождения систем интеграции. Там мы писали самодельные сервисы для поддержания консистентности (согласованности) данных в гетерогенной среде. Проще говоря, каждому новому сотруднику банка для работы требовалась учетная запись во множестве систем — в домене, на портале, в трекере задач. Так же и при увольнении, чтобы аккаунт удалялся или блокировался.
Реализовано всё было элементарно: программа запускалась по таймеру раз в 15 минут и сравнивала все записи во всех системах по очереди. То есть никакой параллельности и сложных штук не было. Но за время работы там я «пощупал» много разных баз данных (Oracle, MS SQL, MySql) — каждая со своим синтаксисом. Также научился паре золотых заповедей вроде «работает — не трогай».
Насколько реально самостоятельно научиться разработке и какой уровень будет у такого самоучки?
Если в самом начале пути у него будет опытный наставник — это даст потрясающий фундамент, так гораздо легче воспринимать новые знания. Но база — это 20 % от того, что должен знать опытный специалист.
Практикующий разработчик не может остановиться и сказать: «Я теперь всё знаю». Необходимо постоянно учиться чему-то новому. Льюис Кэрролл когда-то писал: «Чтобы оставаться на месте, нужно бежать со всех ног, а чтобы куда-то попасть — надо бежать как минимум вдвое быстрее!» Это самое точное положение дел работника IT-отрасли.
Чем отличается классическое университетское образование в сфере IT от курсов разработчиков?
На мой взгляд, это взаимодополняющие вещи. Университетское образование дает хорошую базу — курсы показывают множество практических способов применения.
Идеальным вариантом для меня было закончить хороший вуз, с 3–4 курса стажироваться в IT-компании и периодически повышать квалификацию на курсах. Еще один важный момент: с дипломом вуза иногда гораздо легче уехать работать за границу.
Но даже если у тебя нет профильного образования в IT, это не значит, что работать в этой сфере ты не сможешь. Сегодня на курсах дается похожий теоретический базис, но в более сжатом объеме, и студенты, приходящие на них с полным отсутствием знаний, получают все необходимые навыки и впоследствии умеют их применять.
В школе Skillfactory проводятся курсы по Full-stack-веб-разработке, на которых можно не только стать компетентным бэкенд-разработчиком на одном из наиболее популярных языков программирования Python, но также освоить фронтенд, закрепив мощную теоретическую базу на практической плоскости.
Подробнее о курсах
Какие качества и навыки необходимы современному бэкенд-разработчику?
Веб-разработка не rocket science (ракетостроение) — здесь совсем необязательно быть гением. Достаточно обладать аккуратностью и внимательностью.
Какой уровень востребованности у данной профессии и какие условия сейчас предлагает рынок труда для бэкенд-специалистов?
Бэкенд-разработчики могут работать там, где есть сайты и информационные системы, то есть практически везде. Для новичков, правда, всё довольно сложно устроено. Некоторые крупные компании берут студентов-стажеров и при этом даже платят какие-то деньги. Нужно быть в офисе некоторое количество часов в неделю, выполнять какие-то задачи.
Это трудно осуществить, потому что параллельно нужно учиться, но зато такой сценарий дает почти 100% вероятность попасть в штат на полный оклад после окончания учебы. К примеру, в моей компании в прошлом году на место стажера был конкурс около 140 человек.
Представим такой сценарий: ты бэкенд-разработчик на распространенном стеке (PHP, C#, Java, Go, Python), который создавал сайты друзьям, но опыта работы в организации нет. Твоя квалификация — junior (джун).
Чтобы получить должность junior backend developer, тебе может потребоваться 10–15 попыток и 2–3 месяца походов по собеседованиям. После каждого собеседования будет полезно запрашивать у компании обратную связь о результатах интервью. После — подтягивать пробелы в знаниях и идти на следующее собеседование. Зарплаты у джунов небольшие, задачи обычно не особо интересные, но им нужно набраться терпения и ответственности, получить опыт, прокачать скиллы.
Далее, предположим, ты много работал, читал книги, проходил курсы — и спустя 3 года решил сменить работу. Теперь твоя квалификация — крепкий middle (мидл). Тебя не интересует конкретная фирма — ты готов работать в офисе в любом районе города и хочешь среднюю зарплату по рынку. Я думаю, что в Москве ты выйдешь на новую работу уже через 2–3 дня.
На кандидатов с промышленным опытом работы больше пяти лет уровень востребованности очень высок. На рынке всегда дефицит квалифицированных разработчиков. Таким людям компании предлагают огромные зарплаты, жирнейший ДМС, компенсации питания, спортзалов и больничных, психолога и массажиста в штате. Корпоративным ноутбуком и гибким графиком уже никого не удивить. У некоторых ребят в офисе вообще бесплатная еда, бильярд и спальные капсулы.
Курсы в Skillfactory призваны научить качественно выполнять те функции, которые встречаются в 80 % всех задач как на штатной работе, так и на фрилансе. К тому же по окончании курсов лучшие выпускники получают возможность пройти стажировку и устроиться в штат на постоянную работу в компаниях-партнерах.
Записаться на курс веб-разработки
Деньги являются одним из главных критериев успеха, но если не опираться на них — как оценивать успешного разработчика?
С точки зрения бизнеса успешный разработчик — это тот, кто говорит: «Я решу эту задачу за Х часов» — и делает это. При этом всё работает, а то, что работало раньше, не сломалось.
Я же считаю, что успешный коллега-разработчик — тот, кто решает задачу так, что ее решение понятно, красиво, лаконично, гибко. И я могу воспользоваться этим методом для решения своих собственных задач.
Сегодня технологии меняются очень стремительно. Как в таких условиях создать продукт, который будет актуален всегда?
Постоянно его переписывать на всё более новые технологии. Только так.
Какой потолок амбиций/возможностей в самореализации в работе бэкенд-разработчиком?
У кодеров (разработчиков, пишущих код) есть стандартная «лесенка» квалификации: стажер — джун — миддл — сеньор. Больше знаний — больше денег, больше ответственности.
Если у тебя есть лидерские навыки, то можно вырасти в тимлида, если стратегическое мышление — в архитектора. Если есть желание отойти от железа и больше разобраться в бизнесе, можно стать начальником отдела-начальника или техническим директором. Люди на этих должностях уже не пишут кодов.
Многие коллеги на работе, что называется, зарабатывают деньги, а в свободное время делают проекты «для души».
В школе SkillFactory обучение ориентировано непосредственно на практику. Девятимесячные интенсивные курсы разработки направлены на то, чтобы дать студентам возможность получить актуальные знания в программировании и применить их на деле. На курсах учащиеся смогут перенять мастерство веб-разработки у опытного профессионала, получить от него помощь и поддержку и сходу начать зарабатывать деньги на создании сайтов и веб-приложений.
Записаться на курсы программирования