Собеседование наоборот: Альфа-Банк, Домклик, МойОфис, МТС / часть 2

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

В марте на Хабр Карьере проходила карьерная неделя фронтенда. Карьерная неделя — это что-то вроде дня открытых дверей, который длится всю неделю. На этот раз за специалистов боролись Альфа-БанкДомкликМойОфис и МТС.

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


Кто отвечал на вопросы

Кирилл Павлик

ведущий frontend-разработчик в Альфа-Банке

Денис Красновский

руководитель направления разработки в Домклик

Роман Животягин

руководитель группы разработки в МойОфис

Софья Жукова

ведущий рекрутер в МТС Диджитал

Инесса Костюк

ведущий рекрутер в МТС Диджитал

Алексей Охрименко

технический руководитель, IT-кластер «МТС-Медиа»


О старте карьеры и найме джунов

Насколько сложно сейчас войти в IT? Насколько высокий уровень знаний должен быть?

Кирилл Павлик: Зависит от проекта, его потребностей и сферы деятельности самой компании. В продуктовой разработке есть программы стажировок. Здесь необязателен коммерческий опыт. Но чем «круче» продукт, тем больше спрос у кандидатов в стажёры. Получается, сами кандидаты задают планку по уровню знаний.

Аутсорсеры, по сути, перепродают разработчиков, поэтому могут заложить какое-то время и средства на закрытие пробелов нового сотрудника. Главное, зарекомендовать себя своими усвоенными знаниями и их качеством.

Денис Красновский: Для того чтобы войти в IT, нужны базовые знания: css, html, js и, например, любой фреймворк или библиотека React, что душе ближе. Также помогает опрятность, дружелюбие и желание работать.

Роман Животягин: Сегодня обилие курсов и программ обучения, при желании всегда можно найти работу джуном. Для джунов обычно требования не очень высокие, надо иметь базовые представления о том, чем вы начали и планируете заниматься, ну и хотя бы какой-то минимальный опыт, например свой домашний проект. IT — широкое понятие, здесь не только разработчики, но и дизайнеры, тестировщики, DevOps-инженеры, аналитики и много других направлений деятельности. Главное — заниматься тем, что нравится.

МТС: К сожалению, довольно сложно. Будьте к этому готовы.

Как вы относитесь к тому, что джун будет работать удаленно, а не в офисе?

Кирилл Павлик: Для команды важно вовлечение. Если расстояние между коллегами незаметно в процессе работы, то формат взаимодействия не важен. Но нужно учитывать процесс адаптации. Заочно он проходит сложнее.

Денис Красновский: Для того чтобы войти в IT, нужны базовые знания: css, html, js и, например, любой фреймворк или библиотека React, что душе ближе. Также помогает опрятность, дружелюбие и желание работать.

Роман Животягин: Мы придерживаемся точки зрения, что гибридный формат работы наиболее оптимален. 

МТС: Мы положительно относимся к удаленной работе для джунов, так как она может быть эффективной при наличии хорошей коммуникации и поддержки со стороны опытных коллег. Однако для максимальной эффективности стажерам и джунам может потребоваться некоторое время адаптации к новому формату работы и активное взаимодействие с командой.

Стоит ли junior-frontend разработчику изучать бэкенд для полного понимания процессов, происходящих в проекте?

Кирилл Павлик: Зная основные понятия и принципы, будет проще изъясняться с коллегами. Сами технологии бэкенда тоже будут подспорьем, но уже опционально.

Денис Красновский: Junior-frontend разработчику стоит прокачивать навыки до senior-frontend разработчика, а после уже смотреть на другие стеки.

Роман Животягин: Да, однозначно.

МТС: Да, изучение бэкенда может быть полезным для junior-frontend разработчиков, так как это поможет:

  1. Лучше понять общую архитектуру проекта и взаимодействие между клиентской и серверной частями.

  2. Облегчить коммуникацию с бэкенд-разработчиками и позволит быстрее решать возникающие проблемы.

  3. Расширить навыки и возможности для участия в различных проектах и улучшения карьерного роста.

Однако стоит учесть, что изучение бэкенда может занять много времени и усилий, поэтому рекомендуется сначала освоить фронтенд-разработку и закрепить навыки, а затем постепенно изучать серверную часть.

Есть ли стажёрские программы на направление фронтенд?


Кирилл Павлик: Будут в мае.

Денис Красновский: У нас раньше были, на текущий момент нет.

Роман Животягин: В нашей компании я о таких не слышал, однако у нас развита практика менторства: каждый новый сотрудник всегда получает наставника, помогающего ему освоиться.

