Reactify | Frontend Разработка
5.34K subscribers
631 photos
49 videos
39 files
246 links
Reactify - это активное Frontend сообщество для бесплатного обучения веб-разработке.

Менторство:
https://reactify.ru

YouTube канал:
https://youtube.com/@reactify-it

Записи занятий менторства:
https://t.me/reactify_community_bot

Связь:
@ruslan_kuyanets
Download Telegram
‼️ Ситуация на рынке [Читать всем]

На рынке труда большой наплыв новичков без опыта и знаний. Они откликаются на вакансии, где требуется знание React и его экосистемы, но сами владеют лишь базовыми знаниями JavaScript и только начали изучать React. Таких кандидатов составляет 60-70% из-за агрессивной рекламы курсов и популярности IT в целом.

Остальные кандидаты уже знают стек, но большинство из них также не имеют достаточной практики и знаний. Оставшиеся 5-10% – это хорошие новички с относительно высоким уровнем подготовки. Но как этим ребятам пробиться и выделиться среди тысяч кандидатов, если джуниорских вакансий всего около 5%?

⚠️ Ситуация со стороны компаний

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

Если много желающих, а ты хочешь взять лучшего, то что делать? Правильно, усложнять собеседование. Давать сложное тестовое задание, мучить джуна 1.5-2 часа на собеседовании с сложными вопросами, лайвкодингом, задачами. Несмотря на ужесточения, толпы джунов все равно идут.

Вопрос: как войти в 5% самых классных и крутых?

Столько нюансов, столько технологий и тем, очень сложный отбор. Вы буквально должны знать все. Это несправедливо. Компания еще и нос воротит, потому что даже если вы входите в 5%, всегда есть остальные 1-4%, которые вас превосходят.

Вы думаете, что на мидла просто попасть? Типа накрутил и тебя взяли? Тут еще сложнее. Видели бы вы, какой марафон проходят ребята, прежде чем накрутить опыт. Это жесткая подготовка: куча моковых собесов, групповых собесов, видео и 1000 вопросов. А еще лайвкодинг, нарешивание 50-100 задач. Это жесть. Даже на менторстве многие выгорают и не справляются, хотя ментор всегда с тобой, поддерживает, помогает и направляет.

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

А накрутка становится все популярнее. Менторство становится популярнее. Представьте, как требования будут ужесточаться. Я это вижу изнутри. Это ужас.

🆕 Новые виды трудоустройства. Помощь ментора

Требования усложняются – вводятся новые виды трудоустройства. Не просто накрутка, а прохождение собесов с ментором, который следит за собеседованием и подсказывает вам. Таким счпособом проходить собесы легче. Но представьте, что из-за этого, собеседования будут еще больше усложнять. Потому, что складывается впечатление, что собесы легкие, раз человек смог его пройти. Что сделает компания? Усложнит еще больше

#frontend #interview
Please open Telegram to view this post
VIEW IN TELEGRAM
💼 Скрининг с эйчаром и софтскиллы

Этот этап также важен: не пройдя его, вы не попадете на собеседование. Изучите, как создать хорошее продающее резюме и по гайду напишите всё необходимое. Нужно знать по резюме всё, иметь заранее готовую самопрезентацию. Она должна быть сухой, без воды, красивой, без ничего лишнего. Заученный текст, красиво описывающий ваш опыт и акцентирующий внимание на ваших заслугах и интересных задачах. Вы должны зацепить эйчара, показать свою уверенность и знания. Можно немного шутить, улыбаться, быть дружелюбным. Также говорите то, что хочет услышать эйчар. Необходимо продумать все вопросы - почему уходите с работы, что ищете в новой работе, почему хотели бы работать в их компании. Нужно показывать уверенность и легкость, непринужденное общение. Главное помните, что эйчар вам не друг, не нужно делиться с ним лишней информацией. Только по делу.

Готовимся так:

1. Изучение вопросов по софтскиллам: Найдите и изучите статьи, в которых описывается, что необходимо знать. Смотрите видео про самопрезентацию и т.д. Прорабатывайте все эти вопросы, придумывайте свои ответы и мотивацию.
2. Просмотр видео скринингов: Смотрите, как отвечают другие кандидаты. Необходимо понимать и быть готовыми. Будьте проще и увереннее, легко и непринужденно рассказывайте о себе.
3. Подготовка самопрезентации: Пропишите полное представление о себе, весь рассказ от и до на вопрос "расскажи о себе, своем опыте и проектах, на которых работал". Нужен конспект, по которому вы будете готовиться и репетировать. Так сказать, сценарий.
4. Репетиция перед зеркалом: Говорите весь наш текст вслух, имитируйте общение с эйчаром. Нужно разминать рот, тренировать речь. От того, что вы мысленно проговорите текст, лучше рассказывать вы не станете. Нужно тренировать мышцы рта и учиться отвечать. Идеально, если вы будете записывать на видео самопрезентацию и анализировать её или показывать своим коллегам. Меняйте интонацию, добавляйте улыбку, легкость и уверенность. Все это проработайте на видео.
5. Консультации и моковые скрининги: Софт интервью тоже будут полезными. Найдите кого-то, кто проведет их вам, укажет на ошибки и пробелы, а также поможет усилить самопрезентацию. Возможно, составит вам план рассказа о себе и выделит или приукрасит ваш рассказ.

