Собеседование в Яндекс по разработке на Android
Разбор первой технической секции собеседования в Яндекс на позицию Android-разработчика. В видео есть Kotlin-рефакторинг, Android-теория, многопоточность, корутины и задача на обход дерева View.
Software developer
Открыть на YouTube- Опубликовано на YouTube:
- Просмотры на YouTube: 1,7 тыс.
- Лайки на YouTube: 54
Таймлайн
Коротко о видео
Антон разбирает первую Kotlin/Android-секцию реального собеседования в Яндекс после перехода из фронтенд-разработки в мобильную. Вместе с интервьюером он исправляет Kotlin-код и отвечает на вопросы о сборке мусора, HashMap, компонентах Android, жизненном цикле Activity, ViewModel, отрисовке View, сервисах, IPC, потоках и корутинах. В конце рассматривается алгоритмическая задача на собственную реализацию поиска View по ID; автор сообщает, что прошёл три секции, но не прошёл финальное интервью с командой.
Затронутые темы
Что взять на заметку
- Подготовьтесь к ревью Kotlin-кода: изменяемость коллекций, `inline`-функции, локальные и нелокальные `return`, а также уместность `reified`.
- Тренируйтесь вручную вычислять вывод кода, особенно когда используются `reversed()`, обход коллекции и условия пропуска элементов.
- Уметь объяснить достижимость объектов от GC roots, роль ссылок при сборке мусора и дорогую операцию resize/rehash в `HashMap`.
- Повторите четыре базовых компонента Android: Activity, Service, BroadcastReceiver и ContentProvider, а также ситуации, когда lifecycle-callback может не вызваться из-за завершения процесса системой.
- Различайте жизненный цикл Activity и ViewModel; для View повторите `onMeasure`, `onLayout`, `onDraw`, `invalidate()` и `requestLayout()`, включая стоимость повторных измерений вложенной разметки.
- Подготовьте чёткое объяснение фоновой работы через Service, последствий завершения Activity и способов обмена данными между процессами Android.
- Повторите гонки при инкременте общего счётчика, назначение `Mutex`, `volatile` и атомарных операций, а также scopes, dispatchers и иерархию дочерних корутин.