МТС: Да, вакансии периодически обновляются. Их можно смотреть на нашем сайте.

Почему в тестах на стажировку/джуна любят задавать вопросы на знание специфических методов и тегов, а не то, что может действительно встретиться в работе джуна? Как к этому подготовиться?

Кирилл Павлик: Собеседование — проверка кандидата на соответствие не только по уровню знаний, но и по софтовым качествам. Возможно, вопрос задавался с целью посмотреть на реакцию кандидата, как он поведёт себя в тупиковой ситуации. А возможно, такое действительно встречается в проекте и важно выяснить, какие у джуна есть пробелы на данный момент, сколько времени понадобится на их закрытие. Лучшая подготовка — сами собеседования. Можно смотреть записи на ютубе, но лучше всего это собственный опыт. Не стесняйся идти на собеседование. У всех разное отношение к собственным знаниям. У проектов — разные требования. Вдруг именно тебя им сейчас не хватает?

Денис Красновский: Вам задали вопрос, на который вы не смогли ответить;

  1. Запомните вопрос;

  2. Изучите материал, чтобы в следующий раз на него ответить;

  3. Идите снова на собеседование, специфические вопросы рано или поздно закончатся.

Роман Животягин: Думаю, это связано с проверкой опыта. Если человек, будучи джуном, не сталкивался или даже не слышал, например, про методы массива reduce или map, то, возможно, это совсем начинающий джун. Хотя, опять же, это индивидуально и зависит от опыта. На мой взгляд, более важным является базовое понимание языка программирования. Подготовиться — читать учебники и практиковаться, желательно на реальных задачах. 

МТС: Это нужно, чтобы понять, насколько ты глубоко погружался в тему, насколько не боишься нестандартно мыслить. Конечно, это помогает в первую очередь понять ход мысли при появление сложных задач. Как подготовиться? Глубоко погружаться в теорию разработки и обладать нескончаемым любопытством.

Являются ли проекты из научной деятельности и хакатоны аналогом коммерческой разработки?

Кирилл Павлик: Почему бы и нет? Главное, чтобы их можно было заранее посмотреть и оценить опыт кандидата, сложность решённых задач.

Денис Красновский: Больше нет, чем да. Хочу отметить, что всем известные курсы повышения квалификации так же не являются аналогом коммерческой разработки.

Роман Животягин: Мне кажется, нет, не совсем. Основная задача коммерческой деятельности — получение прибыли. А научная деятельность и хакатоны — это некий предварительный этап, научная деятельность в итоге часто выливается в коммерциализацию, например, открытие новых веществ, или физических законов, которые упрощают жизнь людям, но, на мой взгляд, в науке и хакатонах всё же больше творчества и вдохновения.

МТС: Это явно преимущество перед другими кандидатами, но аналогом коммерческой разработки это не является. В хакатоне или научной работе у тебя нет заказчиков и финансовой ответственности, в коммерции больше ограничений, в том числе продуктовых требований.

Существует ли негласная дискриминация по возрасту кандидатов?

Кирилл Павлик: Перед собеседованием, обращаем внимание на возраст, как на один из факторов. Кто-то в 21 претендует на сеньора. Кто-то в 40 — на джуна.

Подход разный к таким кандидатам, но если резюме попадает в ожидаемую вилку по скилам, то разговариваем со всеми.

Денис Красновский: В нашей компании такого нет, по крайней мере я такого не замечал.

Роман Животягин: Нет, во всяком случае, я об этом не слышал. Хотя, конечно, в IT в целом есть некоторая корреляция между возрастом и родом деятельности. Например, многие современные разработчики в среднем значительно моложе, чем 10-15 лет назад. Думаю, это связано с современной популярностью IT-сферы. Однако в моей практике собеседований встречались отличные кандидаты «за 40» и явно не дотягивающие даже до уровня джуна недавние студенты. 

Алексей Охрименко: Если кандидат обладает актуальными навыками и опытом, а также готов учиться и развиваться, возраст не является препятствием для трудоустройства и карьерного роста.

О технологиях

Что думаете про влияние ИИ на веб-разработку? Что думаете насчёт создания ИИ на js и в частности, Tensor flow?

Кирилл Павлик: Не ощутил влияния настолько, что даже не знаю, что такое Tensor flow.

Роман Животягин: ИИ — крутая штука, которая не является интеллектом как таковым, в понимании «интеллект человека». ИИ в настоящий момент уже используется как помощник разработчика (ChatGPT, Copilot). Про Tensor flow только читал, не работал, но думаю, что в ближайшее время нас ждёт серьёзное изменение ландшафта разработки.

