Почему найти работу в 2025 году стало почти невозможно?
Раньше поиск работы был прост: обновил резюме, откликнулся на вакансии, прошёл пару собеседований — и вот оффер. Больше откликов — больше шансов. Но в 2025 году это уже квест на выживание. Требуют 5 лет опыта, возраст до 30, навыки работы за троих, знание нейросетей и TypeScript, готовность к стрессу и KPI без чёткого ТЗ. Найти работу стало не просто сложно — почти нереально. Разбираемся, почему.
"Низкая безработица" — миф?
Росстат рапортует: безработица на уровне 2,4% — исторический минимум. Но реальность другая. На hh.ru в мае 2025 вакансий на 28% меньше, чем в 2024, а резюме — на 29% больше. На одну позицию разработчика — 100–500 откликов. HR’ы тонут в резюме, а соискатели — в конкуренции.
Джунам дверь захлопнулась
Новичкам и карьеристам-свитчерам особенно тяжело:
- Стажировок почти нет — компании не хотят обучать, им нужны готовые мидлы+.
- На junior-позиции откликаются опытные специалисты, которых сократили.
- Рынок переполнен однотипными резюме от выпускников курсов.
IT уже не тот остров стабильности
До 2022 года IT-шники жили в раю: открой резюме на hh.ru — и отбивайся от рекрутеров. Уволился без плана? Найдёшь работу за пару недель. Теперь даже мидлы+ с 5 годами опыта ищут месяцами. Мои знакомые с сильным бэком сидят без офферов — и это норма.
Почему так?
- После 2022 года компании урезали бюджеты, многие уехали, рынок стал локальным.
- ИИ забирает простые задачи: джунам не дают шанса, ведь код пишут нейросети.
- Хайп «войти в IT» породил толпу одинаковых кандидатов.
- Зарплаты стагнируют, а требования растут: ждут многозадачности за скромные деньги.
Что ещё бесит?
- Собеседования превратились в марафон: 3+ этапа, тестовые, которые никто не смотрит.
- Работодатели предлагают проектные роли или частичную занятость, но с полной ответственностью.
- Обучение? Забудьте. Все хотят готовых спецов.
Что делать?
Рынок сузился, конкуренция бешеная, а требования запредельные. Устроиться в 2025 — это подвиг, а не норма. Но если IT — ваше, не сдавайтесь. Работайте над навыками, ищите ниши, где ИИ пока не рулит, и держите фокус. Прорвётесь!
P.S. Это не нытьё, а честный взгляд на рынок. Если вы в поиске работы — дело не только в вас. Рынок перегрелся и забыл про новичков. Но у тех, кто горит делом, шансы есть всегда.
👉 @seniorFront
Раньше поиск работы был прост: обновил резюме, откликнулся на вакансии, прошёл пару собеседований — и вот оффер. Больше откликов — больше шансов. Но в 2025 году это уже квест на выживание. Требуют 5 лет опыта, возраст до 30, навыки работы за троих, знание нейросетей и TypeScript, готовность к стрессу и KPI без чёткого ТЗ. Найти работу стало не просто сложно — почти нереально. Разбираемся, почему.
"Низкая безработица" — миф?
Росстат рапортует: безработица на уровне 2,4% — исторический минимум. Но реальность другая. На hh.ru в мае 2025 вакансий на 28% меньше, чем в 2024, а резюме — на 29% больше. На одну позицию разработчика — 100–500 откликов. HR’ы тонут в резюме, а соискатели — в конкуренции.
Джунам дверь захлопнулась
Новичкам и карьеристам-свитчерам особенно тяжело:
- Стажировок почти нет — компании не хотят обучать, им нужны готовые мидлы+.
- На junior-позиции откликаются опытные специалисты, которых сократили.
- Рынок переполнен однотипными резюме от выпускников курсов.
IT уже не тот остров стабильности
До 2022 года IT-шники жили в раю: открой резюме на hh.ru — и отбивайся от рекрутеров. Уволился без плана? Найдёшь работу за пару недель. Теперь даже мидлы+ с 5 годами опыта ищут месяцами. Мои знакомые с сильным бэком сидят без офферов — и это норма.
Почему так?
- После 2022 года компании урезали бюджеты, многие уехали, рынок стал локальным.
- ИИ забирает простые задачи: джунам не дают шанса, ведь код пишут нейросети.
- Хайп «войти в IT» породил толпу одинаковых кандидатов.
- Зарплаты стагнируют, а требования растут: ждут многозадачности за скромные деньги.
Что ещё бесит?
- Собеседования превратились в марафон: 3+ этапа, тестовые, которые никто не смотрит.
- Работодатели предлагают проектные роли или частичную занятость, но с полной ответственностью.
- Обучение? Забудьте. Все хотят готовых спецов.
Что делать?
Рынок сузился, конкуренция бешеная, а требования запредельные. Устроиться в 2025 — это подвиг, а не норма. Но если IT — ваше, не сдавайтесь. Работайте над навыками, ищите ниши, где ИИ пока не рулит, и держите фокус. Прорвётесь!
P.S. Это не нытьё, а честный взгляд на рынок. Если вы в поиске работы — дело не только в вас. Рынок перегрелся и забыл про новичков. Но у тех, кто горит делом, шансы есть всегда.
👉 @seniorFront
❤6👍4🤔2
UX не так прост. 18 примеров темных паттернов
Темные паттерны, также известные как обманные или манипулятивные, — элементы UX-дизайна, которые подталкивают (может и не умышленно) пользователей к действиям, которые те не планировали совершать.
Спонтанные покупки, потеря личных данных, оформление подписок — зачастую вызваны наивностью, доверчивостью или когнитивными искажениями пользователей. Но как правило, все в интересах бизнеса!
В краткосрочной перспективе такой подход вполне может принести выгоду вроде роста продаж или вовлеченности. А что в долгосрочной? Подрыв доверия и вред пользователям? В статье разбираем, что такое темные паттерны, оцениваем их распространенность и рассматриваем 18 конкретных примеров.
👉 @seniorFront
Темные паттерны, также известные как обманные или манипулятивные, — элементы UX-дизайна, которые подталкивают (может и не умышленно) пользователей к действиям, которые те не планировали совершать.
Спонтанные покупки, потеря личных данных, оформление подписок — зачастую вызваны наивностью, доверчивостью или когнитивными искажениями пользователей. Но как правило, все в интересах бизнеса!
В краткосрочной перспективе такой подход вполне может принести выгоду вроде роста продаж или вовлеченности. А что в долгосрочной? Подрыв доверия и вред пользователям? В статье разбираем, что такое темные паттерны, оцениваем их распространенность и рассматриваем 18 конкретных примеров.
👉 @seniorFront
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Direction-aware 3D hover effect
В JS создана логика определения стороны, с которой приходит курсор пользователя и установки соответствующего CSS класса.
👉 @seniorFront
В JS создана логика определения стороны, с которой приходит курсор пользователя и установки соответствующего CSS класса.
👉 @seniorFront
🔥3👍2❤1
Media is too big
VIEW IN TELEGRAM
Responsive Image Slider
В этом видео создается анимированная карусель картинок на HTML и CSS.
👉 @seniorFront
В этом видео создается анимированная карусель картинок на HTML и CSS.
👉 @seniorFront
🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
CSS scroll down button
Подборка анимированных кнопок прокрутки, реализованных на HTML и CSS.
👉 @seniorFront
Подборка анимированных кнопок прокрутки, реализованных на HTML и CSS.
👉 @seniorFront
🔥4❤2👎1
Что будет значением this в функции, вызванной в строгом режиме ("use strict") без привязки к объекту?
Anonymous Quiz
32%
window
51%
undefined
8%
null
9%
global
👍6👎6🤔2
Media is too big
VIEW IN TELEGRAM
Cursor in & Out Ripple Effects
В этом видео создается эффект при входе и выходе курсора на карточку на CSS и JS.
👉 @seniorFront
В этом видео создается эффект при входе и выходе курсора на карточку на CSS и JS.
👉 @seniorFront
👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Gooey Menu
Анимированное меню, реализованное на HTML и SCSS с использованием SVG фильтров.
👉 @seniorFront
Анимированное меню, реализованное на HTML и SCSS с использованием SVG фильтров.
👉 @seniorFront
👍3
Sum of two lowest positive integers
Создайте функцию, которая возвращает сумму двух наименьших положительных чисел для заданного массива, состоящего минимум из 4 положительных целых чисел. В массив не будут переданы числа с плавающей запятой или отрицательные целые числа.
Например, когда массив передается как [19, 5, 42, 2, 77] вывод должен быть 7.
👉 @seniorFront
Создайте функцию, которая возвращает сумму двух наименьших положительных чисел для заданного массива, состоящего минимум из 4 положительных целых чисел. В массив не будут переданы числа с плавающей запятой или отрицательные целые числа.
Например, когда массив передается как [19, 5, 42, 2, 77] вывод должен быть 7.
👉 @seniorFront
Как спасти проект, если нашли баги перед релизом
Документация есть, тесты написаны, проверки закончили, даже QA не выгоревший. И всё равно за день до выкладки что-то ломается. Мы собрали истории — из больших и не очень команд — о том, как баги всплывают в последний момент и что с этим делать, если вы не Google, а просто хотите выкатиться без боли.
👉 @seniorFront
Документация есть, тесты написаны, проверки закончили, даже QA не выгоревший. И всё равно за день до выкладки что-то ломается. Мы собрали истории — из больших и не очень команд — о том, как баги всплывают в последний момент и что с этим делать, если вы не Google, а просто хотите выкатиться без боли.
👉 @seniorFront
❤2👎1
Как отследить изменение поля объекта?
Чтобы отслеживать изменения свойств объекта в JavaScript, можно использовать несколько методов, каждый из которых подходит для различных случаев.
Использование Proxy
Использование Object.defineProperty
Использование библиотеки MobX
MobX — это библиотека для управления состоянием, которая делает состояния наблюдаемыми и автоматически синхронизирует их с пользовательским интерфейсом.
Наблюдатель на изменение (MutationObserver)
Для отслеживания изменений в DOM можно использовать
👉 @seniorFront
Чтобы отслеживать изменения свойств объекта в JavaScript, можно использовать несколько методов, каждый из которых подходит для различных случаев.
Использование Proxy
Proxy является мощным и гибким способом перехвата и настройки операций с объектами, включая чтение и запись свойств.const handler = {
get(target, property) {
console.log(`Getting value of ${property}`);
return target[property];
},
set(target, property, value) {
console.log(`Setting value of ${property} to ${value}`);
target[property] = value;
return true;
}
};
const person = {
name: 'Alice',
age: 25
};
const proxyPerson = new Proxy(person, handler);
proxyPerson.name = 'Bob'; // Setting value of name to Bob
console.log(proxyPerson.name); // Getting value of name // BobИспользование Object.defineProperty
Object.defineProperty позволяет определить новое или изменить существующее свойство непосредственно на объекте, позволяя добавить геттеры и сеттеры для отслеживания изменений.const person = {
_name: 'Alice',
_age: 25
};
Object.defineProperty(person, 'name', {
get() {
console.log('Getting name');
return this._name;
},
set(value) {
console.log(`Setting name to ${value}`);
this._name = value;
}
});
Object.defineProperty(person, 'age', {
get() {
console.log('Getting age');
return this._age;
},
set(value) {
console.log(`Setting age to ${value}`);
this._age = value;
}
});
person.name = 'Bob'; // Setting name to Bob
console.log(person.name); // Getting name // Bob
person.age = 30; // Setting age to 30
console.log(person.age); // Getting age // 30Использование библиотеки MobX
MobX — это библиотека для управления состоянием, которая делает состояния наблюдаемыми и автоматически синхронизирует их с пользовательским интерфейсом.
import { observable, autorun } from 'mobx';
const person = observable({
name: 'Alice',
age: 25,
setName(name) {
this.name = name;
},
setAge(age) {
this.age = age;
}
});
// Автоматически вызываемая функция при изменении наблюдаемого состояния
autorun(() => {
console.log(`Name: ${person.name}, Age: ${person.age}`);
});
person.setName('Bob'); // Name: Bob, Age: 25
person.setAge(30); // Name: Bob, Age: 30Наблюдатель на изменение (MutationObserver)
Для отслеживания изменений в DOM можно использовать
MutationObserver. Это не напрямую связано с объектами, но полезно для отслеживания изменений в элементах DOM.const targetNode = document.getElementById('target');
const config = { attributes: true, childList: true, subtree: true };
const callback = function(mutationsList, observer) {
for(let mutation of mutationsList) {
if (mutation.type === 'childList') {
console.log('A child node has been added or removed.');
}
else if (mutation.type === 'attributes') {
console.log('The ' + mutation.attributeName + ' attribute was modified.');
}
}
};
const observer = new MutationObserver(callback);
observer.observe(targetNode, config);
targetNode.setAttribute('data-test', 'value');👉 @seniorFront
🔥8❤4👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Responsive Parallax Drag-slide
Свёрстано на HTML и SCSS. Логика работы слайдера реализована в JS
👉 @seniorFront
Свёрстано на HTML и SCSS. Логика работы слайдера реализована в JS
👉 @seniorFront
🔥3👍2
Мы — не семья
Когда устраиваешься в компанию, тебе обещают интересные задачи, рост и нормальный график. Но потом приходит письмо: «Мы — как семья, у нас общие ценности, мы делаем великое дело». Ты улыбаешься, думаешь: «Ладно, семья так семья». А потом — зарплату не повышают, потому что «недостаточно восхитительных отзывов», а коллегу и вовсе увольняют за «несоответствие». Разве с семьёй так поступают?
Ценности — это маркетинг
Корпоративные ценности — не душа компании, а инструмент. «Открытость», «смелость», «инновационность» — красивые слова, которые придумывают маркетологи и HR, чтобы оправдать низкие зарплаты «великой миссией». Это не скрепы, а лендинг для сотрудников.
Как появляются ценности
В стартапе на этапе MVP никто не думает о «миссии». Команда живёт кодом и кофе. Но когда людей становится больше, появляется хаос. Тогда HR говорит: «Нужны ценности, чтобы все были на одной волне». Так рождается неофициальная конституция компании.
Почему это работает
Человек хочет быть частью группы. Назови его «братом» — и мозг решит, что это безопасно. Особенно если ты на удалёнке и тимлид ближе, чем родные. Хочется верить, что работа — это «дело жизни», а не просто зарплата. И вот ты уже читаешь конфлюенс как Библию.
Но это становится давлением
Ценности превращаются в рычаг: задержись, потому что «мы же команда»; чувствуй вину, если закрыл ноут в 18:00; переживай за дедлайн, как за свою жизнь. Ты сам соглашаешься, хотя тебя никто не заставляет.
Заражённые ценностями
Появляются «евангелисты» — люди, которые цитируют конфлюенс и верят, что компания — это нечто большее. Они не понимают, почему ты не хочешь «погрузиться на выходных». Такие часто становятся менеджерами, для которых ценности — религия.
Что делать
- Не очаровываться. Компания — не семья, а сделка. Ты — профессионал, делающий нужную работу.
- Иметь свои ценности. Уважай команду, но не принимай слоганы как догму.
- Не бояться быть «не своим». Не всем нужны тимбилдинги и йога. Можно просто хорошо работать.
Хорошая компания платит за работу и уважает твои границы. Мы — не семья. Мы — взрослые люди с договором. И этого достаточно.
👉 @seniorFront
Когда устраиваешься в компанию, тебе обещают интересные задачи, рост и нормальный график. Но потом приходит письмо: «Мы — как семья, у нас общие ценности, мы делаем великое дело». Ты улыбаешься, думаешь: «Ладно, семья так семья». А потом — зарплату не повышают, потому что «недостаточно восхитительных отзывов», а коллегу и вовсе увольняют за «несоответствие». Разве с семьёй так поступают?
Ценности — это маркетинг
Корпоративные ценности — не душа компании, а инструмент. «Открытость», «смелость», «инновационность» — красивые слова, которые придумывают маркетологи и HR, чтобы оправдать низкие зарплаты «великой миссией». Это не скрепы, а лендинг для сотрудников.
Как появляются ценности
В стартапе на этапе MVP никто не думает о «миссии». Команда живёт кодом и кофе. Но когда людей становится больше, появляется хаос. Тогда HR говорит: «Нужны ценности, чтобы все были на одной волне». Так рождается неофициальная конституция компании.
Почему это работает
Человек хочет быть частью группы. Назови его «братом» — и мозг решит, что это безопасно. Особенно если ты на удалёнке и тимлид ближе, чем родные. Хочется верить, что работа — это «дело жизни», а не просто зарплата. И вот ты уже читаешь конфлюенс как Библию.
Но это становится давлением
Ценности превращаются в рычаг: задержись, потому что «мы же команда»; чувствуй вину, если закрыл ноут в 18:00; переживай за дедлайн, как за свою жизнь. Ты сам соглашаешься, хотя тебя никто не заставляет.
Заражённые ценностями
Появляются «евангелисты» — люди, которые цитируют конфлюенс и верят, что компания — это нечто большее. Они не понимают, почему ты не хочешь «погрузиться на выходных». Такие часто становятся менеджерами, для которых ценности — религия.
Что делать
- Не очаровываться. Компания — не семья, а сделка. Ты — профессионал, делающий нужную работу.
- Иметь свои ценности. Уважай команду, но не принимай слоганы как догму.
- Не бояться быть «не своим». Не всем нужны тимбилдинги и йога. Можно просто хорошо работать.
Хорошая компания платит за работу и уважает твои границы. Мы — не семья. Мы — взрослые люди с договором. И этого достаточно.
👉 @seniorFront
👍15👎1
Как мы внедрили единый шаблон тикетов для разработчиков и упростили работу команды
В этой статье расскажу о том, как организовать оперативный обмен информацией между участниками проекта и поддерживать документацию в актуальном состоянии. Отдельное внимание уделю работе с таск-трекерами — подробно опишу шаблон тикета, который успешно используется в нашей компании. Однако если вы работаете без трекера задач, например, в ворд-файлах, суть от этого не меняется — такой подход работает и с другими инструментами.
👉 @seniorFront
В этой статье расскажу о том, как организовать оперативный обмен информацией между участниками проекта и поддерживать документацию в актуальном состоянии. Отдельное внимание уделю работе с таск-трекерами — подробно опишу шаблон тикета, который успешно используется в нашей компании. Однако если вы работаете без трекера задач, например, в ворд-файлах, суть от этого не меняется — такой подход работает и с другими инструментами.
👉 @seniorFront
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Banksy Shredder
Реализовано на Vue и стилизовано в CSS. Есть возможность добавлять свою картинку через input type="file".
👉 @seniorFront
Реализовано на Vue и стилизовано в CSS. Есть возможность добавлять свою картинку через input type="file".
👉 @seniorFront
🔥4👍1
Media is too big
VIEW IN TELEGRAM
Scroll Animation Effects for Website
В этом видео создаются анимации, запускаемые при прокрутке на CSS и JS.
👉 @seniorFront
В этом видео создаются анимации, запускаемые при прокрутке на CSS и JS.
👉 @seniorFront
👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Dynamic Image Colorizing
Реализовано без использования JS. Вся сцена - это стилизованный input type="color".
👉 @seniorFront
Реализовано без использования JS. Вся сцена - это стилизованный input type="color".
👉 @seniorFront
❤2🔥2👍1
Не пропустите! 23 июля в 20:00 пройдет бесплатный урок по теме "Зачем JavaScript-разработчику понимать бэкенд? От fetch до Node.js".
Запись: https://gclnk.com/rKZqUUMf
Что будет на вебинаре?
- Как устроено взаимодействие фронтенда с сервером: API, запросы, заголовки, ответы.
- Почему поверхностные знания API тормозят рост и усложняют задачи.
- Что нужно знать о Node.js и серверной части, даже если вы не fullstack.
- Как уверенное понимание архитектуры влияет на производительность и автономность.
- Почему знание бэкенда усиливает вашу позицию на проекте и на рынке.
Что узнают участники?
- Как работает связка клиент–сервер: от запроса до ответа.
- Какие ошибки делают фронтендеры при работе с API — и как их избегать.
- Как знание Node.js помогает даже тем, кто пишет только клиентскую часть.
- Почему современный разработчик не может быть “только фронтом”.
- Как это знание влияет на скорость разработки.
Не забудьте записаться на урок и получить запись пред. вебинара: https://gclnk.com/rKZqUUMf
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru Erid 2SDnjdhd9Kt
Запись: https://gclnk.com/rKZqUUMf
Что будет на вебинаре?
- Как устроено взаимодействие фронтенда с сервером: API, запросы, заголовки, ответы.
- Почему поверхностные знания API тормозят рост и усложняют задачи.
- Что нужно знать о Node.js и серверной части, даже если вы не fullstack.
- Как уверенное понимание архитектуры влияет на производительность и автономность.
- Почему знание бэкенда усиливает вашу позицию на проекте и на рынке.
Что узнают участники?
- Как работает связка клиент–сервер: от запроса до ответа.
- Какие ошибки делают фронтендеры при работе с API — и как их избегать.
- Как знание Node.js помогает даже тем, кто пишет только клиентскую часть.
- Почему современный разработчик не может быть “только фронтом”.
- Как это знание влияет на скорость разработки.
Не забудьте записаться на урок и получить запись пред. вебинара: https://gclnk.com/rKZqUUMf
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru Erid 2SDnjdhd9Kt
❤1👍1