#documentation #глоссарий
📚 Глоссарий Google Android
Если вы вступаете в огромный мир разработки под Android, то очевидно, что вы столкнётесь со множеством новых понятий и терминов. Не беспокойтесь, Google разработал интерактивный и простой в использовании глоссарий с примерами кода, который облегчит вашу жизнь.
Перейти к материалу
👉 База вопросов 👉 Новости
📚 Глоссарий Google Android
Если вы вступаете в огромный мир разработки под Android, то очевидно, что вы столкнётесь со множеством новых понятий и терминов. Не беспокойтесь, Google разработал интерактивный и простой в использовании глоссарий с примерами кода, который облегчит вашу жизнь.
Перейти к материалу
👉 База вопросов 👉 Новости
❤3
#Собес #threading #synchronization #lock
🤔 Что делает ключевое слово synchronized?
💬 Кратко:
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что делает ключевое слово synchronized?
💬 Кратко:
synchronized блокирует доступ к коду или объекту для других потоков, пока текущий поток не завершит выполнение. Это предотвращает гонки данных (race conditions) и обеспечивает потокобезопасность.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👍1🔥1
#Собес #navigation_component #nav_controller #nav_graph
🤔 Для чего нужен Navigation Component?
💬 Кратко:
Navigation Component упрощает навигацию между
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Для чего нужен Navigation Component?
💬 Кратко:
Navigation Component упрощает навигацию между
Fragment и Activity через NavGraph, NavController и Safe Args. Он генерирует код для безопасной передачи аргументов, управляет back-stack автоматически и облегчает Deep Linking и переходы с анимацией, снижая шаблонный код и ошибки при навигации вручную.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Победи страх собеседований ☠️
Страх собеседований проходит после5-10 успешных собеседований, это я понял на своем примере, примере моих учеников и друзей. Успешное собеседование - когда дают оффер или зовут на следующий этап.
Но как быть уверенным на собеседовании, если каждый раз задают новые вопросы, невозможно же подготовиться к каждому вопросу?
Для этого существуют мок-собеседования
Это тестовые собеседования, когда опытный разработчик проводит собеседование и затрагивает каждую тему, которая встречается на собеседовании. После такого собеседования ты получаешь подробный фидбек по секциям, а также материалы для подготовки и закрытия пробелов.
Что делать, если ты не знаешь, где попробовать свои силы на мок-собесе, но и на реальное собеседование тебе страшно идти? Посмотри публичные мок-собеседования, как раз такое собеседование я записал вместе с бывшим коллегой из Яндекса. На это интервью я пришел без тем и без ответов на вопросы, это было похоже на реальное собеседование. Затронули все темы, которые есть в android: Kotlin/Java, Android, Coroutines, Compose, System Design.
В следующем собеседовании затронем и livecoding.
https://youtu.be/MgWUtFK8TLA
🚀 Пост Guru Android: @kishmyak
Страх собеседований проходит после
Но как быть уверенным на собеседовании, если каждый раз задают новые вопросы, невозможно же подготовиться к каждому вопросу?
Для этого существуют мок-собеседования
Это тестовые собеседования, когда опытный разработчик проводит собеседование и затрагивает каждую тему, которая встречается на собеседовании. После такого собеседования ты получаешь подробный фидбек по секциям, а также материалы для подготовки и закрытия пробелов.
Что делать, если ты не знаешь, где попробовать свои силы на мок-собесе, но и на реальное собеседование тебе страшно идти? Посмотри публичные мок-собеседования, как раз такое собеседование я записал вместе с бывшим коллегой из Яндекса. На это интервью я пришел без тем и без ответов на вопросы, это было похоже на реальное собеседование. Затронули все темы, которые есть в android: Kotlin/Java, Android, Coroutines, Compose, System Design.
В следующем собеседовании затронем и livecoding.
https://youtu.be/MgWUtFK8TLA
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3🔥3
#Собес #lifecycle #activity #intent
🤔 Middle Android разработчик в компанию Avito
Техническое собеседование. Осень 2024
💬 Вопросы:
- Почему RecyclerView считается лучше ListView?
- В чём разница между Serializable и Parcelable?
- Как RecyclerView рендерит элементы?
- В чём сильные стороны RecyclerView?
- Как спроектировать сетевой запрос в Android?
👉 Все вопросы из этого собеседования (19)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🤔 Middle Android разработчик в компанию Avito
Техническое собеседование. Осень 2024
💬 Вопросы:
- Почему RecyclerView считается лучше ListView?
- В чём разница между Serializable и Parcelable?
- Как RecyclerView рендерит элементы?
- В чём сильные стороны RecyclerView?
- Как спроектировать сетевой запрос в Android?
👉 Все вопросы из этого собеседования (19)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
❤1
Forwarded from YeaHub
В этом видео мы подробно разбираем профессию Android-разработчик: кто это, чем занимается, какие навыки нужны и сколько можно зарабатывать. Наш гость — сеньор Android-разработчик с опытом работы в Яндекс, МТС и Wildberries, который делится личным опытом: как пройти путь от новичка до ведущего специалиста всего за 5 лет.
Вы узнаете:
— Что делает Android-разработчик и как выглядит его рабочий день
— Какие качества и навыки нужны для успешного старта
— Сколько времени потребуется на обучение и с чего лучше начинать
— Какие инструменты и технологии нужно знать
— Топ-3 ресурса для старта Android-разработки
— Советы для первого проекта и развития карьеры
Если вы хотите стать Android-разработчиком или просто интересуетесь IT-профессиями, это видео точно для вас!
Подпишитесь на канал, чтобы не пропустить новые видео про карьеру в IT и обучение программированию.
https://yeahub.ru/ - тренажер для подготовки к собеседованиям
https://t.me/yeahub_android_mobile - канал YeaHub в Android
https://t.me/gulyaev_it - телеграмм-канал Антона об Android и IT
https://www.youtube.com/@gulyaev_it - ютуб-канал Антона
#it #android #kotlin #программирование #разработка #собеседование #трудоустройство
https://www.youtube.com/watch?v=ss5cjY7SPXY
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🔥2👍1
#Собес #docker_build #dockerfile #image
🤔 Как создать Docker-образ с использованием Dockerfile?
💬 Кратко:
Чтобы создать Docker-образ, необходимо использовать команду
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Как создать Docker-образ с использованием Dockerfile?
💬 Кратко:
Чтобы создать Docker-образ, необходимо использовать команду
docker build, указав путь к каталогу, содержащему Dockerfile. Например, docker build -t myimage:tag . создаст образ с именем myimage и тегом tag из текущего каталога.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#tool #графы
📚 Терялся в собственном коде?
Встречай Gitvizz, инструмент, который мгновенно превращает кодовую базу в интерактивные графы, чтобы наглядно увидеть, как всё связано
Перейти к материалу
👉 База вопросов 👉 Новости
📚 Терялся в собственном коде?
Встречай Gitvizz, инструмент, который мгновенно превращает кодовую базу в интерактивные графы, чтобы наглядно увидеть, как всё связано
Перейти к материалу
👉 База вопросов 👉 Новости
#Собес #operator_overloading, #operator #custom_types
🤔 Объясните концепцию перегрузки операторов в Kotlin.
💬 Кратко:
Перегрузка операторов в Kotlin позволяет определять, как операторы (например,
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Объясните концепцию перегрузки операторов в Kotlin.
💬 Кратко:
Перегрузка операторов в Kotlin позволяет определять, как операторы (например,
+, -, *) работают с пользовательскими классами. Для этого используется модификатор operator перед функцией, которая описывает поведение оператора. Это улучшает читаемость кода и делает пользовательские классы более интуитивными в использовании.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Полный гайд на LIVECODING для любого языка программирования 📹
На 60-80% собеседований проходит секция лайвкодинга - решения задачи в прямом эфире. Лайвкодинг разделяется на алгоритмы и платформенные задачи. Сам план решения к ним похожий. На своём опыте заметил, что у большинства ребят, которые приходят что с опытом, что без опыта, есть проблемы как в подходе к решению таких задач, так и на разных этапах решения задачи.
Я выделил все в один большой гайд, просмотрев и следуя которому, у тебя получится:
1. Правильно вести себя на лайвкодинге
2. Подготовиться к лайвкодингу
3. Проверить себя перед походом на собеседование
https://www.youtube.com/watch?v=-tbPNuLaWuc
Авторская диаграмма полного гайда на лайвкодинг
🚀 Пост Guru Android: @kishmyak
На 60-80% собеседований проходит секция лайвкодинга - решения задачи в прямом эфире. Лайвкодинг разделяется на алгоритмы и платформенные задачи. Сам план решения к ним похожий. На своём опыте заметил, что у большинства ребят, которые приходят что с опытом, что без опыта, есть проблемы как в подходе к решению таких задач, так и на разных этапах решения задачи.
Я выделил все в один большой гайд, просмотрев и следуя которому, у тебя получится:
1. Правильно вести себя на лайвкодинге
2. Подготовиться к лайвкодингу
3. Проверить себя перед походом на собеседование
https://www.youtube.com/watch?v=-tbPNuLaWuc
Авторская диаграмма полного гайда на лайвкодинг
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
ТЫ ЗАВАЛИВАЕШЬ 60% СОБЕСЕДОВАНИЙ ПО ЭТОЙ ПРИЧИНЕ: LIVECODING НА СОБЕСЕДОВАНИИ | ПОЛНЫЙ ГАЙД
Больше полезного - https://t.me/gulyaev_it
Менторство - https://cutt.ly/3tejoLt6
На 60-80% собеседований проходит секция лайвкодинга - решения задачи в прямом эфире. Лайвкодинг разделяется на алгоритмы и платформенные задачи. Сам план решения к ним похожий.…
Менторство - https://cutt.ly/3tejoLt6
На 60-80% собеседований проходит секция лайвкодинга - решения задачи в прямом эфире. Лайвкодинг разделяется на алгоритмы и платформенные задачи. Сам план решения к ним похожий.…
❤2
#Собес #data_class #kotlin #android
🤔 Senior Android-разработчик (Kotlin) в компанию АВТОТЕХ
Техническое собеседование. Осень 2024. Просил 300-350к. Опыт в резюме 5 лет. Было много вопросов, которые основаны на реальных кейсах.
💬 Вопросы:
- В каких ситуациях стоит применять корутины?
- В чём разница между Flow и LiveData, как ту же логику организовать?
- Что такое «зомби-процессы» и как они соотносятся с потоками (threads)?
- Как корутины ведут себя при использовании бесконечного цикла (например, while(true))?
- В чём разница между inline, noinline и crossinline?
👉 Все вопросы из этого собеседования (22)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🤔 Senior Android-разработчик (Kotlin) в компанию АВТОТЕХ
Техническое собеседование. Осень 2024. Просил 300-350к. Опыт в резюме 5 лет. Было много вопросов, которые основаны на реальных кейсах.
💬 Вопросы:
- В каких ситуациях стоит применять корутины?
- В чём разница между Flow и LiveData, как ту же логику организовать?
- Что такое «зомби-процессы» и как они соотносятся с потоками (threads)?
- Как корутины ведут себя при использовании бесконечного цикла (например, while(true))?
- В чём разница между inline, noinline и crossinline?
👉 Все вопросы из этого собеседования (22)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
❤1
#Собес #git #rebase #commit
🤔 Как работает git rebase?
💬 Кратко:
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Как работает git rebase?
💬 Кратко:
git rebase перемещает одну ветку поверх другой, копируя коммиты и переписывая их базу. Он берёт набор коммитов, начиная с точки ветвления, и последовательно применяет их к новой базе, создавая новые коммиты с теми же изменениями, но другим родителем. Это позволяет получить линейную историю без merge-коммитов.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#course #ии
📚 Мини-курс о применении ИИ в разработке
Он рассчитан на начинающих, пройти его можно всего за час. Конспекты доступны на русском языке
Перейти к материалу
👉 База вопросов 👉 Новости
📚 Мини-курс о применении ИИ в разработке
Он рассчитан на начинающих, пройти его можно всего за час. Конспекты доступны на русском языке
Перейти к материалу
👉 База вопросов 👉 Новости
#Собес #inline #noinline #crossinline
🤔 В чём разница между inline, noinline и crossinline?
💬 Кратко:
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 В чём разница между inline, noinline и crossinline?
💬 Кратко:
inline заставляет компилятор встраивать тело функции и её лямбд в место вызова, избавляя от создания объектов. noinline отключает инлайнинг для конкретного параметра-лямбды внутри inline-функции. crossinline запрещает использование return из лямбды, гарантируя, что она не будет немедленно вызывать выход из родительской функции.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤1
Чистая архитектура экрана 🤩
Архитектура — это набор правил и подходов, которые определяют, как строить приложения. Хорошая архитектура позволяет бизнесу сократить расходы на разработку, поддержку и исправление продукта.
Разделение на слои
Чистая архитектура подразумевает разбивку приложения на слои, каждый из которых отвечает за свою функциональность. Это подход способствует соблюдению принципов SOLID, четко определяет зоны ответственности и уменьшает стоимость изменений.
Структура слоёв в Android-приложении
В контексте Android-приложений распространённая архитектура основывается на трёх слоях:
Аналогия с автомобилем 🛞
Для лучшего понимания, рассмотрим пример с автомобилем:
- Presentation — руль, педали и приборная панель, которые позволяют водителю взаимодействовать с автомобилем.
- Domain — двигатель, трансмиссия, коробка передач и колёса, которые обеспечивают движение и функциональность автомобиля.
- Data — системы подачи воздуха и топлива, необходимые для работы двигателя.
Взаимозависимость слоёв
В Android-архитектуре:
- Presentation слой зависит от Domain слоя, так как пользовательский интерфейс должен вызывать бизнес-логику для выполнения действий.
- Data слой также зависит от Domain слоя, предоставляя ему доступ к данным и внешним системам.
Наиболее важным слоем является Domain, поскольку его изменение приведёт к изменению функциональности приложения. Поэтому доменный слой должен быть независим от других слоёв.
Принцип инверсии зависимостей (D из SOLID)
Для реализации такого подхода используется принцип инверсии зависимостей (Dependency Inversion Principle). Это позволяет нам снижать связность между компонентами, что, упрощает тестирование и поддержку кода.
Таким образом, соблюдение чистой архитектуры и принципа разделения на слои в процессе разработки Android-приложений обеспечивает гибкость, масштабируемость и лёгкость в обслуживании.
На скрине приложил базу, которая основана на всей информации из поста👨💻
🚀 Пост Guru Android: @kishmyak
Архитектура — это набор правил и подходов, которые определяют, как строить приложения. Хорошая архитектура позволяет бизнесу сократить расходы на разработку, поддержку и исправление продукта.
Разделение на слои
Чистая архитектура подразумевает разбивку приложения на слои, каждый из которых отвечает за свою функциональность. Это подход способствует соблюдению принципов SOLID, четко определяет зоны ответственности и уменьшает стоимость изменений.
Структура слоёв в Android-приложении
В контексте Android-приложений распространённая архитектура основывается на трёх слоях:
1. Presentation (Представление): отвечает за пользовательский интерфейс и взаимодействие с пользователем.
2. Domain (Доменная логика): управляет бизнес-логикой и функциональностью системы.
3. Data (Данные): обеспечивает доступ к внешним системам и хранение данных.
Аналогия с автомобилем 🛞
Для лучшего понимания, рассмотрим пример с автомобилем:
- Presentation — руль, педали и приборная панель, которые позволяют водителю взаимодействовать с автомобилем.
- Domain — двигатель, трансмиссия, коробка передач и колёса, которые обеспечивают движение и функциональность автомобиля.
- Data — системы подачи воздуха и топлива, необходимые для работы двигателя.
Взаимозависимость слоёв
В Android-архитектуре:
- Presentation слой зависит от Domain слоя, так как пользовательский интерфейс должен вызывать бизнес-логику для выполнения действий.
- Data слой также зависит от Domain слоя, предоставляя ему доступ к данным и внешним системам.
Наиболее важным слоем является Domain, поскольку его изменение приведёт к изменению функциональности приложения. Поэтому доменный слой должен быть независим от других слоёв.
Принцип инверсии зависимостей (D из SOLID)
Для реализации такого подхода используется принцип инверсии зависимостей (Dependency Inversion Principle). Это позволяет нам снижать связность между компонентами, что, упрощает тестирование и поддержку кода.
Таким образом, соблюдение чистой архитектуры и принципа разделения на слои в процессе разработки Android-приложений обеспечивает гибкость, масштабируемость и лёгкость в обслуживании.
На скрине приложил базу, которая основана на всей информации из поста
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #kotlin #sealed #class
🤔 Middle Android-разработчик (Kotlin) в компанию Ютека
Техническое собеседование. Осень 2024. 200к+. Опыт в резюме 3 года 3 месяца. В конце был большой блок лайвкодинга.
💬 Вопросы:
- Чем Kotlin выигрывает у Java в контексте Android-разработки?
- Что такое sealed-классы и для чего они применяются?
- Как ту же логику организовать через LiveData и в чём отличие от Flow?
- При использовании Flow, какой Dispatcher вы бы выбрали для работы с UI и для фоновых задач?
- Какими способами можно запустить корутину в Kotlin?
👉 Все вопросы из этого собеседования (11)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🤔 Middle Android-разработчик (Kotlin) в компанию Ютека
Техническое собеседование. Осень 2024. 200к+. Опыт в резюме 3 года 3 месяца. В конце был большой блок лайвкодинга.
💬 Вопросы:
- Чем Kotlin выигрывает у Java в контексте Android-разработки?
- Что такое sealed-классы и для чего они применяются?
- Как ту же логику организовать через LiveData и в чём отличие от Flow?
- При использовании Flow, какой Dispatcher вы бы выбрали для работы с UI и для фоновых задач?
- Какими способами можно запустить корутину в Kotlin?
👉 Все вопросы из этого собеседования (11)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
❤1
#Собес #git_status
🤔 Что делает команда git status?
💬 Кратко:
Команда
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что делает команда git status?
💬 Кратко:
Команда
git status показывает текущее состояние репозитория. Она отображает информацию о файлах, которые были изменены, добавлены в индекс или остаются незамеченными. Это помогает понять, какие шаги нужно выполнить дальше.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤1
#tool #графы
📚 Терялся в собственном коде?
Встречай Gitvizz, инструмент, который мгновенно превращает кодовую базу в интерактивные графы, чтобы наглядно увидеть, как всё связано
Перейти к материалу
👉 База вопросов 👉 Новости
📚 Терялся в собственном коде?
Встречай Gitvizz, инструмент, который мгновенно превращает кодовую базу в интерактивные графы, чтобы наглядно увидеть, как всё связано
Перейти к материалу
👉 База вопросов 👉 Новости
#Собес #flow #state #shared
🤔 Чем SharedFlow отличается от StateFlow с точки зрения поведения и буферизации?
💬 Кратко:
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Чем SharedFlow отличается от StateFlow с точки зрения поведения и буферизации?
💬 Кратко:
StateFlow хранит только последнее значение и гарантирует его получение новыми подписчиками. SharedFlow может буферизировать несколько значений и не имеет обязательного начального состояния.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👍1
Threads | Потоки в Kotlin & Java
Заметил, что эта тема вызывает сложности на работе и на собеседованиях как у начинающих, так и у опытных разработчиков. Также увидел закономерность, что эту тему приходится объяснять на личных консультациях каждому ученику.
Записал видео-лекцию "Полный гайд на потоки Kotlin/Java для собеседования", где подробно рассказываю о всем, чтобы у тебя сформировалось понимание этой темы:
1. Как работают в связке процессор + ОС + JVM
2. Что такое JMM
3. Проблемы потоков и как их решить на практике
4. Для чего в android-разработке используются потоки
🚀 Пост Guru Android: @kishmyak
Заметил, что эта тема вызывает сложности на работе и на собеседованиях как у начинающих, так и у опытных разработчиков. Также увидел закономерность, что эту тему приходится объяснять на личных консультациях каждому ученику.
Записал видео-лекцию "Полный гайд на потоки Kotlin/Java для собеседования", где подробно рассказываю о всем, чтобы у тебя сформировалось понимание этой темы:
1. Как работают в связке процессор + ОС + JVM
2. Что такое JMM
3. Проблемы потоков и как их решить на практике
4. Для чего в android-разработке используются потоки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
#Собес #kotlin #class #dispatcher
🤔 Middle+ Android разработчик в компанию Сбер
Техническое собеседование. Лето 2024. Вилка: 300к+. Опыт в резюме: 3+ года. Проект: СберЗвук.
💬 Вопросы:
- Почему в проекте были только UI-тесты? Как покрывали бизнес-логику?
- Как вы тестировали UI-компоненты на Compose? Какие фреймворки применяли?
- Как избежать deadlock/livelock при работе с блокировками?
- Когда synchronized недостаточно для предотвращения гонки потоков?
- Какие примитивы синхронизации (synchronized, Atomic, семафоры) вы использовали?
👉 Все вопросы из этого собеседования (17)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🤔 Middle+ Android разработчик в компанию Сбер
Техническое собеседование. Лето 2024. Вилка: 300к+. Опыт в резюме: 3+ года. Проект: СберЗвук.
💬 Вопросы:
- Почему в проекте были только UI-тесты? Как покрывали бизнес-логику?
- Как вы тестировали UI-компоненты на Compose? Какие фреймворки применяли?
- Как избежать deadlock/livelock при работе с блокировками?
- Когда synchronized недостаточно для предотвращения гонки потоков?
- Какие примитивы синхронизации (synchronized, Atomic, семафоры) вы использовали?
👉 Все вопросы из этого собеседования (17)
📣 Хочешь больше собесов?
Подпишись на наш главный канал