Всем привет. Пишу сюда, потому что больше негде выговориться, а может, кто-то узнает себя или даст дельный совет.
Мне 43. Последние 10 лет я работала на себя в бьюти-сфере. Это был мой хлеб, я знала свое дело, умела общаться с клиентами, считала деньги, сама себя продвигала. Но в какой-то момент поняла: хочу уйти в IT. Не потому что «модно», а потому что устала от физической работы и захотелось мозгового штурма.
Прошла курс «Full-stack pro». Училась честно, параллельно с работой. Переехала в СПб. И вот тут началось самое интересное.
Зарегистрировалась на всех площадках: hh, Хабр Карьера, телеграм-каналы. Откликаюсь на вакансии джунов, стажеров, «без опыта». Я готова работать за копейки, лишь бы получить опыт. Ответ один: отказ. Иногда даже без обратной связи.
Я понимаю, что выгляжу на рынке странно: 43 года, без коммерческого опыта в IT, с бэкграундом в бьюти. Для HR я, наверное, «непонятный актив».
Что меня пугает и бесит одновременно:
1. Огромное количество курсов в инсте, где сидят успешные ребята и говорят: «Купи мой курс, и я расскажу, как я это сделал». Складывается ощущение, что зарабатывают они только на продаже курсов, а не на коде.
2. Вакансии для джунов: «Требуется джун с опытом работы 3 года, знание 10 фреймворков, возраст до 30».
3. Фриланс. Я пыталась зарегистрироваться на биржах, но и там 00.
Собственно, вопросы к сообществу:
· Есть ли здесь те, кто реально начал с нуля в 40+ и смог пробиться? Не «купил курс и стал сеньором», а прошел через тернии отказов.
· Где точка входа во фриланс для новичка?
· Может, кто-то готов дать шанс или подсказать, куда смотреть? Я не прошу денег, я прошу совета или пинка в нужном направлении.
Я не ною. Я просто устала биться в закрытые двери и хочу понять: это мне нужно менять подход или рынок реально перегрет и для 43-летней женщины без опыта в IT здесь места нет?
Спасибо, что дочитали. Если есть конструктив — буду благодарна. Если хотите просто поржать над «бабой в IT» — тоже пойму, Пикабу такой Пикабу.
Привет, Пикабу! Решил рассказать, как я делал свой маленький проект — злит.рф часть 2.
Это сайт, где можно просто написать, что тебя раздражает, и люди голосуют: “😡 Злит” или “🙂 Не злит”. Никаких аккаунтов, токсичности и рекламы — просто выговориться и полегчало. ________________________________________ 💡 Откуда идея Все вокруг чем-то недовольны — операторы связи, доставка, бюрократия, цены, новости. А иногда просто хочется сказать “достало” и не устраивать драму. Так родилась идея сделать сайт, где можно вылить злость в безопасное место, и другие либо поддержат, либо скажут, что “ну не злит”. ________________________________________ ⚙️ Как всё начиналось открыл VS Code и набросал форму: <textarea placeholder="Напиши, что тебя злит..."></textarea> <button>Добавить</button> Добавил JS — чтобы посты сохранялись, капча, лайки/дизлайки, рейтинг. Всё без фреймворков, просто fetch() и немного PHP на сервере. Когда стало слишком много повторяющегося кода, я вынес всё в функции — вроде renderPost() для вывода поста. Вот её короткая выжимка: function renderPost(p) { const div = document.createElement('div'); div.innerHTML = ` <div class="meta">${p.time} · Рейтинг: ${p.likes - p.dislikes}</div> <div class="text">${p.text}</div> <button>😡 ${p.likes}</button> <button>🙂 ${p.dislikes}</button> `; return div; } Да, HTML прямо внутри JS — не самое красивое решение, но зато удобно быстро собирать динамический контент. По сути, это шаблон, который браузер рендерит на лету. А ещё так проще вставлять данные из сервера, чем гонять куски через innerHTML в разных местах. ________________________________________ 📦 Файлы и структура проекта Проект небольшой, поэтому структура минималистичная: /index.php — главная страница /api.php — обработчик запросов (добавить пост, голосовать и т.д.) /js/main.js — логика, fetch, отрисовка постов /css/style.css — стили /favicon.png — иконка сайта /manifest.json — манифест для web-приложения /service-worker.js — офлайн и установка на телефон ________________________________________ 📱 Zlit как web-приложение (PWA) Хотелось, чтобы сайт можно было установить на телефон прямо из браузера, как приложение. Для этого добавил: • manifest.json — с описанием и иконками • { • "name": "Zlit.рф", • "short_name": "Zlit", • "start_url": "/index.php", • "display": "standalone", • "icons": [ • { "src": "/icons/icon-192.png", "sizes": "192x192", "type": "image/png" }, • { "src": "/icons/icon-512.png", "sizes": "512x512", "type": "image/png" } • ] • } • service-worker.js — чтобы кэшировать странички и показывать офлайн-версию. Теперь, если зайти с Android-браузера, можно нажать “Установить на экран” — и сайт превращается в полноценное приложение. ________________________________________ 🎨 Логотип и визуал Лого сделал сам — точнее, сгенерировал в Яндекс.AI. Загрузил промт “эмоциональный минималистичный смайлик злости в красно-оранжевых тонах”, получил PNG, чуть подправил иконку в Figma и сохранил несколько размеров для PWA. ________________________________________ 🧭 Манифест проекта Всё просто: Злит.рф — это место, где можно безопасно высказать раздражение. Без политики, без хейта, без споров. Просто написать, что злит, и увидеть, что ты не один. ________________________________________ 🧠 Немного аналитики После запуска я подключил Яндекс.Метрику — чтобы понять, кто реально заходит, какие страницы открывают, какие посты вызывают больше эмоций. Оказалось, больше всего злит — поведение служб доставки и ценники 😅. ________________________________________ 🚀 Что дальше Хочу добавить авторизацию, чтобы можно было подписываться на авторов и комментировать без спама. А пока просто радуюсь, что сайт живёт, и люди туда заходят писать не только “что злит”, но и “что отпустило”. ________________________________________ Ссылка: https://злит.рф
В апреле 2023 года мы запустили необычный для нас проект - ремонтный сервис нового формата. Первого клиента нашли только в начале лета, но уже с первого проекта удалось достичь запланированной прибыли. Расскажу, как мы создали современную компанию для поколения "новых денег", которые не готовы к тому, что прораб будет класть половину стоимости ремонта себе в карман, а сроки растягиваются без ограничений и почему это оказалось прибыльным бизнесом.
Как всё начиналось
Конец 2022 года. Я работал менеджером проектов в крупной IT-компании, мой друг Антон - тимлидом в другой известной технологической компании, а Дима занимал позицию backend-разработчика в третьей. У всех стабильные зарплаты, интересные проекты - жизнь шла своим чередом, пока Антон не решил купить квартиру в новостройке.
После долгих поисков он остановился на 85-метровой квартире в ЖК около метро Саларьево - современный комплекс с подземным паркингом и зелёным двором. Как типичный программист, к поиску ремонтников он подошёл педантично: изучил десятки предложений, провёл собеседования с кандидатами. В итоге выбрал бригаду с Авито с "15-летним опытом работы".
Денис (это я:) - один из создателей сервиса
За время ремонта у Антона мы с Димой часто приезжали к нему - помочь, посоветовать, и просто поржать над очередными косяками строителей. У нас обоих за плечами был серьёзный опыт управления командами, внедрения процессов, автоматизации и контроля качества. И знаете что? Нам казалось, что главное в ремонтном бизнесе - это грамотный менеджмент и организация процессов. И на самом деле, все примерно так и есть.
День когда мы решились
Если честно, мысли о собственной ремонтной компании появились у нас задолго до этого случая. В IT-тусовке часто шутят, что в России есть три верных пути: вебкам, айти и стройка. И мы, насмотревшись на хаос в ремонтной сфере, не раз обсуждали возможность открытия своей “фирмы”.
Мы выделили основные проблемы, которые должны были исправить с помощью своего сервиса
Первое - это постоянно растущие сметы и "задранная стоимость" на работы. Ну вы серьезно? Почему для меня ремонт в квартире должен чем-то отличаться от заказа носков на Вайлдберриз? Почему-то там нет такого, что цена носков может вырасти в 2 раза за время доставки. А тут начальная смета в 1 миллион превратилась почти в 1,7! И каждый раз это "ой, тут стены кривые", "ой, а тут придется докупить", "ой, а это мы не учли".
Второе - это бесконечно растущие сроки. Это еще хуже. Как люди с опытом в менеджменте, мы прекрасно знали, что растущие сроки – это всегда раздолбайство управления и ленивые рабочие. Но тут было чуть посложнее, об этом чуть позже. У Антона обещали сделать за 4 месяца, а в итоге растянули на 8.
Третье - хитрые прорабы. Это вообще отдельная история. Когда прораб говорит "давайте я сам закуплю материалы, у меня скидки", знайте - он накинет сверху процентов 30-40. А еще есть "срочные работы", которые почему-то не были учтены в смете. И конечно, вечная классика - экономия на материалах: заказываешь одно, а привозят что-то попроще, но по той же цене.
Целевая аудитория
А параллельно с этим мы определили нашу целевую аудиторию. Чтобы выделиться на конкурентном рынке, мы решили ориентироваться на молодых IT-специалистов и представителей “современных” профессий, живущих в Москве в возрасте 30-40 лет. Тех, кто покупает квартиру в новостройке и привыкших к хорошему сервису. Кто не готов, что его будут водить за нос и разводить на деньги.
Что с ценой?
При этом очень важно было держать цены НИЖЕ, чем у других компаний, иначе на рынке просто не выжить. В премиум сегмент нужен "пропуск" в виде большого количества работ для определенного типа клиентов, поэтому нам было понятно, что "брать" много - пока что, непозволительно. Но мы нашли способ: автоматизация процессов, прямые поставки материалов, четкое планирование работ и никаких скрытых накруток. Но несбыточной мечтой это покажется только обывателю: на самом деле сервис и правда должен быть таким, вообще любой.
История первого заказа летом 2023 года
А теперь самое интересное - наш первый заказ. Это была отдельная эпопея. Начало лета 2023, звонок от потенциального клиента.
Первый клиент оказался прямо "в яблочко" - тоже айтишник (пришедший из первой контекстной рекламы в яндексе запущенной на 20 тыс.), работал в крупной компании, купил двушку в панельке 80-х годов. Причем достаточно убитую - стены местами с дырками, старый паркет, трубы помнящие еще Горбачева... Но нам, если честно, даже повезло что первый объект был не новостройкой. На старом фонде учиться легче - там хотя бы есть на что посмотреть, в отличие от новостроек, где все "сюрпризы" спрятаны в голых стенах.
Дырка в стене была ДО демонтажа. Клиент купил квартиру с "убитым" ремонтом подешевле, в надежде сэкономить
Как мы мастеров искали
Начали с поиска бригады. Вот тут был первый холодный душ - оказалось, что найти классных специалистов без своей наработанной базы очень сложно. Мастера хорошего уровня либо уже при деле, либо просят космос. А те, кто сразу соглашается - ну, вы понимаете. За две недели провели больше 10 собеседований (назовем их так😊). Причем процесс собеседования мы сразу сделали "как в айти" - тестовые задания, проверка портфолио, разбор технологий работы. Бригадиры были в шоке - некоторые прямо уходили с собеседований, когда мы начинали распрашивать про технологии укладки плитки и показывали фотографии косяков с объектов с форумов.
В итоге нашли бригаду - два брата, которые до этого работали в крупной ремонтной компании, но ушли потому что устали от "серых" схем – по отношению К НИМ ЖЕ. В основном - задержки з/п и прорабы.
В том же санузле, но уже после демонтажных и некоторых черновых работ. Братья очень помогли нам с первым ремонтом, кроме этого, они дали нам контакты проверенных рабочих, которые впоследствии делали ремонт вместе с ними
Купили первый комплект инструмента - это отдельная история на 100 тысяч рублей. Ещё сразу купили свою тепловую пушку - это из необычного. Большинство компаний привлекают "потолочников" на субподряд. Мы захотели сразу начать формировать свой инструментарий для будущих сотрудников. Зато потом эта закупка очень помогла - не зависели от того, что принесет с собой бригада. Позже, когда начали расширяться купили свою штукатурную станцию. Это, на удивление, было самой выгодной покупкой.
Первые сложности
Начали ремонт. И тут поехало... Первый сюрприз - когда начали снимать старую штукатурку, оказалось что стены буквально рассыпались. Плюс под старым линолеумом в коридоре нашли деревянный пол с насыпью под ним.
Тут был первый серьезный разговор с заказчиком. Объяснили ситуацию, показали все фотки, рассказали что сколько будет стоит в соответствии с прайс-листом. Тут очень помогло то, что мы сразу взяли за правило - фотографировать вообще все. Каждый этап, каждый слой, каждую трубу.
С материалами тоже было весело. Первый месяц я лично объездил все крупные строительные магазины в радиусе 30 км. Искал поставщиков, договаривался о скидках. Помню, как чуть не купили партию плитки по "супер-выгодной" цене, а потом выяснилось что это условно "второй сорт" - брак, который продают через "серые" схемы.
Cделали систему закупок: (Первый заказ полностью сделан из материалов, купленных в Петровиче и на маркетплейсах). Бригада присылает список - мы проверяем цены у 3-4 поставщиков и заказываем где дешевле.
Мы сразу внедрили систему ежедневных фото-отчетов и еженедельных созвонов. Плюс сделали чат в телеграме, куда скидывали все чеки, все накладные, все фотки. Такая прозрачность очень помогла - клиент видел, что мы не химичим с ценами и не пытаемся на нем нажиться.
В итоге сделали.
Братья советовали нам недостающих специалистов по ходу ремонта и постепенно, укладываясь в срок мы сдавали клиенту новый и новый этап. Честно, это было не так сложно как казалось в начале, но нужно понимать, что на самом деле, проблем по ходу ремонта и мелких трудностей было ОЧЕНЬ много, просто мы как люди привыкшие, понимали что сейчас это и есть наша работа , за которую нам платит клиент - взять на себя все заботы по ремонту. Но серьезных форс-мажоров не возникало, максимум понервничали, когда внесли предоплату потолочникам, которых нашли по объявлению, после чего они явно начали задерживать сроки, но в итоге, все обошлось. Нам и до этого было ясно, что чем быстрее мы соберем свой , хотя бы, небольшой штат, тем лучше и выгоднее. Но для этого надо быть уверенным в постоянном потоке заказов, что мы на тот момент, не могли себе позволить.
Главное - мы поняли как надо и как не надо. Все закупки только через нас. Все договоренности - только в письменном виде.
По деньгам первый проект получился условно в ноль - не считая наших вложений в инструмент и рекламу. Но мы получили бесценный опыт, наработали связи с поставщиками (если это можно назвать так пафосно) и главное - поняли, что наша модель рабочая, хотя на тот момент не были в этом до конца уверены. Наши сомнения развеяло лето 2023 года.
1/5
Наша первая работа, которую нам помогли закончить "братья", советуя недостающих мастеров на каждый этап работ. Цена работ для заказчика вышла 750 000 рублей. Летом 2023 года, за аналогичный объём работ авитовские бригады просили до миллиона(!)
Сайт и маркетинг или как мы общаемся с клиентами ещё до первого звонка
Кстати, про сайт. Первую версию мы сделали за пару вечеров на Тильде - максимально простую: фотки, цены, контакты. Знаете что? Он у нас до сих пор такой – но с значительно изменённым UI/UX. Я иногда ловлю себя на мысли - вот мы же, можем сделать что-то крутое, с личным кабинетом, онлайн-сметами... Но потом смотрю вордстат, статистику и думаю - а зачем? Клиенты находят нас, звонят, все работает. Иногда лучшее решение - самое простое.
1/2
На главной странице "в лоб" о том кто мы, наши конкурентные преимущества, специализация и примеры работ
1/2
Сразу "ярко" заявляем о действующих скидках. Кроме этого, простым текстом пытаемся общаться с клиентом и убедить его в нашем сервисе, пока что, не общаясь с ним лично - конверсия в лиды увеличилась значительно, но важно, чтобы все предложения были реальны
А вот ворд стат. За последний месяц нас искали 680 раз не считая статистики переходов по прямой ссылке. Доказательство того, что дорогой сайт не нужен. Наш стоит 6 000 рублей в год, а сделан за 20 часов
Примеры лучших работ как маркетинговый инструмент
1/4
Оставляли подобные фото с примерами работ и вотермаркой в отзывах к жилым комплексам. Отличный маркетинговый инструмент - сразу определяем нужную ЦА и бесплатно заявляем о себе. Точно знаем, что минимум один клиент был из отзывов яндекс - поэтому работает
Как мы масштабировались и разбирались в проблемах ремонта
Теперь про то, как мы начали разбираться в проблемах ремонта и потихоньку расти. Знаете, за этот год мы много думали - почему вообще ремонтные компании задерживают сроки и не могут сделать работу по первоначальной цене? И нашли несколько интересных моментов.
Первое - сроки. Тут даже копать глубоко не пришлось - сам рынок сформирован так, что клиенты просто привыкли к задержкам. "А, ну это ремонт, тут всегда так" - классическая фраза. Благо тут нам помог опыт организации процессов из айти. Четкие спринты, ежедневные отчеты, календарный план. Работает как часы, если не филонить.
Второе - вечно растущая цена. Вот это было сложнее. В новостройках еще можно точно посчитать, а во вторичке... Но благодаря наработкам этот вопрос стал гораздо яснее. При правильно организации процессов, непредвиденные работы лучше оплатить из своих средств, чем терять клиента. Только так и делается сервис.
Третье - больная тема - воровство на материалах. Тут мы конкретно закрутили гайки. Завели строгий учет, до последнего мешка штукатурки. Прорабам сразу сказали - любая жалоба от клиента на нечестность - это конец сотрудничества. Знаете что самое смешное? Когда начали работать честно, оказалось что маржа все равно хорошая. Просто многие привыкли что надо обязательно накручивать еще и еще.
Неприятные особенности прозрачного сервиса
Большинство компаний, которые начинают работать честно, быстро сдуваются. Потому что сам потребитель привык к плохому сервису. Приходишь к клиенту, говоришь "мы все сделаем четко по смете и в срок", а он смотрит с недоверием - "да ладно, так не бывает". Сейчас в 2024-м ситуация получше, но рынок все еще очень консервативный.
Продвижение или как мы брали “Новую Москву”
Наш любимый Прокшино в Новой Москве - в 2024 году, это самый перспективный район в котором покупатели - наши потенциальные клиенты
Расти начали потихоньку. Сначала сделали специальные цены для новой Москвы - там как раз много новостроек, где мы хорошо научились работать. Потом пошли заказы по рекомендациям. Когда я говорю “пошли” заказы нужно понимать, что это 1-3 заказа в месяц стабильно, что на самом деле, тогда казалось не мало. С рекламой экспериментировали забавно - оставляли визитки в подъездах (да, просто старые добрые визитки!), ставили рекламные ящики у офисов продаж в дни выдачи ключей.
Был случай, когда на одном ЖК поставили такую стойку, а через неделю риелтор оттуда сам позвонил и предложил взять себе процент, если клиент пойдет к нам.
Сейчас берем 2-5 заказов в месяц, (летом было 5 в месяц, если разделить). Большинство клиентов приходят по рекомендациям. Штат за год работы постепенно собрали свой. Трудоустроено 14 сотрудников. Если их не хватало (как летом), привлекали мастеров с которым уже работали раньше, по договору ГПХ. Просили всех регистрировать самозанятость или ИП – это было тяжело, но зато честно платим налоги по Доходы – расходы.
Как устроен процесс
Знаете, что самое сложное в ремонтном бизнесе? Нет, не поиск клиентов и не работа с материалами. Самое сложное - это выстроить систему, которая будет удовлетворять запросы клиента и при этом позволит компании зарабатывать. Мы долго думали над этим и придумали несколько интересных решений.
Начнем с оплаты. Если посмотреть на московский рынок, там забавная система - вроде бы без предоплаты, но это только за первый, самый дешевый этап. А потом - бац, и клиент должен внести 50% от всей суммы. И попробуй не внеси - бригада уйдет на другой объект. Мы сделали иначе: разбили весь ремонт на этапы (их получилось 12 для капитального ремонта), и берем предоплату только за текущий этап. То есть клиент всегда понимает, за что именно платит, и может контролировать процесс.
С договорами тоже интересно получилось. Сначала делали один стандартный, а потом поняли - люди разные, запросы разные. Сейчас у нас три варианта: просто на работы (для тех, кто сам хочет закупать материалы), на работы плюс материалы (самый популярный), и полный пакет с дизайн-проектом. Кстати, про дизайн - мы не держим штатных дизайнеров, работаем с фрилансерами. Так получается и дешевле для клиента, и качество выше - каждый дизайнер специализируется на своем стиле.
Первый образец договора, который ставили на сайт
Расчёт стоимости
Расчет стоимости работ - отдельная история. Когда начинали, было очень сложно. На рынке нет четких цен - один мастер берет 3 тысячи за квадрат стяжки, другой - тысячу, третий вообще говорит "ну давайте посмотрим по факту". Сначала работали по среднему прайсу, но часто уходили в минус по отдельным этапам - то бригада дороже встанет, то материала больше уйдет. Сейчас, когда появились постоянные сотрудники, стало проще - мы точно знаем их расценки и можем давать фиксированную цену.
Материалы
Выяснилось, что в крупных магазинах часто дешевле в сравнении с рынками стройматериалов, особенно если ловить акции. Плюс появились маркетплейсы - там вообще красота по ценам. И главное - полная прозрачность, клиент сам видит все позиции. Если находим материал дешевле - возвращаем разницу. Был случай, когда на керамограните сэкономили клиенту почти 30 тысяч - просто потому что, нашли ту же плитку в другом магазине по акции.
Как работаем сейчас
Сейчас берем 2-5 заказов в месяц, зависит от сезона и сложности объектов.
Процесс обкатан до мелочей: сначала выезд на замер, потом предварительная смета. Если клиента все устраивает - детальный расчет и договор. Дальше начинается самое интересное - согласование материалов, закупки, работа.
Особенности продвижения и подводные камни
С продвижением интересно получилось. Сначала, как все, полезли на Авито. И знаете что? Не зашло. Там своя специфическая аудитория и конкретно у нас, с Авито “ не пошло”.
Свежий пример страницы с авито в категории "Ремонт квартир". Как клиенты определяются с подрядчиком среди тысяч однотипных объявлений - хороший маркетинговый вопрос, который мы решаем, после чего полноценно "зайдём" на авито
Пробовали контекстную рекламу яндекс - тоже так себе результат. Клики дорогие, конверсия низкая. Зато отлично зашла таргетированная реклама в Instagram* (*запрещен в РФ) и реклама в районных пабликах ВКонтакте. Особенно в группах новостроек в ТГ - там как раз наша целевая аудитория.
Но главный канал - сарафанное радио. Причем работает оно интересно. Всегда знаешь , от кого пришли заказчики и проще выстраивать коммуникацию. Есть клиент - он доволен, рассказал коллегам - и понеслось. За три месяца получили еще два заказа от сотрудников той же компании. Выходит такой “корпоративный ремонт”)))
Были, конечно, и провалы в продвижении. Пытались работать с риелторами - предлагали им комиссию за клиентов. Не пошло - у них свои схемы, свои бригады. Пробовали давать рекламу в лифтах, входных группах - тоже мимо, ни одного обращения, но тут скорее из-за того что эта реклама буквально на день.
ИТОГ
Сейчас мы существуем уже чуть больше года и в целом смотрим на ремонтный рынок не так, как раньше. За это время мы сделали несколько важных заметок для себя:
Оказывается, большинство проблем в ремонте - это не технические сложности, а банальная организация процессов. Когда все четко спланировано и каждый знает что делать - даже самый сложный ремонт идет как по маслу.
Мы поняли, почему многие компании "химичат" с ценами и сроками - просто потому что не умеют нормально считать и планировать. Когда все процессы выстроены правильно, можно работать честно и все равно оставаться в плюсе.
Самое сложное - это не найти клиентов или научиться делать ремонт. Самое сложное - это переломить привычку рынка работать "по-серому". И заказчики, и исполнители настолько привыкли к непрозрачным схемам, что честный подход вызывает удивление.
Мы до сих пор учимся. Каждый объект - это новый опыт и новые вызовы (особенно по части коммуникаций с клиентами). Но главное - мы видим, что наша модель работает и пока что, нам удается держать ценник немного ниже рыночного, за счёт того что до сих пор не имеем в найме маркетологов, IT, отдела продаж и менеджеров по продажам. Стараемся нанимать именно рабочих, все остальное можно отдать на аутсорс.
Уважаемые пикабушники, были рады составить для вас эту статью! С любовью, СК Комната
Каждый день кто-то раздражает — новости, операторы связи, чиновники, соседи с перфоратором в субботу. Хочется выговориться, но не ссориться. Так появилась идея — сделать место, где можно просто сказать: “Вот что меня злит.”
Я не программист в классическом смысле, просто люблю возиться с кодом. Начал с формы и textarea — написал пару строк на HTML и JS. Потом подумал: а было бы круто, если бы люди могли голосовать — “злит” или “не злит”. Посты с рейтингом, капча, счётчик символов — всё добавлял по чуть-чуть.
Когда-то я попросил помощи у нейросети — просто спросил, как сделать красивый счётчик символов. А дальше закрутилось. В целом вышло где-то 2.5к строк кода, 14 файлов всего, 3 js файла с основными скриптами и 1 css файл с стилями к страницам, 10 php страниц что-бы разбросать функции ну и собственно говоря 5 страниц для посещения. Простая авторизация, база mysql. ИИ подкинул идеи, помог с анимацией placeholder’а, со структурой базы, с тем, чтобы всё выглядело аккуратно. По сути, я только ставил задачи, но как будто с умным напарником, который не спит и не ноет.
Теперь на злит.рф можно написать, что тебя злит — например: “курьер обещал через 10 минут, а приехал через два часа”, или “билет купил, а концерт отменили без возврата”. Люди читают, жмут “😡 Злит” или “🙂 Не злит”, и из этих реакций рождается рейтинг. Топ злитов — это срез народного раздражения, а комментарии иногда превращаются в добрые мини-форумы поддержки.
Сайт простой, без лишнего пафоса, без рекламы. Просто пространство, где можно выдохнуть. Иногда достаточно просто написать — и становится легче.
В планах было-бы здорово добавить интерактивную карту России где отображались бы настроения.
В целом приятный опыт, программирование вышло на какой-то автоматизированный уровень. Использовал ChatGPT Если есть идеи, буду рад что-то добавить, хотя это скорее просто забить свободное время.
Недавно приобрел себе первый в жизни Ultrawide монитор 43.8", но при серфинге инета обнаружил, что некоторые сайты загружаются на левой стороне экрана, а не по середине. Как отцентровать это? желательно в автоматическом режиме, т.к. кодить не умею от слова совсем.
Какова основная цель и функциональность декоратора @staticmethod в классах Python, и как он влияет на взаимодействие метода с атрибутами класса и экземпляра?
A. Декоратор @staticmethod преобразует метод в метод только для класса, который может изменять только атрибуты класса и не может получать доступ или изменять данные, специфичные для экземпляра.
B. Он позволяет вызывать метод у экземпляра класса или непосредственно из самого класса без необходимости ссылки на класс или экземпляр, делая метод более похожим на простую функцию, которая не работает с объектом.
C. Этот декоратор автоматически оптимизирует метод для работы в параллельных потоках, улучшая производительность для высоконагруженных функций внутри классов.
D. Декоратор @staticmethod ограничивает метод возможностью вызова только во время создания объекта класса, в первую очередь используется для инициализации статических атрибутов класса.
Вопрос 42.
Учитывая значительные особенности типа данных "список" в Python, каковы последствия использования списков для операций, включающих частое вставление и удаление элементов, особенно в начале списка?
A. Списки оптимизированы для быстрого доступа к фиксированной позиции, что делает их идеальными для приложений, требующих частого вставления и удаления в любой позиции, включая начало.
B. Списки Python реализованы как массивы, а это означает, что вставки и удаления в начале списка могут быть медленными, поскольку они требуют сдвига всех последующих элементов в памяти.
C. Тип данных "список" автоматически сортирует свои элементы для поддержания порядка после каждой вставки или удаления, что значительно повышает производительность при частом добавлении или удалении элементов.
D. Списки в Python — это связанные списки, гарантирующие, что вставка или удаление элементов в любой позиции, включая начало, выполняется стабильно быстро.
Вопрос 43.
Как оператор with в Python повышает читаемость кода и управление ресурсами, особенно в контексте обработки файлов и других ресурсоемких операций?
A. Оператор with ограничивает блок выполнения доступом только к внешним ресурсам, гарантируя, что все ресурсоемкие операции будут централизованы.
B. Он автоматически управляет открытием и закрытием ресурсов, гарантируя, что они будут правильно освобождены после выполнения блока кода, что упрощает обработку ошибок и управление ресурсами.
C. Этот оператор действует как цикл, который непрерывно проверяет наличие ошибок в блоке кода, предотвращая сбои программы из-за необработанных исключений.
D. Оператор with ускоряет выполнение кода внутри своего блока, оптимизируя использование памяти и циклы ЦП.
Вопрос 44.
В Python, как функция zip облегчает обработку нескольких итерируемых объектов, и каков ее типичный случай использования в задачах манипулирования и агрегации данных?
A. Функция zip объединяет несколько списков в один список кортежей, где каждый кортеж содержит элементы из всех списков по определенному индексу, оптимизируя использование памяти за счет сжатия данных.
B. Она итерирует по нескольким итерируемым объектам одновременно, возвращая итератор кортежей, где каждый кортеж содержит элементы итерируемых объектов с тем же индексом, что полезно для параллельной обработки данных.
C. Функция zip в Python шифрует данные из нескольких итерируемых объектов для защиты их содержимого перед обработкой, в основном используется в приложениях, работающих с конфиденциальными данными.
D. Эта функция транслирует наименьший итерируемый объект в более крупные, автоматически заполняя пропущенные значения для синхронизации.
Вопрос 45.
Каково назначение и типичное применение оператора assert в Python, особенно в контексте отладки и разработки более надежного кода?
A. Оператор assert в Python в основном используется для определения главной функции программы, гарантируя, что она является первой частью исполняемого кода.
B. Он используется для проверки корректности условий в программе; если условие истинно, программа продолжается, но если ложно, программа выдает AssertionError, помогая в отладке.
C. Python использует оператор assert для шифрования утверждений в коде, предотвращая несанкционированный доступ к отладочным выражениям и конфиденциальным проверкам.
D. Оператор assert служит инструментом документирования, который автоматически генерирует руководства пользователя на основе утверждений, определенных во всем коде.
Вопрос 46.
Какова функциональность функции super() в Python, особенно в контексте объектно-ориентированного программирования и иерархий наследования?
A. Функция super() используется для возврата прокси-объекта, который делегирует вызовы методов родительскому или братскому классу, позволяя получить доступ к унаследованным методам, которые могли быть переопределены в классе.
B. Она служит механизмом для обхода переопределения методов в подклассах, гарантируя, что метод из родительского класса не может быть переопределен ни в каких классах-потомках.
C. Python использует super(), чтобы автоматически обнаруживать и вызывать конструктор базового класса, независимо от того, какой метод или атрибут используется.
D. Функция инициализирует все переменные в родительском классе значениями по умолчанию, независимо от того, как они были инициализированы в подклассе.
Вопрос 48.
В Python, какова роль переменной __name__, и как она используется обычно в скриптах и модулях?
A. Переменная __name__ используется для определения имени класса объекта, позволяя динамически ссылаться на тип класса во всем приложении.
B. Это встроенная переменная, которая содержит имя модуля, в котором она используется; если модуль запускается как основная программа, то он содержит строку "__main__".
C. Эта переменная действует как идентификатор для адресов памяти, помогая в прямом управлении местоположением объектов внутри приложений Python.
D. __name__ — это инструмент отладки Python, который выводит путь выполнения текущей функции, помогая в трассировке и ведении журнала.
Вопрос 49.
Как Python управляет памятью, особенно в отношении создания и уничтожения объектов?
A. Python использует модель ручного управления памятью, где разработчики должны явно выделять и освобождать память, используя системные вызовы.
B. Он реализует автоматизированную систему с использованием комбинации подсчета ссылок и сборщика мусора для управления памятью, которая динамически управляет выделением и освобождением объектов.
C. Управление памятью в Python осуществляется посредством обязательного файлового обмена, где данные временно хранятся на диске во время выполнения.
D. Python позволяет программистам настраивать алгоритм выделения памяти в режиме реального времени, оптимизируя производительность для определенных типов структур данных.
Вопрос 50.
Каковы последствия использования оператора import в скриптах Python, особенно при управлении зависимостями и модульном программировании?
A. Оператор import увеличивает время выполнения скриптов, загружая все доступные библиотечные модули в начале, независимо от того, используются ли они в скрипте.
B. Он позволяет программистам получать доступ к коду из других модулей или библиотек в своих программах, способствуя повторному использованию кода и модульному программированию.
C. Используя import, Python компилирует каждый импортированный модуль в отдельный байт-код, чтобы предотвратить перекомпиляцию при будущих выполнениях, снижая гибкость.
D. Оператор используется для шифрования и защиты кода модулей для предотвращения несанкционированного доступа и изменения кодовой базы.
Ответы:
41, Правильный ответ: B
Объяснение:
Декоратор @staticmethod в Python используется для определения методов, которые логически связаны с классом, но не требуют доступа к данным конкретного экземпляра или самого класса.
Вариант A не верен: Статические методы не могут изменять атрибуты класса напрямую, как это делают методы класса.
Вариант B верен: @staticmethod позволяет вызывать метод как у экземпляра, так и у класса, он не привязан к конкретному экземпляру класса, поэтому не требует аргумента self или cls.
Вариант C не верен: @staticmethod не оптимизирует метод для работы в параллельных потоках.
Вариант D не верен: @staticmethod не ограничивает вызов метода только во время создания объекта.
Основные характеристики статических методов:
Нет доступа к экземпляру: Статические методы не принимают неявный первый аргумент self, как это делают методы экземпляра. Они не имеют доступа к данным конкретного экземпляра класса.
Нет доступа к классу: Статические методы также не принимают cls в качестве первого аргумента, что означает, что они не могут напрямую обращаться к атрибутам класса.
Работают как обычные функции: Статические методы похожи на обычные функции, но они определены внутри класса и связаны с ним логически.
Вызываются без объекта: Статический метод может вызываться как у экземпляра объекта (instance.method()), так и непосредственно у самого класса (ClassName.method()).
Используются для утилит: Обычно статические методы используются для создания утилитных функций, связанных с классом, но не требующих доступа к конкретным данным экземпляра или класса.
Пример:
В результате:
add_numbers не требует доступа к экземпляру класса, поэтому может быть вызван как у класса, так и у экземпляра.
modify_class_variable модифицирует атрибут класса class_var.
Таким образом, вариант B является правильным ответом.
42, Правильный ответ: B
Объяснение:
В Python списки реализованы как динамические массивы. Это означает, что они предоставляют быстрый доступ к элементам по индексу, но операции вставки и удаления элементов в начале списка могут быть медленными.
Вариант A не верен: Списки не оптимизированы для быстрых вставок и удалений в начале списка.
Вариант B верен: Вставка или удаление элементов в начале списка требует сдвига всех последующих элементов в памяти, что является медленной операцией для больших списков.
Вариант C не верен: Списки не сортируют элементы после вставок или удалений. Сортировку нужно делать явно.
Вариант D не верен: Списки в Python не являются связанными списками.
Почему вставка и удаление в начале списка медленные:
Сдвиг элементов: Когда вы вставляете элемент в начало списка, Python должен сдвинуть все существующие элементы на одну позицию вправо, чтобы освободить место для нового элемента. Это занимает время, особенно для больших списков.
Аналогично при удалении: При удалении элемента из начала списка все последующие элементы нужно сдвинуть влево, чтобы заполнить освободившееся место.
Производительность операций:
Доступ по индексу: O(1) – постоянное время, не зависит от размера списка.
Вставка/удаление в конце списка: O(1) – вставка или удаление последнего элемента не требует сдвигов.
Вставка/удаление в начале/середине списка: O(n) – время выполнения зависит от количества элементов в списке, потому что нужно сдвигать все последующие элементы.
Поиск элемента по значению: O(n) - время выполнения зависит от количества элементов, нужно последовательно перебирать все элементы пока не найдется нужный.
Пример:
43, Правильный ответ: B
Объяснение:
Оператор with в Python предназначен для упрощения управления ресурсами, такими как файлы, сетевые соединения и другие ресурсоемкие операции. Он использует так называемые менеджеры контекста, которые гарантируют, что ресурсы будут правильно освобождены после их использования, даже если во время работы с ними возникли исключения.
Вариант A не верен: with не ограничивает доступ к внешним ресурсам, а помогает их корректно использовать.
Вариант B верен: with гарантирует, что ресурсы будут правильно закрыты, что упрощает управление и обработку ошибок.
Вариант C не верен: with не является циклом проверки ошибок и не предотвращает сбои программы.
Вариант D не верен: with не влияет на скорость выполнения, его основная цель - управлять ресурсами.
Как работает with:
Вход в контекст: Когда выполняется оператор with, вызывается метод __enter__ менеджера контекста. Обычно этот метод подготавливает ресурс (например, открывает файл).
Выполнение кода: Выполняется блок кода, находящийся внутри with.
Выход из контекста: После выполнения блока кода вызывается метод __exit__ менеджера контекста, гарантируя корректное закрытие или освобождение ресурса, даже если в блоке try возникло исключение.
Преимущества использования with:
Автоматическое управление ресурсами: with автоматически закрывает файлы, освобождает соединения, и т.д. после использования, что снижает риск утечки ресурсов.
Чистый код: with делает код более чистым, так как он явно указывает, где ресурс используется и управляется.
Безопасность: Он обеспечивает корректное освобождение ресурсов даже в случае возникновения ошибок, что делает код более надежным.
Улучшение читаемости: with явно показывает границы работы с ресурсом, что улучшает читаемость кода.
Пример:
В результате:
Файл my_file.txt откроется автоматически при входе в блок with.
После выполнения кода внутри блока with, файл закроется автоматически (даже если возникнет исключение).
Если файла не существует, то обработается исключение FileNotFoundError, если произойдет любая другая ошибка, то сработает общее исключение Exception.
Таким образом, вариант B является правильным.
44, Правильный ответ: B
Объяснение:
Функция zip() в Python - это мощный инструмент для агрегации данных из нескольких итерируемых объектов. Она позволяет параллельно итерировать по этим объектам и создавать последовательность кортежей, где каждый кортеж содержит элементы из соответствующих позиций в каждом итерируемом объекте.
Вариант A не верен: zip не объединяет в один список, а создает итератор кортежей. Также она не занимается сжатием данных.
Вариант B верен: zip действительно итерирует по нескольким итерируемым объектам одновременно, возвращая итератор кортежей.
Вариант C не верен: zip не шифрует данные.
Вариант D не верен: zip не дополняет списки до одной длины. Итерирование прекращается, когда один из итерируемых объектов закончится.
Как работает zip():
zip() принимает на вход несколько итерируемых объектов (списки, кортежи, строки и др.).
Он возвращает итератор, который производит кортежи.
Каждый кортеж содержит элементы с одинаковыми индексами из соответствующих итерируемых объектов.
Итерация продолжается до тех пор, пока не закончится самый короткий итерируемый объект.
Типичные случаи использования zip():
Параллельная обработка данных: zip() позволяет обрабатывать данные из нескольких списков, кортежей или других итерируемых объектов одновременно.
Создание словарей: zip() может использоваться для создания словарей из пар ключей и значений.
Транспонирование матриц: zip() может быть использована для транспонирования матриц, меняя местами строки и столбцы.
Пример:
В результате:
Первый пример объединяет списки имен и оценок в список кортежей.
Второй пример создаёт словарь с именами в качестве ключей и оценками в качестве значений.
Таким образом, вариант B является верным, точно описывая функцию zip() и ее применение.
45, Правильный ответ: B
Объяснение:
Оператор assert в Python является инструментом для отладки, который используется для проверки корректности условий во время выполнения программы.
Вариант A не верен: assert не определяет главную функцию программы.
Вариант B верен: assert проверяет условие и если оно ложно, то выводит исключение AssertionError, помогая в отладке.
Вариант C не верен: assert не шифрует код.
Вариант D не верен: assert не генерирует документацию.
Как работает assert:
assert принимает в качестве аргумента условие, которое должно быть истинным.
Если условие истинно (возвращает True), программа продолжает выполнение без каких-либо действий.
Если условие ложно (возвращает False), Python вызывает исключение AssertionError. Это прерывает выполнение программы и выводит сообщение об ошибке, которое можно использовать для отладки.
Когда использовать assert:
Проверка предположений: Используйте assert для проверки предположений о состоянии вашей программы, которые должны быть верными. Например, если вы ожидаете, что переменная всегда должна быть положительной, добавьте assert variable > 0.
Отладка: Используйте assert как инструмент для выявления ошибок на ранних этапах разработки. Это помогает быстро находить и исправлять логические ошибки.
Контракты: В некоторых случаях assert можно использовать для проверки контрактов между функциями и модулями, гарантируя правильное использование API.
Пример:
В результате:
При вызове calculate_area(5, 10), оба assert условия выполняются, и программа продолжает работу и выводит "Площадь: 50".
При вызове calculate_area(-5, 10), первое assert условие не выполняется, и выводится ошибка AssertionError: Ширина должна быть положительной.
Таким образом, вариант B является правильным, поскольку он точно описывает роль assert в проверке условий и отладке.
46, Правильный ответ: A
Объяснение:
Функция super() в Python является важным инструментом в объектно-ориентированном программировании, особенно при работе с иерархией классов и множественным наследованием.
Вариант A верен: super() создает прокси-объект, который перенаправляет вызовы методов к родительскому классу.
Вариант B не верен: super() не обходит переопределение методов, а наоборот, используется для вызова переопределенных методов родительского класса.
Вариант C не верен: super() не используется для автоматического вызова конструктора базового класса, это вызывается при наследовании через вызов super().__init__()
Вариант D не верен: super() не инициализирует переменные в родительском классе значениями по умолчанию, а вызывает методы базового класса.
Как работает super():
Доступ к родительскому классу: super() позволяет подклассу вызывать методы родительского класса. Это особенно полезно, когда подкласс переопределяет метод родителя, но при этом нужно выполнить оригинальную версию родительского метода.
Множественное наследование: В случае множественного наследования, super() помогает управлять вызовами методов в правильном порядке (Method Resolution Order - MRO).
Инициализация родительского класса: Часто используется в конструкторах __init__(), чтобы вызвать конструктор родительского класса и выполнить его инициализацию.
Пример:
В результате:
super().__init__(name) в дочернем классе позволяет вызвать метод __init__() из родительского класса.
super().speak() в дочернем классе вызывает метод speak из родительского класса, а затем печатает что то своё.
Таким образом, вариант A является правильным ответом.
47, Правильный ответ: B
Объяснение:
Лямбда-функции в Python - это анонимные функции, то есть функции без имени. Они определяются с помощью ключевого слова lambda и используются для создания простых функций "на лету" в одну строку.
Вариант A не верен: Лямбда-функции не предназначены для постоянного использования и имеют ограниченные возможности по сравнению с обычными функциями, созданными с помощью def.
Вариант B верен: Лямбда-функции - это анонимные функции, определяемые в одну строку, и они обычно используются, когда нужна простая функция для кратковременного использования (например, при передаче в map(), filter(), sort()).
Вариант C не верен: Лямбда-функции не управляют памятью автоматически. Они работают так же, как обычные функции с точки зрения управления памятью.
Вариант D не верен: Лямбда-функции не связаны с управлением глобальными переменными.
Ключевые характеристики лямбда-функций:
Анонимность: Лямбда-функции не имеют имени, в отличие от обычных функций, определенных с помощью def.
Компактность: Они записываются в одну строку и могут содержать только одно выражение.
Область применения: Лямбда-функции часто используются в качестве аргументов для функций высшего порядка, таких как map(), filter(), sorted() и т.д., где нужно передать простую функцию для обработки данных.
Ограничения: Лямбда-функции не могут содержать множественные выражения или сложные конструкции, например циклы и условные операторы.
Пример:
В результате:
Лямбда-функция используется для возведения в квадрат каждого элемента списка numbers с помощью map().
Лямбда-функция используется для фильтрации четных чисел из списка numbers c помощью filter().
Лямбда-функция используется для сортировки списка кортежей points по второму элементу.
Таким образом, вариант B является правильным ответом.
48, Правильный ответ: B
Объяснение:
Переменная __name__ — это специальная встроенная переменная в Python, которая автоматически устанавливается интерпретатором Python. Она используется для определения того, запущен ли модуль как основной скрипт или импортируется в другой модуль.
Вариант A не верен: __name__ не связана с именами классов или динамической типизацией.
Вариант B верен: Когда модуль запускается как основная программа, Python устанавливает __name__ в "__main__". Если модуль импортируется в другой скрипт, __name__ устанавливается в имя модуля.
Вариант C не верен: __name__ не связана с управлением адресами памяти.
Вариант D не верен: __name__ не предназначена для отладки, а для определения контекста запуска модуля.
Как используется __name__:
Часто используется для определения, является ли скрипт основным исполняемым файлом или импортирован как модуль. Это позволяет выполнять определенный код, например вызывать функцию main(), только если скрипт запущен напрямую.
Таким образом, вариант B является правильным ответом.
49, Правильный ответ: B
Объяснение:
Python использует автоматическое управление памятью, которое включает в себя два основных механизма:
Подсчет ссылок: Python автоматически отслеживает количество ссылок на каждый объект в памяти. Когда количество ссылок на объект падает до нуля, объект считается неиспользуемым и готов к удалению.
Сборщик мусора: Python также имеет сборщик мусора, который периодически запускается и находит объекты, на которые больше нет ссылок (например, циклические ссылки, которые подсчет ссылок не может обнаружить), и освобождает занимаемую ими память.
Вариант A не верен: Python не использует ручное управление памятью, как в C или C++.
Вариант B верен: Python действительно использует автоматизированную систему с подсчетом ссылок и сборщиком мусора.
Вариант C не верен: Python не использует файловый обмен для управления памятью.
Вариант D не верен: Python не позволяет программистам настраивать алгоритм выделения памяти в реальном времени.
Подробное объяснение:
Подсчет ссылок:
Когда создается объект, счетчик ссылок устанавливается в 1.
При присвоении объекта новой переменной или передаче в функцию, счетчик ссылок увеличивается.
Когда переменная, ссылающаяся на объект, выходит из области видимости или ей присваивается другое значение, счетчик ссылок уменьшается.
Когда счетчик ссылок достигает нуля, Python автоматически освобождает память, занимаемую объектом.
Сборщик мусора:
Подсчет ссылок не может справиться с ситуациями, когда объекты ссылаются друг на друга циклически (так называемые циклические ссылки). В этом случае объекты могут не быть удалены, даже если на них нет прямых ссылок.
Сборщик мусора периодически сканирует память в поисках таких циклических ссылок и удаляет объекты, вовлеченные в эти циклы, когда они больше не используются.
Преимущества автоматического управления памятью:
Упрощение разработки: Разработчикам не нужно явно выделять или освобождать память, что снижает сложность кода и риск утечек памяти.
Повышение надежности: Автоматическое управление памятью снижает количество ошибок, связанных с управлением памятью.
Эффективность: Автоматическое управление памятью в Python достаточно эффективно в большинстве случаев, так как позволяет сэкономить память.
Таким образом, вариант B является верным ответом.
50, Правильный ответ: B
Объяснение:
Оператор import в Python является фундаментальным для организации кода в модули и повторного использования кода из других файлов или библиотек.
Вариант A не верен: Оператор import не загружает все доступные модули, а только те, которые явно указаны в import-запросе.
Вариант B верен: Именно оператор import делает доступным код из других модулей, позволяя повторно использовать код и организовывать программу в виде модулей.
Вариант C не верен: Python действительно компилирует импортированный модуль в байт-код (файл .pyc), но это делается для ускорения будущих импортов, а не для снижения гибкости.
Вариант D не верен: Оператор import не шифрует код.
Подробное объяснение:
Модули: В Python модулем является любой файл с расширением .py. Он может содержать функции, классы и переменные, которые могут быть использованы в других программах.
import: Ключевое слово import загружает модуль в текущее пространство имен, позволяя использовать его код. Вы можете импортировать модуль целиком (например, import math) или импортировать конкретные элементы модуля (например, from math import sqrt).
Цель импорта: Позволяет разработчикам включать функциональность из одного модуля в другой.
Повторное использование кода: Программисты могут повторно использовать код в разных частях программы или в разных программах.
Модульность: Программа может быть разделена на логические блоки (модули), каждый из которых выполняет свою определенную функцию.
Пример:
В результате:
Скрипт main.py успешно импортирует модуль my_module и использует его функцию my_function().
Скрипт main.py импортирует функцию sqrt из модуля math и использует её.
Таким образом, вариант B является правильным, точно описывая назначение и использование оператора import.
Продолжение следует. Подпишись, чтобы не пропустить.
В 2022 году на IT специальности в российские ВУЗЫ поступило 117 тысяч человек, в 2023 году это количество увеличилось до 126 тысяч (https://www.kommersant.ru/doc/6713963).
При этом сама доля выпускников IT‑направлений в высших учебных заведениях России выше, чем в западных странах, об этом писали в сборнике «Образование в цифрах: 2023», подготовленном НИУ ВШЭ совместно с Минпросвещения. В декабре 2023 года замглавы Минцифры Андрей Заренин оценивал общее количество обучающихся по IT-профилю в ЦЕЛЫХ 500 тысяч человек, и это только на бюджетных местах.
Так что же можно ожидать от найма в 2025 году?
Ну начнем с того что этом году произойдет очередной выпуск огромной толпы айти вкатунов, желающих поднимать хоть какой-то кэш, что усугубит уже и без того трагичную ситуацию. Уже сейчас начался «прогрев» внутри IT-компаний на тотальную экономию, разумеется это будет делаться за счет экономии на наших бенефитах, так и увольнения части сотрудников:
В «дочках» Сбербанка массовые увольнения. Под ударом программисты и разработчики. Как рассказал CNews руководитель одного из отделов в Ecom.tech, в «Купере» уже уволили 20% ИТ-специалистов: из 1000 около 200 человек. «Объясняют это экономией бюджета и указанием сверху», — отметил он. По словам другого из ИТ-специалистов Ecom.tech, увольнения начались до наступления 2025 г. В одном только «Мегамаркете» сократить могут до 25% сотрудников, отметил он
Следовательно в текущем году сильно сократится количество вакансий, конкуренция достигнет небывалых масштабов. Продавать свои курсы о вкате становится все сложнее, народ начинает все больше понимать к чему идет профессия программиста в РФ, в условиях кризиса и перепроизводства кадров. На каналах ИТ воздуханов все чаще всплывают гневные залайканные комментарии (которые они стараются снести) о реальном положении дел в ИТ:
Зачем вкатываться в IT? Куда лучше вкатиться в инфоцыганство и продавать рассказы о том, как нужно вкатываться в IT. Ежу понятно что если прям сильно захотеть можно в космос улететь. Вопрос нахрена только. В мое время студенты открывали дверь в айти-конторы ногой. И получали в 2-3 раза выше средней з.п. И никто не считал что это космос. Щаз надо быть кандидатом наук что бы тебя соизволили взять поработать бесплатно. Народ! Идите лучше мебель собирать. Можно за пару месяцев освоить базис-мебельщик и быть синьор-мебельщциком.
Менторы и ИТ продаваны лопат теперь выдают новую методичку про поиск работы за рубежом, но будем реалистами, многие ли из разработчиков действительно будут готовы учить английский или переезжать в другую страну? Ведь им же все это время внушали, что программистов мало.
Примечательно, что если вы посмотрите выдачу американского ютуба с запросом что-то вроде “become a programmer”, то вы обнаружите большое количество видосов с посылом о том что вам вовсе не стоит становиться программистом. В США разработчики уже давно осознали всю суть IT-хайпа и уже не рассматривают работу программиста как нечно элитное, в России же этот период, возможно, выпадет как-раз на конец 2024 года и собственно сам 2025, с появлением первых сообщений о массовых увольнениях и порезки льготной айти ипотеки.
Конечно программисту на теплом месте в банке тяжело будет принять сложившуюся ситуацию, но рано или поздно наступит стадия принятия и придется приспосабливаться к новым условиям на рынке и ситуации в мире. Кратко о ситуации на рынке айти и о перспективах на будущее хорошо разобрали тут