🚀 Как научиться проходить систем-дизайн интервью
Систем-дизайн или архитектурная секция - один из самых сложных и экспертных этапов, потому хорошая архитектура - когда легко изменить и масштбировать проект без бойлерплейта.
Я обожаю проходить такие этапы интервью, потому что на них интересно.
Делюсь с тобой алгоритмом для подготовки к этой секции.
📈 Как подготовиться к system design
1. Посмотри фреймворк и попробуй спроектировать приложение самостоятельно
2. Сравни с разбором собеса от меня
3. Изучи, какие я допустил ошибки и потренируйся на других примерах
Материалы для тренировки:
1️⃣Мок-собесы по system design
2️⃣Распространенные ошибки на system design
Если ты нашел другие полезные материалы, обязательно делись в комментариях)
Желаю тебе удачи на собеседовании!
🚀 Пост Guru Android: @kishmyak
Систем-дизайн или архитектурная секция - один из самых сложных и экспертных этапов, потому хорошая архитектура - когда легко изменить и масштбировать проект без бойлерплейта.
Я обожаю проходить такие этапы интервью, потому что на них интересно.
Делюсь с тобой алгоритмом для подготовки к этой секции.
📈 Как подготовиться к system design
1. Посмотри фреймворк и попробуй спроектировать приложение самостоятельно
2. Сравни с разбором собеса от меня
3. Изучи, какие я допустил ошибки и потренируйся на других примерах
Материалы для тренировки:
1️⃣Мок-собесы по system design
2️⃣Распространенные ошибки на system design
Если ты нашел другие полезные материалы, обязательно делись в комментариях)
Желаю тебе удачи на собеседовании!
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - weeeBox/mobile-system-design: A simple framework for mobile system design interviews
A simple framework for mobile system design interviews - weeeBox/mobile-system-design
🔥2👍1
#Собес #docker_volumes #persistent_data #storage
🤔 Какова цель томов в Docker?
💬 Кратко:
Тома в Docker предназначены для хранения и обмена данными между контейнерами и хост-системой. Они позволяют сохранять данные независимо от жизненного цикла контейнера, обеспечивая сохранность данных при остановке или удалении контейнера. Тома можно использовать для базы данных, конфигураций приложений и логов.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Какова цель томов в Docker?
💬 Кратко:
Тома в Docker предназначены для хранения и обмена данными между контейнерами и хост-системой. Они позволяют сохранять данные независимо от жизненного цикла контейнера, обеспечивая сохранность данных при остановке или удалении контейнера. Тома можно использовать для базы данных, конфигураций приложений и логов.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#book #практика
📚 Java Concurrency на практике
Стандарт в разработке. Книга, которая даст вам прочную базу в Java-разработке и поможет изучить непростую тему потокобезопасности. Возможно, книга немного устарела, ей уже много лет. Но погрузиться с ней в основы получится отлично. Ведь книга описывает типичные ошибки написания конкурентных приложений на Java и распространённые ошибки с многопоточностью.
Перейти к материалу
👉 База вопросов 👉 Новости
📚 Java Concurrency на практике
Стандарт в разработке. Книга, которая даст вам прочную базу в Java-разработке и поможет изучить непростую тему потокобезопасности. Возможно, книга немного устарела, ей уже много лет. Но погрузиться с ней в основы получится отлично. Ведь книга описывает типичные ошибки написания конкурентных приложений на Java и распространённые ошибки с многопоточностью.
Перейти к материалу
👉 База вопросов 👉 Новости
#course #ооп #case
📚 Практический анализ ПО с моделированием на UML
Целью курса является обучение слушателей теоретическим основам объектно-ориентированного подхода, практическим методам визуального проектирования и технологии разработки программного обеспечения с использованием компьютеризированных систем разработки (CASE
Перейти к материалу
👉 База вопросов 👉 Новости
📚 Практический анализ ПО с моделированием на UML
Целью курса является обучение слушателей теоретическим основам объектно-ориентированного подхода, практическим методам визуального проектирования и технологии разработки программного обеспечения с использованием компьютеризированных систем разработки (CASE
Перейти к материалу
👉 База вопросов 👉 Новости
❤1
#Собес #array #loop #equals
🤔 Как вернуть первые два подряд идущих равных элемента из массива?
💬 Кратко:
Идём по массиву, сравниваем
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Как вернуть первые два подряд идущих равных элемента из массива?
💬 Кратко:
Идём по массиву, сравниваем
arr[i] и arr[i+1].📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤1
Тестирование и с чем его едят🥣
У многих начинающих ребят возникают вопросы о тестах. В этом посте я постараюсь кратко раскрыть эту тему.
Тест — это способ проверить, работает ли программа так, как задумано. Он может пройти или упасть. Упавший тест — сигнал, что в коде есть ошибка, и его не добавят в кодовую базу, пока всё не исправят.
Есть пирамида тестирования, похожая на пирамиду Маслоу. Она показывает, сколько разных тестов должно быть:
Unit-тесты проверяют отдельные элементы программы, которые пишут разработчики. Их должно быть около 60–80%.
UI-тесты, скриншот-тесты, API-тесты проверяют взаимодействие нескольких элементов. Их пишут разработчики или AutoQA. Их должно быть 15–30%.
End-to-End-тесты проверяют систему целиком. Их пишут AutoQA, и их должно быть 5–10%.
Чем больше систем охватывает тест, тем больше причин, по которым он может ложно упасть. Кроме того, такие тесты сложнее писать, они дольше проходят и больше подвержены изменениям. Поэтому удобнее работать с большим количеством Unit-тестов, которые быстро показывают ошибку, легко пишутся и не меняются.
Что делать, чтобы лучше разобраться в тестах❓
1️⃣Узнай, какие тесты есть на твоём языке программирования и платформе.
2️⃣Прочитай документацию или посмотри обучающее видео.
3️⃣Попробуй найти репозитории, где можно написать тесты.
4️⃣Попрактикуйся и разберись в отличиях разных видов тестов.
❗️Помни, тесты — это способ убедиться, что программа работает правильно. Они помогают быстро находить ошибки и гарантируют, что изменения в коде не нарушат работу программы.
🚀 Пост Guru Android: @kishmyak
У многих начинающих ребят возникают вопросы о тестах. В этом посте я постараюсь кратко раскрыть эту тему.
Тест — это способ проверить, работает ли программа так, как задумано. Он может пройти или упасть. Упавший тест — сигнал, что в коде есть ошибка, и его не добавят в кодовую базу, пока всё не исправят.
Есть пирамида тестирования, похожая на пирамиду Маслоу. Она показывает, сколько разных тестов должно быть:
Unit-тесты проверяют отдельные элементы программы, которые пишут разработчики. Их должно быть около 60–80%.
UI-тесты, скриншот-тесты, API-тесты проверяют взаимодействие нескольких элементов. Их пишут разработчики или AutoQA. Их должно быть 15–30%.
End-to-End-тесты проверяют систему целиком. Их пишут AutoQA, и их должно быть 5–10%.
Чем больше систем охватывает тест, тем больше причин, по которым он может ложно упасть. Кроме того, такие тесты сложнее писать, они дольше проходят и больше подвержены изменениям. Поэтому удобнее работать с большим количеством Unit-тестов, которые быстро показывают ошибку, легко пишутся и не меняются.
Что делать, чтобы лучше разобраться в тестах❓
1️⃣Узнай, какие тесты есть на твоём языке программирования и платформе.
2️⃣Прочитай документацию или посмотри обучающее видео.
3️⃣Попробуй найти репозитории, где можно написать тесты.
4️⃣Попрактикуйся и разберись в отличиях разных видов тестов.
❗️Помни, тесты — это способ убедиться, что программа работает правильно. Они помогают быстро находить ошибки и гарантируют, что изменения в коде не нарушат работу программы.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2🔥2
#Собес #android #components #intent
🤔 Middle Android разработчик в компанию ОТП Банк
Техническое собеседование. Лето 2024
💬 Вопросы:
- Какую роль выполняет метод CompositionLocal в Jetpack Compose?
- Для чего в Jetpack Compose используются аннотации @Stable и @Immutable?
- Что такое DiffUtil и для чего он используется?
- Как бы вы реализовали чат в Android?
- Может ли Android-приложение работать в нескольких процессах?
👉 Все вопросы из этого собеседования (16)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🤔 Middle Android разработчик в компанию ОТП Банк
Техническое собеседование. Лето 2024
💬 Вопросы:
- Какую роль выполняет метод CompositionLocal в Jetpack Compose?
- Для чего в Jetpack Compose используются аннотации @Stable и @Immutable?
- Что такое DiffUtil и для чего он используется?
- Как бы вы реализовали чат в Android?
- Может ли Android-приложение работать в нескольких процессах?
👉 Все вопросы из этого собеседования (16)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
❤1
#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