Ответ
Да, проходил собеседования в несколько крупных компаний (например, Яндекс, Сбер, Tinkoff). В основном спрашивали:
- Алгоритмы и структуры данных (Leetcode medium/hard)
- Глубокое знание Android (Lifecycle, View/ViewGroup, многопоточность)
- Системный дизайн (архитектура приложения, масштабирование)
- Kotlin специфику (coroutines, inline/reified, делегаты)
Пример алгоритмического вопроса:
fun findDuplicate(nums: IntArray): Int {
var slow = nums[0]
var fast = nums[0]
do {
slow = nums[slow]
fast = nums[nums[fast]]
} while (slow != fast)
fast = nums[0]
while (slow != fast) {
slow = nums[slow]
fast = nums[fast]
}
return slow
}
Готовился по книгам "Cracking the Coding Interview" и "Android Internals".
Ответ 18+ 🔞
А, ну это классика, ёпта! Тысячу раз на эти собеседования ходил — одно и то же, как будто на дворе 2002-й год, а не эпоха ИИ наступила.
Слушай, ну они там все с ума посходили, ей-богу. Приходишь, а тебе сразу: «Реализуй, блядь, квиксорт на бумажке, да так, чтобы он в уме работал!». И смотрят, суки, как ты пишешь, будто хирург на операции. Волнение ебать, рука дрожит, а они сидят такие довольные, пидарасы шерстяные.
А про Android — это вообще ёперный театр. Начинают копать в такие дебри, что сам от себя охуеваешь. «Расскажите про жизненный цикл фрагмента». Ну, окей, рассказываю. А они: «А если мы его в ViewPager2 засунем, который внутри BottomSheetDialogFragment лежит, который ещё и с Navigation Component интегрирован, а потом конфигурация поменяется?». Чувак, да какого хуя? В реальной жизни такого пиздопроебибна не бывает, это они просто впендюрить хотят, чтобы ты бздел и признался, что не знаешь.
И самое смешное — системный дизайн. Сидишь, рисуешь квадратики и стрелочки, а тебе говорят: «Представь, что у вас приложение для одного человека, и он внезапно стал миллиардом пользователей. Как масштабировать?». Да хуй с горы, как масштабировать! Купить сервер побольше! Нет, им подавай микросервисы, кеширование в пятнадцати слоёв и хитрую жопу с eventual consistency. Терпения ноль ебать.
А код твой, этот, с зайцами-черепахами... Ну, ни хуя себе, задачка. Это ж про поиск дубликата в массиве через алгоритм Флойда. Умно, конечно. Но представляешь картину? Ты на собеседовании, тебе надо не только решить, но и объяснить, почему slow и fast встретятся. А у тебя в голове одна мысль: «Чих-пых тебя в сраку, дай хоть воды попить». Главное — не спасовать и не выдать что-нибудь вроде «ну, тут, блядь, магия какая-то».
Книжки эти — да, библия, спору нет. «Cracking the Coding Interview» — это как священное писание для айтишника. Но иногда кажется, что вся эта подготовка — просто чтобы пройти через овердохуища унижений, а потом всё равно работать с легаси-кодом, который писал какой-то распиздяй десять лет назад.
Короче, суть в чём: отскакивают эти собеседования, как горох от стенки. Надо просто не бздеть, готовиться, и рано или поздно попадёшь в место, где не будут спрашивать, как переписать HashMap на ассемблере для Android 4.4. Удачи там, не вздрачивай себя раньше времени.