Алексей Охрименко: ИИ уже оказывает влияние на веб-разработку, помогая автоматизировать процессы, улучшать пользовательский опыт и создавать инновационные продукты. Использование JavaScript для создания ИИ, в частности с помощью TensorFlow.js, является интересным и перспективным подходом, поскольку JavaScript — один из самых популярных языков программирования и имеет широкую экосистему.

Имеет ли смысл писать фронтенд на Vanilla Typescript, без использования фреймворков?

Кирилл Павлик: Почему бы и нет? Написать всё самостоятельно — отличный путь, чтобы убедиться в отсутствии магии, а заодно понять, как всё работает внутри.

Денис Красновский: Если ваш продукт настолько простой, что вам не нужен фреймворк, то и typescript вам там тоже не нужен. Можно использовать шаблонизатор + ванильный js. В ином случае лучше сразу упаковаться в любой фреймворк, чтобы иметь возможность расширять тяжелой функциональностью ваш продукт.

Роман Животягин: Зависит от задачи, если это какой-то проект, требующий высокой безопасности и отсутствия сторонних зависимостей, то, думаю, да.

Алексей Охрименко: Писать фронтенд на Vanilla TypeScript без фреймворков имеет смысл в случаях, когда проект небольшой и не требует сложной архитектуры или когда требуется максимальная производительность и контроль над кодом. Однако для больших и сложных проектов использование фреймворков может существенно упростить разработку и обеспечить лучшие практики.

Что думаете на счет solidjs и его перспектив?

Кирилл Павлик: Попробовал бы в небольших проектах, не предусматривающих долгой поддержки. Для меня SolidJS — аналог Preact. Синтаксис плюс-минус тот же. Занять свою нишу SolidJS поможет пуш со стороны кого-то из гигантов в ближайшее время. Если оно им, конечно, нужно.

Алексей Охрименко: SolidJS — это относительно новый фреймворк. Он имеет потенциал стать популярным, но пока мне еще не удалось его изучить или поработать.

Легаси в моде?

Кирилл Павлик: За полгода обучения на одном курсе для фронтендеров я увидел, как одна версия популярной технологии в начале курса была в RC версии, а к концу — стала deprecated. Так что, легаси — неотъемлемая часть долгоживущего проекта. Нужно следить за балансом, как work/life.

Роман Животягин: Где-то да. Но по опыту собеседований могу сказать, что большая часть кандидатов всё же хочет современный стек. Хотя лично я люблю легаси.

Алексей Охрименко: Легаси-технологии не всегда считаются модными, но они часто используются в корпоративных и крупных проектах из-за существующей инфраструктуры и затрат на миграцию. Работа с легаси-системами может быть ценным опытом, так как это позволяет разработчикам учиться на примере старых решений и применять лучшие практики для современных разработок.

Зачем так много библиотек, фреймворков и нетрадиционного стека?

Кирилл Павлик: Разные задачи, разные команды, разное время. Какой-то проект стартанул сразу на функциональных компонентах реакта (или на третьем вью), а другой начался ещё в конце нулевых и вынужден поддерживать в проде высоконагруженное приложение, где теперь без зоопарка никуда.

Роман Животягин: На этот вопрос сложно ответить. Думаю, ни у кого никогда не было цели создать множество библиотек и фреймворков. Разработка — это мир свободы, люди решают задачи, оформляют их в виде кода и безвозмездно делятся с другими. По-моему, это прекрасно.

Алексей Охрименко: Большое количество библиотек, фреймворков и нетрадиционных стеков связано с быстрым развитием веб-технологий и разнообразием задач, стоящих перед разработчиками. Они предоставляют различные подходы и инструменты для решения определенных проблем, что позволяет разработчикам выбирать подходящие для их проектов и предпочтений. 

Какой технологический стек выбран у вас в компании и почему именно он?

Кирилл Павлик: У нас простой стек: TS, React, Redux Toolkit, postCSS и свой UI-kit.

Денис Красновский: react, redux, saga/thunk, react-router, sass, typescript, nodejs, express, webpack, rollup. Годами проверенный стек и большое комьюнити.

Роман Животягин: В МойОфис множество продуктов и, соответственно, нет единого технологического стека. Могу сказать, что в нашем фронтенд-сегменте проекта Mailion мы поддерживаем в настоящий момент 2 стека: Polymer 2.0 и React/TypeScript. Это связано с тем, что, как я упоминал ранее, мы пошли по пути гибридного приложения и микрофронтендов.