#frontend #interview
🎙 Личный опыт

Моя первая работа была в аутсорс-аутстафф компании, где я был джуном и получал 25 тысяч рублей в месяц, а работал аутстаффом за 350 тысяч рублей в иностранной компании. Представьте, сколько компания заработала на мне. При этом я справлялся с 80% задач. Если возникали сложности, мой наставник помогал мне, и я как будто сам сдавал задачу. Достаточно отлаженный механизм: один наставник и пять джунов, которые пишут задачи на других проектах, а ты за ними следишь и иногда помогаешь. Джуны получают 25 тысяч, а компания – по 200-300 тысяч за аренду. Все всё понимают и всех всё устраивает, ведь задачи закрываются. Накрутка – это частая практика в компаниях.

📌 На фото моя первая работа

#interview #work
Please open Telegram to view this post
VIEW IN TELEGRAM
Подготовка к собеседованиям

Два канала для подготовки к собеседованиям. Очень полезно окружить себя теорией.

@frontend_questions - канал разработчиков YeaHub. Вопросы собеседований, тесты и задачи с лайвкодинга

@front_questions - канал коллеги. Проходит собеседования и выкладывает вопросы в свой канал.

#frontend #interview
Собеседование на позицию Мидл, вилка 150к-220к

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

Вот список вопросов для собеседования:
- Какие существуют типы данных в JavaScript?
- Что такое hoisting и как он влияет на переменные и функции?
- Каковы основные области видимости в JavaScript?
- В чем заключаются особенности работы с комплексными объектами в JavaScript?
- Какие существуют виды функций в JavaScript и их ключевые особенности?
- Что такое Promise в JavaScript и какие методы он предоставляет для работы с асинхронными операциями?
- Как работает event loop в JavaScript и какое влияние он оказывает на выполнение кода?
- Что такое TypeScript и для чего он используется в разработке?
- Что такое React и какие задачи он помогает решать?
- Как работает virtual DOM в React и как это улучшает производительность приложений?
- Что такое Redux и как он помогает управлять состоянием в приложениях на React?
- Реагируют ли все reducers на dispatch action в Redux?
- Каковы ключевые особенности классов в JavaScript и как они используются?

+ лайвкодинг (разберем позже)

Лето подошло к концу, отпуск завершился, и начинается активный поиск специалистов. Вакансий становится больше, что значительно увеличивает шансы найти подходящую работу.

#frontend #interview
🔝 Задача из Альфа Банк: Сортировка и группировка операций по дате

Позиция: Мидл/Мидл+/Сеньор

Вилка: 250к-350к

Опыт в резюме: 4 года

У вас есть массив объектов operations, представляющих операции с датами и суммами. Необходимо:

1. Отсортировать массив операций по датам.
2. Сгруппировать операции по году.
3. Представить результат в виде объекта, где ключи — это годы, а значения — массивы строк с датами в формате MM-DD, отсортированные по возрастанию.

Пример ожидаемого результата:

const result = {
"2017": [
"01-31",
"03-31",
"05-31",
"07-31",
"08-22",
"09-30",
"12-31"
],
"2018": [
"02-28",
"03-31",
"04-14",
"07-31",
"11-30"
]
};


Стартовый код:

const operations = [
{ "date": "2017-07-31", "amount": "5422" },
{ "date": "2017-03-31", "amount": "5220" },
{ "date": "2017-05-31", "amount": "5365" },
{ "date": "2017-08-22", "amount": "5451" },
{ "date": "2017-09-30", "amount": "5303" },
{ "date": "2017-01-31", "amount": "5545" },
{ "date": "2018-07-31", "amount": "5589" },
{ "date": "2018-11-30", "amount": "5567" },
{ "date": "2017-12-31", "amount": "5597" },
{ "date": "2018-03-31", "amount": "5359" },
{ "date": "2018-02-28", "amount": "5082" },
{ "date": "2018-04-14", "amount": "2567" }
];

function sortOperations(operations) {
// Ваша реализация здесь
}


#frontend #interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍 Тесты в ботах

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

Для того, чтобы совместить две части функционала, которые не планировали совмещать ранее, придётся реализовать паттерн?
- Decorator
- Adapter
- Facade
- Abstract Factory
- Executor

Как можно определить, что при загрузке страницы DOM построен?
- DOMContentLoaded
- DomLoaded
- onLoad
- onDomLoad

Можно ли передать query параметры в POST запросе?
- Да
- Нет
- Да, если не переданы в body
- Нет, если не переданы body

