Forwarded from YeaHub
Февраль и март выдались для нас непростыми. Мы прошли через сложную миграцию и разделили проект на два отдельных продукта.
Теперь у нас есть:
— yeahub.ru — публичная SEO-ориентированная часть на Next.js с быстрым серверным рендерингом
— app.yeahub.ru — основное приложение: личный кабинет пользователя со статистикой, прогрессом и аналитикой
🔥 Лайвкодинг — наконец-то готов
Мы серьезно прокачали сервис лайвкодинга:
— добавили привязку задач к коллекциям (собеседованиям)
— сделали связь с компаниями
— теперь можно готовиться по задачам с реальных собеседований
Уже доступны задачи из: Сбер, Яндекс, Авито, VK, Ozon, Т-Банк и других компаний.
📌 Сейчас добавлено ~100 задач.
Да, это меньше, чем планировали — но пришлось сделать шаг назад, чтобы сделать десять вперед.
Мы полностью переработали:
— шаблон задач
— систему тесткейсов
Ранее была допущена ошибка, из-за которой пришлось вручную исправить 80+ задач 😢
Но теперь база готова к масштабированию — и мы можем быстро и правильно наполнять её дальше.
📈 Что дальше по лайвкодингу
Мы будем активно развивать этот сервис.
Это не только про собеседования — это инструмент для роста и прокачки.
Планируется много новых фич.
📅 Регулярные обновления контента
Мы выстроили процесс: каждую неделю 4–8 собеседований, 6–10 задач
И каждое обновление будем анонсировать, чтобы вы всегда были в курсе.
🛠 Сейчас в разработке (2 ключевых сервиса)
Агрегатор вакансий + платформа размещения вакансий
ATS-оптимизация резюме
— Бэкенд почти готов.
— Идёт дизайн.
— Фронтенд начнем совсем скоро.
🎯 Цель — выпустить оба сервиса в бэта до лета.
🧠 Новая структура обучения
Раньше было: Навык → Вопрос
Теперь: Навык → Тема → Вопрос
Это сильно упрощает обучение.
Теперь можно: готовиться точечно к собеседованиям или системно изучать темы
💻 Мы — open source
Мы не бросаем слов на ветер. Мы делаем.
Код проекта открыт https://github.com/YeaHubTeam:
— фронтенд
— мобильные приложения
— backend на Python (решили новый сервис делать публично, для новичков)
— автотесты
Это open source платформа, где новички могут учиться и смотреть на реальные практики.
❤️ Поддержка
Вы можете поддержать нас, оформив подписку. Это напрямую влияет на:
— добавление контента
— развитие платформы
— новые фичи
Вы можете быть уверены — мы не стоим на месте. Работа реально кипит: почти каждый день мержатся новые фичи, мы постоянно развиваем продукт и улучшаем уже существующие сервисы.
У нас полностью открытый код, и это не просто слова. Вы в любой момент можете зайти и посмотреть активность, коммиты и то, как проект развивается каждый день.
По подписке: сейчас стоимость — 800 рублей за месяц и 1800 рублей за 3 месяца. Это уже ниже, чем у аналогичных сервисов. При этом важно понимать — после выхода новых сервисов (агрегатор вакансий и ATS для резюме) цена будет пересмотрена.
Если хотите зафиксировать текущую стоимость — лучше сделать это сейчас:
https://app.yeahub.ru/settings#select-tariff
Мы строим продукт.
Мы двигаемся вперёд.
И мы делаем IT снова великим.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #complexity #set #algorithm
🤔 Какая сложность нахождения одинаковых ключей в двух множествах разной длины?
💬 Кратко:
Сложность нахождения одинаковых ключей в двух множествах в среднем случае O(min(n, m)), где n и m — размеры множеств. Это достигается за счет хэширования и проверки элементов меньшего множества на присутствие в большем.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Какая сложность нахождения одинаковых ключей в двух множествах разной длины?
💬 Кратко:
Сложность нахождения одинаковых ключей в двух множествах в среднем случае O(min(n, m)), где n и m — размеры множеств. Это достигается за счет хэширования и проверки элементов меньшего множества на присутствие в большем.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #acid #atomicity #consistency
🤔 Что означает ACID?
💬 Кратко:
ACID — аббревиатура свойств транзакций: Aтомарность (all or nothing), Cогласованность (consistency), Iзолированность (isolation), Dолговечность (durability). Эти свойства гарантируют корректность и надёжность операций в многопользовательской среде.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Что означает ACID?
💬 Кратко:
ACID — аббревиатура свойств транзакций: Aтомарность (all or nothing), Cогласованность (consistency), Iзолированность (isolation), Dолговечность (durability). Эти свойства гарантируют корректность и надёжность операций в многопользовательской среде.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#podcast #все
📚 Kolesa Podcast
Podcast by IT-компания Kolesa Group. В целом он обо всём и вся. Интересно для прослушивания на досуге
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
📚 Kolesa Podcast
Podcast by IT-компания Kolesa Group. В целом он обо всём и вся. Интересно для прослушивания на досуге
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #switch #interval #gil
🤔 Как происходит переключение потоков при наличии GIL?
💬 Кратко:
В CPython потоки переключаются, потому что один поток периодически освобождает GIL, и другой может его захватить. Это происходит по таймеру (интервал переключения) и в точках, где поток уходит ждать I/O. То есть операционная система планирует потоки, но выполнять Python-байткод реально может только тот, кто держит GIL. Поэтому вы видите “конкуренцию” потоков, но не настоящий параллелизм байткода.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Как происходит переключение потоков при наличии GIL?
💬 Кратко:
В CPython потоки переключаются, потому что один поток периодически освобождает GIL, и другой может его захватить. Это происходит по таймеру (интервал переключения) и в точках, где поток уходит ждать I/O. То есть операционная система планирует потоки, но выполнять Python-байткод реально может только тот, кто держит GIL. Поэтому вы видите “конкуренцию” потоков, но не настоящий параллелизм байткода.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #context #manager #enter
🤔 Какие методы нужно реализовать в пользовательском контекстном менеджере?
💬 Кратко:
Чтобы объект работал в
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Какие методы нужно реализовать в пользовательском контекстном менеджере?
💬 Кратко:
Чтобы объект работал в
with, нужно реализовать методы __enter__ и __exit__. Метод __enter__ выполняется при входе в блок и возвращает объект, который будет доступен внутри with. Метод __exit__ вызывается при выходе, даже если произошло исключение. Обычно он используется для освобождения ресурсов.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #sql #performance #tuning
🤔 Как найти "тяжёлые" SQL-запросы без метрик?
💬 Кратко:
- Анализ медленных логов БД (PostgreSQL:
- Мониторинг активных запросов через
- Использовать
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Как найти "тяжёлые" SQL-запросы без метрик?
💬 Кратко:
- Анализ медленных логов БД (PostgreSQL:
log_min_duration_statement).- Мониторинг активных запросов через
pg_stat_activity.- Использовать
EXPLAIN ANALYZE для подозрительных запросов.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#article #experimentation #abtesting #jira
📚 Как организовать процесс А/В тестирования на коленке
Пошагово объясняется, как настроить процесс A/B-тестирования в компании без специализированных платформ, используя подручные средства вроде Jira и Confluence для управления экспериментами, сплитования трафика, хранения метрик и автоматизации рабочих процессов, чтобы проводить контролируемые эксперименты даже в условиях ограниченных ресурсов.
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
📚 Как организовать процесс А/В тестирования на коленке
Пошагово объясняется, как настроить процесс A/B-тестирования в компании без специализированных платформ, используя подручные средства вроде Jira и Confluence для управления экспериментами, сплитования трафика, хранения метрик и автоматизации рабочих процессов, чтобы проводить контролируемые эксперименты даже в условиях ограниченных ресурсов.
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #dependency_injection #inversion #solid
🤔 Как работает принцип внедрения зависимостей (Dependency Injection) из SOLID?
💬 Кратко:
Dependency Injection — это способ передать объект, от которого зависит другой объект, извне, а не создавать его внутри. Это помогает избежать жестких связей между компонентами и облегчает тестирование.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Как работает принцип внедрения зависимостей (Dependency Injection) из SOLID?
💬 Кратко:
Dependency Injection — это способ передать объект, от которого зависит другой объект, извне, а не создавать его внутри. Это помогает избежать жестких связей между компонентами и облегчает тестирование.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #delitem #setitem #getitem
🤔 Методы __getitem__, __setitem__, __delitem__
💬 Кратко:
Эти методы позволяют объектам поддерживать доступ, изменение и удаление элементов, используя квадратные скобки.
-
-
-
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Методы __getitem__, __setitem__, __delitem__
💬 Кратко:
Эти методы позволяют объектам поддерживать доступ, изменение и удаление элементов, используя квадратные скобки.
-
__getitem__(key) вызывается при чтении значения.-
__setitem__(key, value) вызывается при присвоении значения.-
__delitem__(key) вызывается при удалении значения.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #clickhouse #analytics #olap
🤔 Для чего применяется ClickHouse в аналитике?
💬 Кратко:
ClickHouse используется для:
- Анализа больших объемов данных в реальном времени
- Сложных аналитических запросов
- Хранения и обработки логов и метрик
- Построения отчетов и дашбордов
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Для чего применяется ClickHouse в аналитике?
💬 Кратко:
ClickHouse используется для:
- Анализа больших объемов данных в реальном времени
- Сложных аналитических запросов
- Хранения и обработки логов и метрик
- Построения отчетов и дашбордов
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#book #book
📚 Veracity of Big Data(2018)
Автор: Vishnu Pendyala
Данная книга расскажет вам о таких техниках, как SPRT, CUSUM, Kalman и Blockchain, которые значительно упростят поставленную задачу. Также автор приводит множество способов использования вышеуказанных методик, например, анализ микроблогов в целях опровержения/подтверждения результата выборов.
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
📚 Veracity of Big Data(2018)
Автор: Vishnu Pendyala
Данная книга расскажет вам о таких техниках, как SPRT, CUSUM, Kalman и Blockchain, которые значительно упростят поставленную задачу. Также автор приводит множество способов использования вышеуказанных методик, например, анализ микроблогов в целях опровержения/подтверждения результата выборов.
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #python #decorator #async
🤔 Как сделать декоратор, который принимает и синхронную, и асинхронную функцию?
💬 Кратко:
Чтобы создать декоратор, работающий и с синхронными, и с асинхронными функциями, нужно внутри него определить обёртку, которая проверит, является ли результат вызова исходной функции корутиной (т.е. асинхронным объектом). Если да, то обёртка сама должна быть асинхронной и использовать await. В противном случае она возвращает обычный результат. Это позволяет единообразно применять логику декоратора (например, логирование, замер времени) к разным типам функций.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Как сделать декоратор, который принимает и синхронную, и асинхронную функцию?
💬 Кратко:
Чтобы создать декоратор, работающий и с синхронными, и с асинхронными функциями, нужно внутри него определить обёртку, которая проверит, является ли результат вызова исходной функции корутиной (т.е. асинхронным объектом). Если да, то обёртка сама должна быть асинхронной и использовать await. В противном случае она возвращает обычный результат. Это позволяет единообразно применять логику декоратора (например, логирование, замер времени) к разным типам функций.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #inheritance #mro #method_resolution_order
🤔 Как работает множественное наследование (порядок разрешения методов)?
💬 Кратко:
Python ищет методы в порядке MRO (Method Resolution Order), который определяется алгоритмом C3. Порядок можно посмотреть через
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Как работает множественное наследование (порядок разрешения методов)?
💬 Кратко:
Python ищет методы в порядке MRO (Method Resolution Order), который определяется алгоритмом C3. Порядок можно посмотреть через
Class.__mro__. Поиск идёт слева направо и от подкласса к суперклассам, избегая повторных проверок.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #integration_testing #test_database #test_environment
🤔 Как запускаются интеграционные тесты (какая БД используется)?
💬 Кратко:
Интеграционные тесты проверяют взаимодействие нескольких компонентов, например, приложения и базы данных. Для их запуска обычно используется отдельная тестовая база данных, чтобы не затронуть продакшен-данные. Часто применяют легковесные in-memory БД (H2 для Java, SQLite) или управляемые контейнерами экземпляры (PostgreSQL в Docker). Процесс включает настройку тестового окружения, миграцию схемы и очистку данных перед/после каждого теста.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Как запускаются интеграционные тесты (какая БД используется)?
💬 Кратко:
Интеграционные тесты проверяют взаимодействие нескольких компонентов, например, приложения и базы данных. Для их запуска обычно используется отдельная тестовая база данных, чтобы не затронуть продакшен-данные. Часто применяют легковесные in-memory БД (H2 для Java, SQLite) или управляемые контейнерами экземпляры (PostgreSQL в Docker). Процесс включает настройку тестового окружения, миграцию схемы и очистку данных перед/после каждого теста.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#course #microsoft #схемы #обучение
📚 Библиотека от Microsoft
Содержит почти 5к модулей обучения наверное по всем возможным технологиям.
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
📚 Библиотека от Microsoft
Содержит почти 5к модулей обучения наверное по всем возможным технологиям.
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #oop #slots #memory_optimization
🤔 Что такое __slots__
💬 Кратко:
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Что такое __slots__
💬 Кратко:
__slots__ — это специальный атрибут класса, который ограничивает набор атрибутов, которые можно присваивать экземплярам этого класса. Он помогает экономить память, исключая создание словаря для хранения атрибутов объектов.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #logging #observability
🤔 Какие проблемы могут возникнуть при отсутствии логирования в критических участках кода?
💬 Кратко:
Без логирования невозможно понять, что произошло в системе при сбое. Ошибки становятся трудно воспроизводимыми, а время их поиска резко увеличивается. В продакшене такие проблемы часто невозможно отладить локально. В результате страдает стабильность и доверие к системе.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Какие проблемы могут возникнуть при отсутствии логирования в критических участках кода?
💬 Кратко:
Без логирования невозможно понять, что произошло в системе при сбое. Ошибки становятся трудно воспроизводимыми, а время их поиска резко увеличивается. В продакшене такие проблемы часто невозможно отладить локально. В результате страдает стабильность и доверие к системе.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #rest #url #design
🤔 Почему в REST-API не рекомендуется использовать глаголы в URL и trailing slash?
💬 Кратко:
В REST URL должен описывать ресурс, а не действие над ним. Глаголы дублируют смысл HTTP-методов и делают API менее читаемым. Trailing slash создаёт неоднозначность и может приводить к разным URL для одного ресурса. Это усложняет маршрутизацию и кэширование.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Почему в REST-API не рекомендуется использовать глаголы в URL и trailing slash?
💬 Кратко:
В REST URL должен описывать ресурс, а не действие над ним. Глаголы дублируют смысл HTTP-методов и делают API менее читаемым. Trailing slash создаёт неоднозначность и может приводить к разным URL для одного ресурса. Это усложняет маршрутизацию и кэширование.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа