Android Mobile | YeaHub
488 subscribers
285 photos
21 videos
472 links
Теория, подготовка к интервью и курсы для Android разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
🚀 Как научиться проходить систем-дизайн интервью

Систем-дизайн или архитектурная секция - один из самых сложных и экспертных этапов, потому хорошая архитектура - когда легко изменить и масштбировать проект без бойлерплейта.

Я обожаю проходить такие этапы интервью, потому что на них интересно.
Делюсь с тобой алгоритмом для подготовки к этой секции.

📈 Как подготовиться к system design
1. Посмотри фреймворк и попробуй спроектировать приложение самостоятельно
2. Сравни с разбором собеса от меня
3. Изучи, какие я допустил ошибки и потренируйся на других примерах

Материалы для тренировки:
1️⃣Мок-собесы по system design

2️⃣Распространенные ошибки на system design

Если ты нашел другие полезные материалы, обязательно делись в комментариях)

Желаю тебе удачи на собеседовании!

🚀 Пост Guru Android: @kishmyak
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1
#Собес #docker_volumes #persistent_data #storage
🤔 Какова цель томов в Docker?

💬 Кратко:

Тома в Docker предназначены для хранения и обмена данными между контейнерами и хост-системой. Они позволяют сохранять данные независимо от жизненного цикла контейнера, обеспечивая сохранность данных при остановке или удалении контейнера. Тома можно использовать для базы данных, конфигураций приложений и логов.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#book #практика
📚 Java Concurrency на практике

Стандарт в разработке. Книга, которая даст вам прочную базу в Java-разработке и поможет изучить непростую тему потокобезопасности. Возможно, книга немного устарела, ей уже много лет. Но погрузиться с ней в основы получится отлично. Ведь книга описывает типичные ошибки написания конкурентных приложений на Java и распространённые ошибки с многопоточностью.

Перейти к материалу

👉 База вопросов 👉 Новости
#course #ооп #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
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)

📣 Хочешь больше собесов?
Подпишись на наш главный канал
1
#documentation #глоссарий
📚 Глоссарий Google Android

Если вы вступаете в огромный мир разработки под Android, то очевидно, что вы столкнётесь со множеством новых понятий и терминов. Не беспокойтесь, Google разработал интерактивный и простой в использовании глоссарий с примерами кода, который облегчит вашу жизнь.

Перейти к материалу

👉 База вопросов 👉 Новости
3
#Собес #threading #synchronization #lock
🤔 Что делает ключевое слово synchronized?

💬 Кратко:

synchronized блокирует доступ к коду или объекту для других потоков, пока текущий поток не завершит выполнение. Это предотвращает гонки данных (race conditions) и обеспечивает потокобезопасность.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👍1🔥1
#Собес #navigation_component #nav_controller #nav_graph
🤔 Для чего нужен 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
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)

📣 Хочешь больше собесов?
Подпишись на наш главный канал
1
Forwarded from YeaHub
👩‍💻 Android Разработчик | Полный разбор профессии

В этом видео мы подробно разбираем профессию 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 build, указав путь к каталогу, содержащему Dockerfile. Например, docker build -t myimage:tag . создаст образ с именем myimage и тегом tag из текущего каталога.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#tool #графы
📚 Терялся в собственном коде?

Встречай Gitvizz, инструмент, который мгновенно превращает кодовую базу в интерактивные графы, чтобы наглядно увидеть, как всё связано

Перейти к материалу

👉 База вопросов 👉 Новости
#Собес #operator_overloading, #operator #custom_types
🤔 Объясните концепцию перегрузки операторов в Kotlin.

💬 Кратко:

Перегрузка операторов в Kotlin позволяет определять, как операторы (например, +, -, *) работают с пользовательскими классами. Для этого используется модификатор operator перед функцией, которая описывает поведение оператора. Это улучшает читаемость кода и делает пользовательские классы более интуитивными в использовании.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Полный гайд на LIVECODING для любого языка программирования 📹

На 60-80% собеседований проходит секция лайвкодинга - решения задачи в прямом эфире. Лайвкодинг разделяется на алгоритмы и платформенные задачи. Сам план решения к ним похожий. На своём опыте заметил, что у большинства ребят, которые приходят что с опытом, что без опыта, есть проблемы как в подходе к решению таких задач, так и на разных этапах решения задачи.

Я выделил все в один большой гайд, просмотрев и следуя которому, у тебя получится:
1. Правильно вести себя на лайвкодинге
2. Подготовиться к лайвкодингу
3. Проверить себя перед походом на собеседование


https://www.youtube.com/watch?v=-tbPNuLaWuc

Авторская диаграмма полного гайда на лайвкодинг

🚀 Пост Guru Android: @kishmyak
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#Собес #data_class #kotlin #android

🤔 Senior Android-разработчик (Kotlin) в компанию АВТОТЕХ

Техническое собеседование. Осень 2024. Просил 300-350к. Опыт в резюме 5 лет. Было много вопросов, которые основаны на реальных кейсах.

💬 Вопросы:

- В каких ситуациях стоит применять корутины?

- В чём разница между Flow и LiveData, как ту же логику организовать?

- Что такое «зомби-процессы» и как они соотносятся с потоками (threads)?

- Как корутины ведут себя при использовании бесконечного цикла (например, while(true))?

- В чём разница между inline, noinline и crossinline?

👉 Все вопросы из этого собеседования (22)

📣 Хочешь больше собесов?
Подпишись на наш главный канал
1
#Собес #git #rebase #commit
🤔 Как работает git rebase?

💬 Кратко:

git rebase перемещает одну ветку поверх другой, копируя коммиты и переписывая их базу. Он берёт набор коммитов, начиная с точки ветвления, и последовательно применяет их к новой базе, создавая новые коммиты с теми же изменениями, но другим родителем. Это позволяет получить линейную историю без merge-коммитов.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#course #ии
📚 Мини-курс о применении ИИ в разработке

Он рассчитан на начинающих, пройти его можно всего за час. Конспекты доступны на русском языке

Перейти к материалу

👉 База вопросов 👉 Новости
#Собес #inline #noinline #crossinline
🤔 В чём разница между inline, noinline и crossinline?

💬 Кратко:

inline заставляет компилятор встраивать тело функции и её лямбд в место вызова, избавляя от создания объектов. noinline отключает инлайнинг для конкретного параметра-лямбды внутри inline-функции. crossinline запрещает использование return из лямбды, гарантируя, что она не будет немедленно вызывать выход из родительской функции.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
1