Имеет ли стрелочная функция свой контекст?
- Нет
- Да
- Да, если класс
- Нет, если класс

Произойдёт ли ошибка при использовании функции до (Function Declaration) её объявления?
- Нет
- Да
- Да, если класс
- Нет, если класс

Какой из данных паттернов относится к порождающим?
- Factory
- Mediator
- Command
- Adapter

Ваше мнение по поводу таких тестов?

#interview #frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
Трудоустройство: Финал.

Как я уже говорил, технические собеседования, кроме лайвкодинга, не вызывают трудностей у кандидатов, которые приукрашивают свой опыт. Но им становится сложно, когда речь заходит о проектах и процессах, которых не было. Кандидатов легко поймать на неуверенности, когда они говорят о разработке, которой не занимались. Это особенно заметно на финальных стадиях собеседования, когда происходит встреча с командой — руководителем, тимлидом или другими участниками. Они могут задавать вопросы о реальных проектах, процессах, ошибках и проблемах, с которыми вы сталкивались. Вопросы вроде "Какие баги прилетали от тестировщиков?" или "Во сколько были дейлики?" часто вводят таких кандидатов в ступор. Придумать ответы на ходу — непростая задача, и это становится заметно.

Чтобы этого избежать, нужно глубоко погружаться в реальные процессы разработки. Мои ученики перед поиском работы практикуются на YeaHub — это не пет-проект, а полноценный стартап с большой командой, лидами, тестировщиками, дизайнерами, бэкенд-разработчиками. Это не тренировочная площадка, а реальное приложение, которое мы скоро запустим. Ученики работают над задачами в условиях, таких же как и на коммерческих проектах, с чёткими процессами и взаимодействием.

Чтобы улучшить свои ответы на собеседованиях, ученики после прохождения скринингов присылают записи в наш менторский чат. Мы вместе оцениваем их ответы, корректируем и делаем разбор. Так отрабатываются вопросы по любым компаниям: Сбер, МТС, Газпром, Яндекс, Вайлдберис. Всё проходит гладко, если в вашем опыте действительно были те процессы, о которых вы говорите.

За 2-3 месяца обучения ученики проходят большой путь: учатся решать задачи самостоятельно и знакомятся с процессами разработки. Это долго, но зато они становятся специалистами, которые могут конкурировать даже с мидлами. Такой опыт позволяет претендовать на зарплату от 200к+.

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

В комментариях будут вопросы с финала моего ученика

#frontend #interview

👍 Менторство
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопросы с собеседования в Авито

Позиция: Мидл/Мидл+

Вопросы:

1. Типы данных в js перечислить.
2. В чём отличие объекта от массива?
3. Как проверить, что объект является массивом?
4. В чём отличие var, let, const?
5. Как с помощью нативного js сделать выполнение кода при клике на кнопку?
6. Какие ещё способы назначить обработчик, кроме addEventListener?
7. Фазы жизненного цикла события.
8. Что такое Ивент таргет и каррент таргет?
9. Кнопка, внутри спан, навесили листенер на кнопку, кликнули на спан. Что будет таргет, а что каррент таргет?
10. Как отменить всплытие события?
11. Как найти все элементы на странице? И что передать в селектор?
12. Как отцентртровать блочный элемент в CSS?
13. Какие CSS свойства влияют на размеры блочного элемента?
14. Что такое Корс? Зачем он нужен? Где Корс передаётся на фронт?
15. Как браузер понимает, что можно выполнять запрос или нет? По каким атрибутам запроса понимает?
16. Что такое куки? Где хранятся? Можем ли мы куки добавить через фронт? Можем ли создать куку на клиенте?

Вроде ничего сверхсложного. Кто бы смог ответить на всё это? Попасть на собеседование реально, достаточно иметь три года опыта в резюме.

А вас часто приглашают на собеседования?

#interview #work #frontend
Компания: Промсвязьбанк

Позиция: Мидл+

Вилка: 250к-300к

Задачи:
1. На вход дается массив чисел и число-сумма. Нужно вернуть true/false в зависимости от того, есть ли в массиве два числа, которые в сумме дают это число. Нужно решить со сложностью O(n)

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

3. В каком порядке выведутся консоль логи. Измениться ли порядок, если мы вызовем клик по кнопке с помощью button.click()

const container = document.querySelector('#grayContainerOne')
const button = document.querySelector('#buttonOne')

button.addEventListener('click', () => {
Promise.resolve()
.then(() => console.log('STEP 1'))

console.log('STEP 2')
})

container.addEventListener('click', () => {
console.log('STEP 3')
})


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

#interview
🖥 Задачи с собеседований по TypeScript

Напиши нативный Pick<>
Напиши нативный Omit<>
Напишите кастомный Partial<Type>
Напишите кастомный Record<Keys, Type>

🔗 Сборник заданий по TypeScript

🔗 Платформа для решения задач

#typescript #livecoding #interview
Please open Telegram to view this post
VIEW IN TELEGRAM