Алексей Охрименко: У нас Angular. Несколько причин почему он:

    1) Зрелость и стабильность: Angular — это зрелый и хорошо поддерживаемый фреймворк, разработанный и поддерживаемый Google. Это может обеспечить стабильность и долгосрочную поддержку для ваших проектов.

    2) Охват функциональности: Angular предлагает широкий спектр инструментов и возможностей из коробки, таких как двусторонняя связь данных, зависимости, и модульность. Это может упростить разработку и ускорить процесс создания приложений.

    3) Поддержка TypeScript: Angular полностью интегрирован с TypeScript, что позволяет разработчикам использовать строгую типизацию и современные возможности языка для написания более безопасного и поддерживаемого кода.

    4) Интеграция с другими инструментами и сервисами: Angular хорошо интегрируется с различными библиотеками и инструментами, что может быть полезно для комплексных проектов и расширения возможностей приложения.

    5) Широкое сообщество и ресурсы: Angular имеет большое и активное сообщество разработчиков, а также множество обучающих материалов и ресурсов, которые могут помочь вашей команде быстрее освоить технологию и решать возникающие проблемы.

    Эти факторы могут объяснить выбор Angular для нашей компании, хотя выбор технологического стека зависит от специфических требований, целей и предпочтений команды.

Больше технический вопрос: компании крупные и скорее всего используют микрофронтенды. Собственно, вопрос: как в своих проектах они шарят стор для микрофронтов?

Кирилл Павлик: У нас довольно сложная инфраструктура. Фронт не ходит напрямую в бэк. Есть прослойка, которую мы называем «мидл». Это нам помогает обходиться изолированными приложениями. Каждому микрофронту достаточно своего стора. Некоторые приложения даже обходятся без стора вообще.

Денис Красновский: Мы не используем, у нас разные команды занимаются разными приложениями.

Роман Животягин: Думаю, все по-разному, но какой-то проблемы здесь не вижу. Во-первых, не всегда нужен шареный стор. Во-вторых, стором может выступать просто объект в глобальной области видимости. Для взаимодействия микрофронтендов можно реализовать некий «мост» обмена данными.

Алексей Охрименко: На моей практике для микрофронтендной архитектуры стараются избегать общего стора для приложений. Обычно синхронизация происходит через бэкенд. Зачастую это связано с тем, что наличие глобального стора приводит к связанности, от которой люди стараются уйти, переходя на микрофронтенды.

Что почитать

Список книг, ссылок, статей, подкастов, курсов и всего остального, что обязательно нужно прочитать фронтендеру.

Денис Красновский
  1. JavaScript: сильные стороны | Дуглас Крокфорд;

  2. Секреты CSS.Идеальные решения ежедневных задач | Леа Веру;

  3. Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих | Бхаргава Адитья;

  4. Посмотреть и послушать.

Роман Животягин
  • Современный учебник по JS — learn.javascript.ru;

  • Д. Фленаган “JavaScript. Полное руководство”;

  • Алгоритмы: построение и анализ;

  • Ресурс MDN;

  • Замечательный ресурс по HTML/CSS — htmlbook.ru.

МТС
  • "You Don't Know JS" (серия книг) от Kyle Simpson
    Ссылка на GitHub.

  • "Eloquent JavaScript" от Marijn Haverbeke
    Онлайн-версия

Подкасты:

  • Web-Standarts
    Официальный сайт

  • Syntax - Tasty Web Development Treats
    Официальный сайт

  • Front End Happy Hour
    Официальный сайт

Статьи:

  • "How browsers work"
    Ссылка на статью

  • "A Complete Guide to Flexbox"
    Ссылка на статью

  • "A Complete Guide to Grid"
    Ссылка на статью

  • "Frontend Developer Roadmap"
    Ссылка на статью

Источник: https://habr.com/ru/companies/habr_career/articles/731190/


Интересные статьи

Интересные статьи

Создание композиции для нескольких ударных инструментов.Комикс в скриншотах, о том, как стать композитором, создавая музыку для ударных инструментовБольшинство нотных редакторов, сходно по внутреннему...
Функционал раций покрывает все нужды в своей нише, но, учитывая, что мобильный телефон всегда под рукой, хотелось бы попробовать сочетать утилитарность раций и удобство смартфона. Даже возможность пер...
После несерьёзной статьи на серьёзную тему Job Safety Driven Development стоит рассказать о том, почему даже опытные и добросовестные программисты волей случая могут попадать в схожие ситуац...
Разработка инструментария – очень познавательное занятие, потому что заставляется задуматься над теми вещами, которые в процессе разработки иногда не замечаешь. Казалось бы, создание @Id атрибута в JP...
Это первая часть серии руководств «Разработка игр с помощью Pygame». Она предназначена для программистов начального и среднего уровней, которые заинтересованы в создании игр и улучшении собственных на...