В этом видео мы разберем 5 типичных задач по JavaScript, которые могут встретиться на собеседовании на фронтенд-разработчика!
- Задача на строки, методы и циклы
- Задача на строки, циклы и условия
- Задача на колбек, массивы, прототип и циклы
- Задача на объекты, массивы, графы и цепочки
- Задача на промисы, замыкания и асинхронность
Видео уже на канале!
Я не оставляю ссылку, так как видео лучше продвигается, если заходить на него напрямую с YouTube. Это помогает улучшить его рейтинг и увеличить шансы на органическое продвижение.
#frontend #javanoscript #функции
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤5👍5
Как и обещал в видео, предоставляю задачи с собеседований
1. Реализуйте полифил myFilter точно копирующий filter метод
Array.prototype.myFilter = function(callback) {
};
const arr = [1, 2, 3, 4, 5];
const filteredArr = arr.myFilter(x => x > 2);
console.log(filteredArr); // [3, 4, 5]2. Найти все индексы начала вхождения анаграмм подстроки в строке
function searchAllAnagramsInString(str, substr) {
}
// Пример использования:
console.log(searchAllAnagramsInString("cbaebabacd", "abc")); // [0, 6]3. Найти самый загруженный день в отеле
function findMaxDayWithClients(bookings) {
// Реализуйте логику поиска самого загруженного дня
}
findMaxDayWithClients([[1, 5], [2, 4], [3, 6]]); // 3
// В день 3 отель был максимально загружен (3 клиента)4. Представим, что у нас нет встроенных промис-комбинаторов, как можно реплицировать функциональность Promise.all?
function customPromiseAll(promises) {
}
// Пример использования
const promise1 = Promise.resolve(3);
const promise2 = Promise.resolve(42);
const promise3 = new Promise((resolve) => setTimeout(resolve, 100, 'foo'));
customPromiseAll([promise1, promise2, promise3])
.then(results => console.log(results)) // [3, 42, 'foo']
.catch(error => console.error(error));
5. Необходимо сгруппировать транзакции по userID.
const transactions = [
{ userID: "user1", amount: 200, date: "2023-01-01" },
{ userID: "user2", amount: 500, date: "2023-01-02" },
{ userID: "user1", amount: 300, date: "2023-01-03" },
{ userID: "user3", amount: 400, date: "2023-01-01" },
{ userID: "user2", amount: 150, date: "2023-01-04" },
{ userID: "user3", amount: 250, date: "2023-01-02" },
{ userID: "user4", amount: 100, date: "2023-01-01" }
];
function topThreeUsersByTotalAmount(transactions) {
//тут
}
#javanoscript #лайвкодинг
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍6🤝3😁1
Forwarded from YeaHub
YeaHub – 1 год! 🎉
30 января 2024 года я собрал команду из сообщества Reactify, и вместе мы придумали название нашего проекта, заложив тем самым его первое упоминание.
За этот год мы сделали меньше, чем хотелось бы, но уже имеем работающую платформу и экосистему каналов по различным IT-направлениям. Планы у нас грандиозные — впереди множество полезных сервисов для IT-специалистов.
Проект прошел через четыре стадии распада, но выстоял, и мы все-таки запустили платформу в открытый доступ.
На данный момент:
🔹 2000 пользователей посещают платформу еженедельно
🔹 500 зарегистрированных пользователей
И это только начало! Активное продвижение YeaHub стартовало лишь в январе.
Пусть 2025 год станет прорывным для всех нас! 🚀
https://news.1rj.ru/str/reactify_IT/693
30 января 2024 года я собрал команду из сообщества Reactify, и вместе мы придумали название нашего проекта, заложив тем самым его первое упоминание.
За этот год мы сделали меньше, чем хотелось бы, но уже имеем работающую платформу и экосистему каналов по различным IT-направлениям. Планы у нас грандиозные — впереди множество полезных сервисов для IT-специалистов.
Проект прошел через четыре стадии распада, но выстоял, и мы все-таки запустили платформу в открытый доступ.
На данный момент:
🔹 2000 пользователей посещают платформу еженедельно
🔹 500 зарегистрированных пользователей
И это только начало! Активное продвижение YeaHub стартовало лишь в январе.
Пусть 2025 год станет прорывным для всех нас! 🚀
https://news.1rj.ru/str/reactify_IT/693
Telegram
Reactify | Frontend Разработка
YeaHub
Сегодня мы придумали название для нашей платформы YeaHub. Я уже купил домен💪
Yea: Это слово ассоциируется с утверждением, согласием и позитивом. Оно звучит энергично и оптимистично, что может привлечь внимание и создать позитивное первое впечатление.…
Сегодня мы придумали название для нашей платформы YeaHub. Я уже купил домен💪
Yea: Это слово ассоциируется с утверждением, согласием и позитивом. Оно звучит энергично и оптимистично, что может привлечь внимание и создать позитивное первое впечатление.…
🔥20❤7👍5
Два этапа тех собесов с задачами и вопросами. Вопросы были разнообразные: http, cors, browser и тд.
1. Переписать функцию с помощью async/await
getJson('json/1')
.then(json => {
if(json.key) {
return getJson('json/2')
}
throw new Error('No key')
})
.then(json => {
return json.key2
})
.catch(e => {
console.log(e)
})
2. Написать обертку вокруг нативного fetch, которая будет в случае ошибки пробовать еще retriesCount раз, и только потом упадет с ошибкой
function fetchWithRetries(retriesCount, ...fetchArgs) {
/* */
}
3. Типизировать функцию reduce чтобы она принимала дженерики:
function reduce(array, callback, initial) {
let acc = initial
for(let i = 0; i < array.length; i++) {
acc = callback(acc, array[i], i)
}
return acc
}4. Написать функцию которая сворачивает диапазоны:
compress([1, 4, 3, 2]) // '1-4'
compress([1, 4]) //'1, 4'
5. Реализовать паттерн наблюдатель:
class Store {
/* */
}
const store = new Store()
const firstSubscriber = (data) => console.log('first', data)
const secondSubscriber = (data) => console.log('second', data)
store.subscribe(firstSubscriber)
store.subscribe(secondSubscriber)
store.data = {newKey: 'newString'}
/** CONSOLE
* first {newKey: 'newString'}
* second {newKey: 'newString'}
*/
store.unsubsribe(firstSubscriber)
/** CONSOLE
* second {newKey: 'newString'}
*/
}#interview #frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍7❤5🫡2😁1
В этом видео мы подробно разберем выполнение кода в задачах по Event Loop шаг за шагом. Мы визуализируем процесс на схеме, чтобы показать, что происходит с кодом в момент его выполнения. Разберемся, как работает стек вызовов, что такое микротаски, макротаски и как они взаимодействуют в процессе обработки событий. Это видео поможет вам глубже понять внутреннюю работу Event Loop в JavaScript, что критически важно для собеседований и практических задач.
Видео уже на канале!
Я не оставляю ссылку, так как видео лучше продвигается, если заходить на него напрямую с YouTube. Это помогает улучшить его рейтинг и увеличить шансы на органическое продвижение.
#frontend #javanoscript #eventloop
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍4❤1
Задача №1
setTimeout(() => {
console.log('setTimeout')
})
const promise = new Promise((resolve, reject) => {
console.log(1);
setTimeout(() => {
console.log("timerStart");
resolve("success");
console.log("timerEnd");
}, 0);
Promise.resolve().then(() => {
console.log('resolve')
})
console.log(2);
});
promise.then((res) => {
console.log(res);
});
console.log(4);
Задача №2
setTimeout(function timeout() {
console.log('Таймаут 1');
}, 0);
let p = new Promise(function(resolve, reject) {
console.log('Создание промиса');
setTimeout(function timeout() {
console.log('Таймаут 2');
}, 0);
resolve();
});
p.then(function(){
console.log('Обработка промиса');
});
console.log('Конец скрипта');Задача №3
const myPromise = (delay) => new Promise((res, rej) => { setTimeout(res, delay) })
setTimeout(() => console.log('in setTimeout1'), 1000);
myPromise(1000).then(res => console.log('in Promise 1'));
setTimeout(() => console.log('in setTimeout2'), 100);
myPromise(2000).then(res => console.log('in Promise 2'));
setTimeout(() => console.log('in setTimeout3'), 2000);
myPromise(1000).then(res => console.log('in Promise 3'));
setTimeout(() => console.log('in setTimeout4'), 1000);
myPromise(5000).then(res => console.log('in Promise '));
Задача №4
console.log(1);
setTimeout(() => console.log(2));
Promise.resolve().then(() => console.log(3));
Promise.resolve().then(() => setTimeout(() => console.log(4)));
Promise.resolve().then(() => console.log(5));
setTimeout(() => Promise.resolve().then(() => console.log(6)));
console.log(7);
Задача №5
console.log('start');
const promise1 = Promise.resolve().then(() => {
console.log('promise1');
const timer1 = setTimeout(() => {
console.log('timer1')
const promise2 = Promise.resolve().then(() => {
console.log('promise2');
const timer2 = setTimeout(() => {
console.log('timer2')
}, 0)
})
}, 0);
});
const timer3 = setTimeout(() => {
console.log('timer3');
const promise3 = new Promise(resolve => {
setTimeout(() => {
console.log('promise3');
resolve();
}, 0);
}).then(() => {
console.log('promise3 then');
})
}, 0);
async function asyncFunction() {
console.log('async start');
await new Promise(resolve => setTimeout(resolve, 0));
console.log('async middle');
await Promise.resolve().then(() => console.log('async promise'));
console.log('async end');
}
asyncFunction();
console.log('end');
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍11
😅 Псс... Прокачаться не надо?
Спасибо всем, кто поддерживает! Записывая новое видео, всегда переживаю, что мог где-то ошибиться, что-то не так сказать или неправильно употребить слово.
Съемка видео, написание сценария и монтаж — это непростая задача. На 20-минутное видео уходит три дня работы. А ведь у меня еще YeaHub, блог, менторство и социальные проекты.
Лучшая поддержка - это просмотр видео. Спасибо!
https://www.youtube.com/@reactify-it
Спасибо всем, кто поддерживает! Записывая новое видео, всегда переживаю, что мог где-то ошибиться, что-то не так сказать или неправильно употребить слово.
Съемка видео, написание сценария и монтаж — это непростая задача. На 20-минутное видео уходит три дня работы. А ведь у меня еще YeaHub, блог, менторство и социальные проекты.
Лучшая поддержка - это просмотр видео. Спасибо!
https://www.youtube.com/@reactify-it
1🔥37👍10❤9
🎉 Ровно год в менторстве!
Год назад, 8 февраля, я выложил пост у себя на канале о том, что начинаю обучать новичков. И с тех пор у меня было около 100 учеников, более 70 из которых пришли в разработку почти с нуля.
Больше всего учеников пришло осенью: сентябрь, октябрь, ноябрь. Почти все, кто начал обучение раньше, уже нашли работу. А сейчас многие заканчивают обучение и выходят на рынок. Каждый ученик — уникален, со своими сильными сторонами и трудностями, но всех нас объединила разработка.
За этот год было много вызовов, но еще больше радости — когда удавалось преодолеть сложности, освоить технологии и получить долгожданный оффер. Конечно, были и те, кто по разным причинам прекращал обучение: кто-то не справился, кто-то понял, что фронтенд — не его, кому-то просто не зашло. Такие моменты всегда немного расстраивают, ведь хочется, чтобы каждый доходил до своей цели.
Менторство — это не волшебная таблетка и не кнопка "Бабло", которая без усилий приведет к успеху. Ментор не может выучиться за вас или пройти за вас на работу — многое зависит от вас самих.
Я постоянно стараюсь делать обучение лучше. Вот, например, сейчас — суббота, 22:55, а я пишу практический курс для учеников по Docker и CI/CD. 😅
Мне хочется формировать не просто сообщество разработчиков, а сильное комьюнити людей, которые не просто найдут работу, а станут реально крутыми специалистами. Надеюсь, у меня это получается!
Так что с праздником меня — с первой годовщиной в менторстве! 🥳😎
📹 Во вторник новое видео - Принципы ООП в React
👇Тот самый пост
https://news.1rj.ru/str/reactify_IT/709
Год назад, 8 февраля, я выложил пост у себя на канале о том, что начинаю обучать новичков. И с тех пор у меня было около 100 учеников, более 70 из которых пришли в разработку почти с нуля.
Больше всего учеников пришло осенью: сентябрь, октябрь, ноябрь. Почти все, кто начал обучение раньше, уже нашли работу. А сейчас многие заканчивают обучение и выходят на рынок. Каждый ученик — уникален, со своими сильными сторонами и трудностями, но всех нас объединила разработка.
За этот год было много вызовов, но еще больше радости — когда удавалось преодолеть сложности, освоить технологии и получить долгожданный оффер. Конечно, были и те, кто по разным причинам прекращал обучение: кто-то не справился, кто-то понял, что фронтенд — не его, кому-то просто не зашло. Такие моменты всегда немного расстраивают, ведь хочется, чтобы каждый доходил до своей цели.
Менторство — это не волшебная таблетка и не кнопка "Бабло", которая без усилий приведет к успеху. Ментор не может выучиться за вас или пройти за вас на работу — многое зависит от вас самих.
Я постоянно стараюсь делать обучение лучше. Вот, например, сейчас — суббота, 22:55, а я пишу практический курс для учеников по Docker и CI/CD. 😅
Мне хочется формировать не просто сообщество разработчиков, а сильное комьюнити людей, которые не просто найдут работу, а станут реально крутыми специалистами. Надеюсь, у меня это получается!
Так что с праздником меня — с первой годовщиной в менторстве! 🥳😎
👇Тот самый пост
https://news.1rj.ru/str/reactify_IT/709
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Reactify | Frontend Разработка
Менторство
Я пытаюсь улучшить сообщество, помочь новичкам в обучении. Я снимаю видеоуроки, делаю бесплатные курсы, веду телеграмм канал, стараюсь отвечать каждому в личных сообщениях. И даже наш проект YeaHub направлен на то, чтобы принести пользу IT сообществу.…
Я пытаюсь улучшить сообщество, помочь новичкам в обучении. Я снимаю видеоуроки, делаю бесплатные курсы, веду телеграмм канал, стараюсь отвечать каждому в личных сообщениях. И даже наш проект YeaHub направлен на то, чтобы принести пользу IT сообществу.…
🔥44👍8❤4
В этом видео разберем основные принципы ООП — инкапсуляцию, наследование, полиморфизм и абстракцию — и покажем, как они работают в React. Узнаем, что такое Render Props, Component Injection, композиция и декомпозиция, и применим их в функциональных компонентах, Custom Hooks и HOCs.
Видео уже на канале!
Я не оставляю ссылку, так как видео лучше продвигается, если заходить на него напрямую с YouTube. Это помогает улучшить его рейтинг и увеличить шансы на органическое продвижение.
#frontend #react #ооп
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥2❤1
Выпущено три видео по паттернам и принципам программирования:
Формирование архитектурного мышления важно уже на этапе обучения. Понимание принципов и подходов к разработке помогает писать более чистый, масштабируемый код. Чем раньше вы начнете разбираться в паттернах, тем быстрее сможете применять их в своих проектах и развивать свои навыки.
Сначала может быть сложно увидеть, где и как использовать тот или иной паттерн, но с опытом вы научитесь понимать, когда он действительно необходим, а когда избыточен.
#frontend #react #solid #oop
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
5 продвинутых паттернов в React
Каждый разработчик хочет писать универсальный, чистый код, который не будет повторяться, будет оптимизированным и легкомасштабируемым. В этом видео мы разберем 5 продвинутых паттернов и подходов в React
- Slot Pattern (Component Injection)
- Render Prop…
- Slot Pattern (Component Injection)
- Render Prop…
👍18🔥6🤝4❤1
Экспериментировал с резюме и задумался: а что вообще я делал за свою карьеру, что умею? Решил накидать список. Когда перечитал, в голове сразу всплыл мем с чуваком в мундире, увешанным миллионом наград. Прилагаю картинку — она говорит сама за себя! 😂
✅ Фронтенд-разработка и сборка проекта
- С нуля настраивал Webpack для разных сред, включая разработку, тестирование и продакшен, с оптимизированными конфигурациями, плагинами и лоадерами.
- Полностью настраивал экосистему разработки: ESLint, Prettier, Stylelint, Husky, PostCSS, Babel и другие инструменты.
- Работал с React и Next.js, используя различные стейт-менеджеры: Redux, Redux Toolkit (RTK), MobX, Signals.
- Разрабатывал UI Kit с Storybook и Loki, создавая и документируя все компоненты, необходимые для приложения.
- Работал с популярными библиотеками:
✅ CI/CD, DevOps и инфраструктура
- Настраивал CI/CD и деплой на тестовые и продакшен-среды, включая Docker-сборку, автоматизированный деплой и окружения.
- Настроил и администрировал Nginx, SSL-сертификаты, DNS-записи, cron-задачи и автоматические бэкапы баз данных.
- Разворачивал сервер для логирования и мониторинга: Sentry (self-hosted) для фронтенда, Grafana + Prometheus для бэкенда.
- Поднимал кластер Kubernetes с разными нодами и 3 средами, Helm, ArgoCD, GitHub Actions
✅ Интеграции и работа с внешними сервисами
- Настраивал интеграции с email- и SMS-сервисами.
- Внедрял авторизацию через Google, Telegram, Yandex и другие OAuth-провайдеры.
- Работал с S3-хранилищами и CDN.
- Подключал сервисы оплаты Paddle, Striple и Тинькоф эквайринг
✅ Базы данных и Backend
- Работал с SQL (PostgreSQL) и NoSQL (MongoDB) базами данных.
- Проектировал и разрабатывал Backend на Nest.js + PostgreSQL, используя миграции TypeORM и Liquibase.
✅ Полноценные проекты
- Самостоятельно спроектировал и разработал одно Fullstack-приложение с нуля до продакшена.
- Разработал три фронтенд-приложения, включая графический редактор, CRM-систему и клиентское веб-приложение.
- Руководил командой 20+ специалистов, проводил собеседования и менторил начинающих разработчиков
💡 В планах
- Изучение Kubernetes и углубление в DevOps: автоматизация развертывания, оркестрация контейнеров, балансировка нагрузки, шардирование, репликация данных.
- Глубокое погружение в Backend: изучение брокеров сообщений (RabbitMQ, Kafka), кэширования (Redis, Memcached), оптимизации запросов и интеграции с различными сервисами.
- Настройка безопасности серверов: управление доступами, защита от DDoS-атак, мониторинг уязвимостей, шифрование данных и бэкапы.
Как думаете, нормальный список навыков для почти 4 лет опыта, или маловато? Что бы вы посоветовали изучить, чтобы прокачаться еще сильнее?
✅ Фронтенд-разработка и сборка проекта
- С нуля настраивал Webpack для разных сред, включая разработку, тестирование и продакшен, с оптимизированными конфигурациями, плагинами и лоадерами.
- Полностью настраивал экосистему разработки: ESLint, Prettier, Stylelint, Husky, PostCSS, Babel и другие инструменты.
- Работал с React и Next.js, используя различные стейт-менеджеры: Redux, Redux Toolkit (RTK), MobX, Signals.
- Разрабатывал UI Kit с Storybook и Loki, создавая и документируя все компоненты, необходимые для приложения.
- Работал с популярными библиотеками:
Формы: Formik, React Hook Form, Yup
Графика: Fabric.js, Three.js, Babylon.js
Дата и время: date-fns, Moment.js, Luxon.js, Day.js
Графики и визуализация: ECharts
UI-компоненты: MUI (Material UI), Ant Design
Запросы и кэширование: Axios, React Query, SWR
Локализация: i18next
Анимации: Framer Motion
Тестирование: Jest, React Testing Library
Другие: Swiper, React Window, React Calendar, React Advanced Cropper, React Table, Recharts
✅ CI/CD, DevOps и инфраструктура
- Настраивал CI/CD и деплой на тестовые и продакшен-среды, включая Docker-сборку, автоматизированный деплой и окружения.
- Настроил и администрировал Nginx, SSL-сертификаты, DNS-записи, cron-задачи и автоматические бэкапы баз данных.
- Разворачивал сервер для логирования и мониторинга: Sentry (self-hosted) для фронтенда, Grafana + Prometheus для бэкенда.
- Поднимал кластер Kubernetes с разными нодами и 3 средами, Helm, ArgoCD, GitHub Actions
✅ Интеграции и работа с внешними сервисами
- Настраивал интеграции с email- и SMS-сервисами.
- Внедрял авторизацию через Google, Telegram, Yandex и другие OAuth-провайдеры.
- Работал с S3-хранилищами и CDN.
- Подключал сервисы оплаты Paddle, Striple и Тинькоф эквайринг
✅ Базы данных и Backend
- Работал с SQL (PostgreSQL) и NoSQL (MongoDB) базами данных.
- Проектировал и разрабатывал Backend на Nest.js + PostgreSQL, используя миграции TypeORM и Liquibase.
✅ Полноценные проекты
- Самостоятельно спроектировал и разработал одно Fullstack-приложение с нуля до продакшена.
- Разработал три фронтенд-приложения, включая графический редактор, CRM-систему и клиентское веб-приложение.
- Руководил командой 20+ специалистов, проводил собеседования и менторил начинающих разработчиков
- Изучение Kubernetes и углубление в DevOps: автоматизация развертывания, оркестрация контейнеров, балансировка нагрузки, шардирование, репликация данных.
- Глубокое погружение в Backend: изучение брокеров сообщений (RabbitMQ, Kafka), кэширования (Redis, Memcached), оптимизации запросов и интеграции с различными сервисами.
- Настройка безопасности серверов: управление доступами, защита от DDoS-атак, мониторинг уязвимостей, шифрование данных и бэкапы.
Как думаете, нормальный список навыков для почти 4 лет опыта, или маловато? Что бы вы посоветовали изучить, чтобы прокачаться еще сильнее?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🔥11😁4
В этом видео группа ребят, которые хотят устроиться на работу в IT, отвечают на теоретические вопросы от ведущего ментора. Это полноценная тренировка: участники учатся выступать перед аудиторией, формулировать свои мысли, дополнять ответы других и внимательно слушать, как отвечают их коллеги. В этом видео мы поговорим о ключевых технологиях: Browser, JavaScript, TypeScript и React.
Видео уже на канале!
Я не оставляю ссылку, так как видео лучше продвигается, если заходить на него напрямую с YouTube. Это помогает улучшить его рейтинг и увеличить шансы на органическое продвижение.
#frontend #interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥6❤4
Forwarded from Осознанная Меркантильность | Антон Назаров
Опрос про накрутку опыта 2024 (статистика открыта для всех)
Время подвести итоги 2024 года: помогает ли накрутка достигнуть ваших целей, увольняют ли на испытательном сроке, палит ли служба безопасности. За прохождение опроса бесплатный доступ в сообщество на 3 дня. Итоги опубликую в этом канале.
https://forms.gle/H3YbVcf1xKNUJUey9
Всем блогерам от 100 подписчиков раздам доступ к полученным ответам за репост (пишите в комментах со ссылкой на репост в ваших соц сетях)
Время подвести итоги 2024 года: помогает ли накрутка достигнуть ваших целей, увольняют ли на испытательном сроке, палит ли служба безопасности. За прохождение опроса бесплатный доступ в сообщество на 3 дня. Итоги опубликую в этом канале.
https://forms.gle/H3YbVcf1xKNUJUey9
Всем блогерам от 100 подписчиков раздам доступ к полученным ответам за репост (пишите в комментах со ссылкой на репост в ваших соц сетях)
Google Docs
Накрутка опыта в IT — 2024
Опрос проводит Антон Назаров для анализа результативности своих советов. Результаты опроса можно будет увидеть в тг канале
Опрос проводится за 2024 год. Если в этом году вы не искали/меняли работу, просьба воздержаться от ответов, для получения более чистой…
Опрос проводится за 2024 год. Если в этом году вы не искали/меняли работу, просьба воздержаться от ответов, для получения более чистой…
❤4🔥2👍1
Когда-то давно я учил React по курсу React Самурай от Димыча. Недавно предложили на его канале провести собеседование. Я согласился :)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20❤5👍4
Вакансий на рынке действительно мало, и он до сих пор не оправился после новогодних праздников. Ранее прогнозировалось, что к февралю количество предложений восстановится до уровня осени 2024 года, когда по всей России было около 4 тысяч вакансий. Однако сейчас их число колеблется в пределах 2300–2400, что почти в два раза меньше.
До нового года ситуация была иной: офферы приходили уже через неделю активного поиска (пример: оффер за 1 неделю). Количество собеседований доходило до 6–10 в неделю, и найти работу за месяц не составляло труда. Сейчас же поиск работы может затянуться до двух месяцев. В условиях такой высокой конкуренции важно быть максимально подготовленным.
Нет, даже в текущих условиях ребята продолжают получать офферы. Вот несколько примеров:
- Оффер на 250 тысяч рублей с нуля
- Два оффера в копилку наших ребят
- Еще два оффера
- Два ученика получили офферы
- Оффер на 210 тысяч рублей в Big Tech
- Оффер за один день
Никому. Рынок требует адаптации, и важно быть сильнее других кандидатов. Это время для работы над своими навыками и повышения конкурентоспособности.
Прогнозы:
Ожидаем, что количество вакансий восстановится к концу весны. На это повлияет улучшение общей экономической ситуации, а также сезонные факторы. Однако стоит понимать, что рынок IT становится более зрелым и требовательным.
Нет. Текущая ситуация — это естественная конкуренция, которая существует в любой профессии.
Например:
- Среди студентов медицинских вузов лишь около 20% становятся врачами узких специальностей или хирургами. Остальные работают медперсоналом, лаборантами или врачами общей практики.
- Среди выпускников юридических факультетов только 10% достигают карьерных высот, становясь судьями, прокурорами или успешными адвокатами. Остальные работают в юридических фирмах, занимаясь рутинной работой.
То же самое происходит и в IT. Если вам нравится разработка, и вы готовы учиться, вы сможете пройти через конкуренцию. Рынок очищается от тех, кто пришел в IT только из-за хайпа и высоких зарплат, после курсов и думал, что с небольшой базой можно легко вкатиться.
Пример успеха:
Один из моих учеников, не имея технического бэкграунда и особых способностей к программированию, смог получить оффер на 250 тысяч рублей с нуля. Он упорно учился и добился результата, даже в условиях, когда опытные специалисты с трудом находят работу.
Вывод:
Рынок IT становится более зрелым и избирательным. Пройти курс и сразу получить высокооплачиваемую работу теперь не получится — придется приложить усилия. Но если вы готовы учиться и развиваться, у вас есть все шансы на успех. Рынок отфильтрует тех, кто не готов вкладываться в свое развитие, и оставит только сильнейших.
Ваше будущее в ваших руках. Учитесь, адаптируйтесь и будьте на шаг впереди.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21❤6🔥3
На позицию Middle Frontend Разработчик
Большая часть собеседования состоит из кодинга в перемешку с теоретическими вопросами.
1. В каком порядке будут выведены логи?
console.log('1')
Promise.resolve('2')
.then((res) => {
console.log(res);
Promise.resolve('3')
.then((res) => {
console.log(res);
setTimeout(() => {console.log('4')}, 0);
})
})
.then((res) => console.log(res))
.finally((res) => {
console.log(res);
setTimeout(() => {console.log('5')}, 0);
});
console.log('6');2. А если изменив первый Promise?
console.log('1')
Promise.reject('2')
.then((res) => {
console.log(res);
Promise.resolve('3')
.then((res) => {
console.log(res);
setTimeout(() => {console.log('4')}, 0);
})
})
.catch((res) => console.log(res))
.then((res) => console.log(res))
.finally((res) => {
console.log(res);
setTimeout(() => {console.log('5')}, 0);
});
console.log('6');3. Что выведет этот код?
function foo() {
const x = 10;
return {
x: 20,
bar: () => {
console.log(this.x)
},
baz: function() {
console.log(this.x)
}
};
}
const obj1 = foo();
obj1.bar(); // ...
obj1.baz(); // ...
const obj2 = foo.call({ x: 30 });
obj2.bar(); // ..
obj2.baz(); // ...4. Напиши и типизируй функцию для определения типа фигуры
type Rectangle = {
width: number ;
height: number ;
};
type Circle = {
radius: number;
};
type AvailableFigure = Rectangle | Circle;
function isCircle(figure) {
...
}
function getCircleArea(figure: Circle): number {
return Math.pow(figure.radius, 2) * Math.PI
}
function getRectangleArea(figure: Rectangle): number {
return figure.width * figure.height
}
function getArea(figure: AvailableFigure): number {
return isCircle(figure)
? getCircleArea(figure)
: getRectangleArea(figure);
}5. Напиши нативный Pick<>
type MyPick<T, U extends keyof T> = {
[key in U]: T[key]
}Все эти задачи мы разбирали в видео:
- 5 типичных задач по TypeScript для Frontend собеседований
- Разбор задач по Event Loop с собеседований
- 5 типичных задач по JavaScript на собеседовании
#interview
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
5 типичных задач по TypeScript для Frontend собеседований
В этом видео мы разберем 5 типичных задач по TypeScript, которые могут встретиться на собеседовании на фронтенд-разработчика!
- Типизация функций
- Дженерики (Generics)
- Extends, keyof, typeof
- Утилитарные типы (Utility Types)
- Маппинг типов (Mapped Types)…
- Типизация функций
- Дженерики (Generics)
- Extends, keyof, typeof
- Утилитарные типы (Utility Types)
- Маппинг типов (Mapped Types)…
👍19🔥8❤3
Позиция Middle Frontend Разработчик
Достаточно сложные вопросы были по опыту, проектам. А так же не было стандартных технических вопросов.
На собеседовании нужно было реализовать Игру "Crush the mole".
Описание задачи:
Необходимо реализовать игру "Crush the mole" на TypeScript. Игра представляет собой поле 4x4 клетки, на котором через случайные промежутки времени в случайной клетке появляется крот. Игрок должен успеть "прихлопнуть" крота, кликнув по нему левой кнопкой мыши. После успешного клика крот исчезает и появляется в новой случайной клетке. Игру можно остановить и начать заново с помощью кнопки.
Требования:
- Поле игры: Игровое поле состоит из 16 клеток (4x4).
- Появление крота: Крот появляется в случайной клетке через случайные промежутки времени.
- Управление: Игрок кликает по клетке, чтобы "прихлопнуть" крота. Если клик был по клетке с кротом, крот исчезает и появляется в новой случайной клетке.
- Кнопка управления: Игру можно остановить и начать заново с помощью одной кнопки.
- Отображение крота: Крот отображается символом, например, @.
- Генерация случайных чисел: Для генерации случайного числа можно использовать Math.random().
import React from 'react';
const elements = Array(16).fill(0);
export default function App() {
const [randomIndex, setRandomIndex] = React.useState(0);
const [isStart, setStart] = React.useState(false);
// Ваш код здесь
return (
<div className="App">
<h1>⭐ Crush the mole ⭐</h1>
<button onClick={() => { /* Ваш код здесь */ }}>
{isStart ? "Остановить" : "Начать игру"}
</button>
<div className="container">
{elements.map((elem, index) => (
<div
key={index}
className="item"
onClick={() => { /* Ваш код здесь */ }}
>
{index === randomIndex ? "@" : ""}
</div>
))}
</div>
</div>
);
}
Задачи для кандидата:
- Реализовать логику появления крота в случайной клетке через случайные промежутки времени.
- Реализовать обработку клика по клетке: если клик был по клетке с кротом, крот исчезает и появляется в новой случайной клетке.
- Реализовать кнопку, которая будет останавливать и запускать игру.
- Убедиться, что игра корректно работает и не содержит багов (например, крот не появляется в той же клетке сразу после исчезновения).
Дополнительные вопросы для обсуждения:
- Как можно оптимизировать код для улучшения производительности?
- Как можно добавить дополнительные функции в игру (например, счетчик очков, таймер, уровни сложности)?
- Как можно протестировать эту игру?
Ожидаемый результат:
Кандидат должен предоставить рабочую версию игры, соответствующую всем требованиям, и быть готовым объяснить свой код и принятые решения.
#interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍2❤1🤝1
Сейчас на рынке труда мало вакансий, а конкуренция среди кандидатов высокая. Компании диктуют правила: они могут позволить себе быть избирательными, не торопиться с наймом и рассматривать только самых подходящих кандидатов. В такой ситуации даже идеальное резюме не гарантирует приглашения на собеседование, а кандидат со средним резюме может стабильно проходить скрининги и получать офферы.
Почему так происходит? Давайте разберёмся в логике HR-специалистов.
1. Первичная фильтрация: жёсткие критерии
На одну вакансию может прийти 1000+ откликов. В первую очередь HR задаёт максимально строгие фильтры, чтобы отсеять 90% кандидатов. Например:
- Город (только Москва/СПб, без релокации)
- Возраст (часто 25–35 лет, особенно для middle/senior)
- Опыт работы (не «от 3 лет», а «ровно 5+»)
- Уровень английского (B2+ даже там, где он реально не нужен)
После такой фильтрации остаётся 10–20 «идеальных» кандидатов. Их проверяют в первую очередь – зачем смотреть остальных, если среди этих уже может быть подходящий?
2. Постепенное расширение поиска: партийный отбор
Если среди топ-кандидатов никто не подошёл, HR ослабляет критерии, но не сразу. Например:
- Берут тех, кто соответствует 6–8 из 10 пунктов (например, опыт 4 года вместо 5, или английский B1 вместо B2).
- Приглашают партиями по 5–10 человек – если вакансия закроется на первых же кандидатах, остальных даже не увидят.
Проблема: пока HR дойдёт до вашего резюме (особенно если вы «середнячок»), вакансия может уже закрыться.
3. Влияние алгоритмов: «Лучший кандидат» и случайность
Платформы вроде HeadHunter используют автоматическую сортировку (например, функцию «Лучший кандидат»). Но алгоритмы работают неидеально:
- Они не понимают контекст (например, могут продвинуть резюме с кучей ключевых слов, но без реального опыта).
- HR часто доверяет этой сортировке и зовёт первых 5–10 из списка, не проверяя остальных.
Отсюда эффект рандома – иногда на скрининг попадает не самый подходящий, а просто тот, кого алгоритм поставил выше.
- Даже маленький «недожёг» в резюме (например, 4 года опыта вместо 5) может отбросить вас во вторую/третью очередь.
- Важно попасть в топ выдачи (через ключевые слова, обновления резюме и т. д.).
- Скорость отклика критична – чем раньше, тем выше шанс попасть в первую партию.
- Алгоритмы несправедливы – иногда нужно «обходить» их вручную (писать HR напрямую, искать рефералов и т. д.).
Вывод: в текущих условиях пассивный поиск почти не работает. Нужна агрессивная стратегия – оптимизация резюме под алгоритмы, быстрые отклики и прямое взаимодействие с рекрутерами.
А как у вас дела? Получается ли находить работу? Делитесь лайфхаками!
#interview #hr #work
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥5❤2💯2
Изначально запись этого собеседования не планировалась для публикации — она была сделана для детального разбора навыков и поведения Даниила. Для него это был первый опыт мокового собеседования, и, как он сам отметил, волнение и стресс сопровождали его на протяжении всего процесса. Однако такой формат оказался крайне полезным: он позволил объективно оценить слабые места и наметить план работы.
Какие проблемы выявил разбор?
- Ответы давались кратко, без необходимой аргументации и пояснений
- Активное использование слов-паразитов: «наверное», «вроде», «не знаю», что создавало впечатление неуверенности
- Даже правильные ответы звучали неубедительно из-за нерешительной манеры подачи
- Многие вопросы оставались раскрытыми неполно, без углубления в суть
- На базовые вопросы, которые кажутся очевидными, давались неполные или частично верные ответы
Сейчас в планах — интенсивная подготовка в течение двух недель, чтобы проработать все слабые места и пройти собеседование снова. Запись и разбор собеседований — один из самых эффективных способов увидеть себя со стороны и улучшить навыки коммуникации и технические знания.
Видео уже на канале!
Я не оставляю ссылку, так как видео лучше продвигается, если заходить на него напрямую с YouTube. Это помогает улучшить его рейтинг и увеличить шансы на органическое продвижение.
#frontend #interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🔥7❤3
Мне нравится IT за безграничные возможности и открытость. Здесь столько интересных, продвинутых людей — они не боятся пробовать новое, путешествуют, развиваются и постоянно учатся. Кажется, ни в одной другой сфере нет такого драйва!
Я активно участвую в IT-сообществах, хожу на онлайн- и офлайн-мероприятия. Это помогает понимать тренды, расти в доходе и просто становиться лучше. Для меня айтишники — это про современность: они следят за собой, ходят в зал, имеют кучу хобби и не сидят на месте.
Весна — время встреч и путешествий☀️✈️
С приходом тепла хочется больше общаться вживую. В марте я встретился с классными ребятами — гуляли в парке, болтали за кофе и матчей. А уже на этих выходных жду сходку с учениками в Краснодаре: часть из них уже работает, другие в поиске. Обсудим жизнь, карьеру и обучение.
Летом планирую 1,5-2-месячное турне по Центральной России — хочу объехать кучу городов, где живут мои друзья, ученики и участники IT-сообществ, в которых я состою. В Москве, например, ждут около 30 моих учеников — наконец-то увидимся вживую!😅
Где искать крутые IT-мероприятия? 📺
Я постоянно мониторю митапы и хакатоны. В Краснодаре их немало, но в Москве, думаю, просто адское количество ивентов. Чтобы не тратить время на поиски, пользуюсь каналом IT мероприятия России / ITMeeting / IT events. Там всё структурировано: митапы, вебинары, конференции — в одном месте.
Это лучший источник анонсов, всегда советую его ученикам, которые хотят прокачаться в нетворкинге. Подписывайтесь — вдруг встретимся на каком-нибудь митапе? 🤝
Куда еду летом? 🚗
Сейчас составляю маршрут. В каждом городе планирую быть 1-3 дня, а в Москве — 1-2 недели. Пока в списке: Воронеж, Москва, Нижний Новгород, Печоры, Суздаль, Тула, Владимир
Думаю заехать и в Питер на недельку — там тоже много знакомых. Если знаете крутые места или города, которые стоит посетить — пишите в комменты!
А вы часто ходите на митапы?
Какие запомнились больше всего?
Какие города и локации советуете?
Давайте общаться! Может, встретимся на одной из сходок? 🤝
#frontend #events
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤6👍2🤝1