Олег — фронтенд-разработчик в крупном видеосервисе (и попутно выпускник Академии). Он только недавно начал работать, но уже согласился ответить на некоторые вопросы от подписчиков нашего комьюнити-чата в Телеграме, которым интересно, как всё устроено в реальной работе.
Передаём слово Олегу.
Какие в основном задачи дают на работе?
Таски абсолютно разные — от вёрстки чего-нибудь до написания компонентов на React. Но верстать что-то с нуля и придумывать свои стили нет необходимости, всё заточено под скорость и понимание происходящего. Навык чтения чужого кода вообще вышел на первое место.
В компаниях, которые давно стоят на ногах, есть дизайн-системы, от которых верстальщики отталкиваются, делая свою работу. Ушло довольно много времени, чтобы хотя бы въехать в систему, устройство сетки на проекте, всех миксинов и так далее.
Таска — это что-то глобальное или что-то маленькое?
Смотря какая :)
Задачу может поставить дизайнер, совсем ничего не понимающий в проекте, где необходимо залить файлики по заготовленному линку. А может прийти тимлид с такой задачей, что закопаешься запросто.
Чаще всего нужно шерстить тонны документации, чтобы начать выполнять работу, без этого никуда. И ура, документация у нас шикарная.
Дают коммитить в мастер? Если нет, то когда обещают?
Коммитить в мастер нельзя без предварительного ревью кода. Никто, абсолютно никто не может закоммитить в мастер без одобрения со стороны старших коллег.
Коммитить в мастер — не круто.
Круто — не срывать сроки, писать легко поддерживаемый код и быть молодцом.
Насколько сильно рабочие задачи отличаются от учебных проектов? В чём основные отличия?
Первое, с чем я столкнулся — огромный незнакомый проект. Это довольно сильно бьёт по срокам и заставляет долго его изучать (долго — две-три недели), а первые задачи делать практически вслепую, по документации.
Рабочий проект может быть написан 5-10 лет назад, а иногда и раньше. Кодовая база обновляется, но не всё так быстро. Встречается незнакомый синтаксис, в этом случае непонимание решается Гуглом или с помощью коллег.
Работа — это не только я и задача, которую я решаю. Есть ещё много заинтересованных людей, которые так или иначе вносят корректировки, поэтому в работе важно быть гибким.
Часто ли ставят задачи, решение которых ты сходу не можешь придумать?
В 95% случаев решение задачи неизвестно, но, скорее всего, такую задачу уже решали, и можно подсмотреть, узнать, раскопать, проследить. Бояться этого абсолютно не нужно, никто в компании не ожидает от нового сотрудника каких-то сверхзнаний или быстрого решения задачи.
Единственная валюта — горящие глаза.
Чего больше на работе, вёрстки или кодинга? То есть HTML+CSS или JavaScript?
В моём случае это очень сильный микс — есть и вёрстка, и кодинг. Наверстал, обернул логикой, встроил в проект, отдал.
Вёрстка — 30%, JavaScript — 70%
Соблюдают ли семантику в рабочих проектах?
Да, конечно. Вопрос читабельности и поддержки кода всегда актуален, поэтому семантика важна.
Какие темы стоило лучше изучать, а какие не стоило зазубривать?
Я бы точно не стал зазубривать вёрстку, а просто набил бы руку. Вёрстку важно «считывать». Падает глаз на блок, в голове готовое решение по сетке и стилям для этого блока.
Зубрить вообще странно, но если очень хочется с чего-то начать, то предложил бы основы JavaScript. Сильно никто гонять по ним не будет, но фундамент должен быть прочный.
После каких именно курсов ты нашёл работу?
Я прошёл четыре курса — два по вёрстке и два по JavaScript.
Зная о том, как выглядит реальная работа, ты бы оставил всё как есть в своем обучении, или изменил бы подход?
Да, я бы оставил всё как есть :)
Академия мне дала ровно тот базис, которые помог мне сделать тестовое задание и начать работать. Все усваивают информацию по-разному, но я точно ощущал, что дай мне чуть больше — и я захлебнусь.
Мой подход был банален, я уделял по 4-5 часов учебе через день в течение года, мои навыки оттачивались и я становился увереннее в том, что делаю, а потом и в том, что говорю.
Какие три совета по учёбе и работе ты нынешний дал бы себе в первый день обучения?
Не так всё это и страшно, бояться не надо.
Не бойтесь спрашивать и будьте открытыми к людям: так рост увеличивается в 2-3-n раз, это очень важно.
Не зазубривайте, а вникайте в суть происходящего в коде. Сначала это очень сложно, ведь в голове нет интерпретатора — она только учится. Нужно преодолеть этот барьер, чтобы читать и сразу понимать код.
Вопросы на собеседовании были сложнее реальных задач или на их уровне?
Вопросы на интервью были легче, чем реальная работа. Важно понимать, что люди, в первую очередь, нанимают людей. Сойтись духом, характером и почувствовать, что у вас есть «коннект» — 50% успеха.
Также стараются нанять людей, в которых видят потенциал (но я пока не подскажу, как его определить).
Весь тот ворох технологий в списке требований в вакансии — это реально всё нужно уметь на практике?
Да, это всё действительно нужно.
Нельзя на какой-то одной технологии разработать большой проект. Нужен список технологий. Быть экспертом в языке, понимать, как работает сборщик, откуда берет файлы, что с ними делает, куда отправляет — важно, это есть везде. Работаю со всем, что заявлено в вакансии.
Например по Gulp и Webpack ни одного вопроса не слышал ни разу, а вот про вёрстку и JavaScript — 99%, технологии действительно используются. Их нужно хотя бы чуть-чуть понимать, чтобы они не вызывали реакцию «а это ещё что такое?».
На какую примерно зарплату стоит рассчитывать джуну?
Если я не ошибаюсь, в Москве это 80—120 тыс, в зависимости от компании. В регионах, конечно, может быть меньше, но удалёнку никто не отменял.
Какой объём работы ты выполняешь за день/неделю?
В строчках кода оценить? :)
Мой рабочий день — 10-11 часов, за это время на прошлой неделе я успел сделать две рекламные интеграции на телевизоры и поучаствовать в редизайне блока цен на сайте.
Все мы когда-то начинали где-то работать, и нет ничего страшного в том, чтобы задавать вопросы. Спрашивайте (или рассказывайте) в комментариях о том, что было непонятно вам перед началом карьеры.