Реальное собеседование Android уровня Middle. Даниил Черняев / Мобильный разработчик

  Рет қаралды 15,837

Mobile Developer

Mobile Developer

3 жыл бұрын

Всем привет. Третье видео уже готово! Сегодня у нас гораздо более серьезный кандидат, местами знающий лучше андроид, чем я сам, поэтому должно быть интересно думаю. И точно также не забываем выражать дикий респект Даниилу, потому что это очень тяжело публично проходить собеседования!
Напоминаю, что видео вначале выходят для моих патронов. Стать патроном можно по ссылке ниже
===========================================
Стать Патроном канала и получить доступ к уникальному материалу
/ mobiledeveloper
===========================================
Мобильный разработчик в других соц. сетях
=======================
Вконтакте - mdeveloper
Instagram - / nplau
Telegram - t.me/mobiledevnews
=======================
Ставь лайк и расскажи друзьям, чтобы они тоже попробовали эту технологию
00:00:24 - Почему именно андроид
00:05:33 - MVI
00:14:59 - Оператор Rx для MVI
00:18:36 - Обработка и отображение данных MVI
00:39:38 - Многопоточность и работа с сетью
00:55:35 - Kotlin и инструменты разработки
01:03:17 - Работа с Android
01:11:21 - Сборщик мусора в Android
01:19:59 - Заключение

Пікірлер: 96
@iv2649
@iv2649 3 жыл бұрын
Хороший, интересный собес) Даниил молодцом!
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Это точно )
@andrewmovan771
@andrewmovan771 3 жыл бұрын
отличное собеседование, Даниил красава!
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Согласен ))
@kafychannel
@kafychannel 3 жыл бұрын
Спасибо за замечательно собеседование! Вижу народу нравится смотреть подобное, и подчёркивать для себя что - то новое, просмотров немало)
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Спасибо, да тема заходит))
@user-lc7gd9ne8x
@user-lc7gd9ne8x 3 жыл бұрын
После такого видео понимаешь, насколько ещё ты ещё джун 😂 спасибо за видео, интересно и познавательно в некоторых моментах. Ну и даёт какое-то понимание, что должен знать или хотя бы несколько глубоко разбираться в некоторых вещах для перехода в гредл мидла 👍
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Рад, что видео понравилось
@alexandernifanin7366
@alexandernifanin7366 3 жыл бұрын
Спасибо за хорошее собеседование. Даниил хорошо разбирается. Есть, что изучить самому (мне).
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Да, Даниил молодец )
@artemkhateev3650
@artemkhateev3650 Жыл бұрын
Интересный собес, спасибо)
@andrewgladkov9191
@andrewgladkov9191 3 жыл бұрын
Балдеж!
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
🔥🔥👍
@pavelkorolevxyz
@pavelkorolevxyz 3 жыл бұрын
Интересно, спасибо. Насчёт Eden, кстати, это Эдем - там где якобы появились первые люди, поэтому точно также и в GC, это там где объекты создаются изначально, часть Young gen в Hotspot. Если я не ошибаюсь, к андроиду всё это имеет мало отношения, в Dalvik никаких поколений точно не было, а в ART их то убирают, то добавляют из версий в версию. Сейчас начиная с Q они точно есть, но терминологии Eden/Survivor/Old gen я нигде не видел именно в контексте ART.
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Да, не говорите в голове перепуталось как раз из-за этой ассоциации с раем )) насчёт памяти как раз готовлю максимально объемное видео, которое по идее раскроет все эти моменты
@senk0n
@senk0n 2 жыл бұрын
Спасибо, помогает понять чего ожидать на собеседовании и в каком объеме. Будут ли ещё видео с собеседованиями?
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Да, вот буквально сегодня записали )
@evenvrgvxsd
@evenvrgvxsd 2 жыл бұрын
Крутой разраб!
@user-fm2jm2yd5n
@user-fm2jm2yd5n 3 жыл бұрын
Порадовало видео, вообще зашел чтоб получить свою мину позора, и понять что я ничего не знаю, Но оказалось, что практически все смог бы ответить :)
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Здорово ))
@user-px1rj9hd1w
@user-px1rj9hd1w 2 жыл бұрын
Вы круты) Я позора получила(
@user-oe6vy3kh2i
@user-oe6vy3kh2i 3 жыл бұрын
Было бы круто в описании под такими видосами видить тайм коды вопросов.
@paulk3222
@paulk3222 3 жыл бұрын
Уже добавили
@alextaran781
@alextaran781 3 жыл бұрын
С 58 минуты собеседуемый перехватил инициативу и начал собеседовать собеседующего)))
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
И такое бывает )
@user-xe1vv6xc4c
@user-xe1vv6xc4c 3 жыл бұрын
1:10:09 Чтобы связать Activity и Service, который запущен в другом процессе, можно использовать Messenger или AIDL
@user-on9iv7pj4c
@user-on9iv7pj4c 3 жыл бұрын
Тоже показалось, что вопросы был о bound сервисах и в частности на получение IBinder, удивился, что об этом ничего не сказали. Я ожидал услышать о Messenger с replyTo и возможно пару слов о .aidl файле
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Хм, надо будет про это видео сделать
@denissadokha3202
@denissadokha3202 3 жыл бұрын
Спасибо за контент. После подобных видео голова прям сильно загружается от того, что я капец как многого не знаю и вообще какое-то чмо) и на короткий срок впадаю в какое-то состояние минус морали, что бы могли посоветовать?
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Хм. Я бы мыслил с другой стороны. В свое время я учился именно на собеседованиях, когда переехал в Москву. Поэтому я рекомендую вам не загружаться, а идти учить то, что не знаете. Меня постоянно спрашивают с чего начать, что учить - ну так вот оно )
@denissadokha3202
@denissadokha3202 3 жыл бұрын
@@MobileDeveloper да вроде как мне лишь 18, 3 месяца работаю, но пока с react native, попутно изучаю андроид, но вот у меня бывают состояния, когда понимаешь, что уже не один месяц с андроидом общаешься, а ещё стооооооолько всего, что немного загоняться начинаю
@denissadokha3202
@denissadokha3202 3 жыл бұрын
Не один месяц это 2 года у меня)
@denissadokha3202
@denissadokha3202 3 жыл бұрын
И как вы вообще думаете, вуз решает в нашей специальности? Был шанс поступить в мск или в СПб, хорошие баллы на егэ набрал, но решил остаться учиться у себя в регионе(Кемерово ) и иногда тоже немного грызёт это, вообще я странный, я это понимаю)
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Я тоже сдал егэ на очень высокие баллы, но остался в Томске. Так что не вы один) Если будет желание покорить Москву оно сбудется. Все еще впереди)
@vladsyrgashev8089
@vladsyrgashev8089 2 жыл бұрын
Из сервиса можно передать в активити с помощью messenger api и aidl если они с разных процессов.
@vadimmorozov30
@vadimmorozov30 3 жыл бұрын
Когда говорят что преобразовывают из сетевых данных в доменные это аля из DTO - в BuisenessModel или из json в data class?
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Первый вариант имелся ввиду если мне память не изменяет
@dmitriyobidin6049
@dmitriyobidin6049 3 жыл бұрын
Собеседование iOS девелоперов планируется? :)
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Нет желающих )
@podo_x2
@podo_x2 3 жыл бұрын
Александр, напомни, пожалуйста, эти собеседования просто как формат шоу или ты куда-то ищешь разработчика?
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Если вы ко мне, то я Алексей )) Это просто формат шоу, хотя сейчас мы ищем iOS разработчика, так что если знаете кого-то велком )
@user-hr2dk6jy1k
@user-hr2dk6jy1k 3 жыл бұрын
Можем ли мы мерджить функции между собой в чистой Java? Ну вообще-то с java 8 есть такие методы как Function.compose и andThen. Вроде как отлично подходят для композиции функций... А вот с каррированием и частичным применением в чистой Java на самом деле без библиотек никак... Хотя хз что там с котлином по этому поводу, но скорее всего чуть лучше
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Да, вы правы. Хорошее замечание
@keystarr
@keystarr 2 жыл бұрын
Алексей, Даниил, благодарю за интервью! Полезный контент, полагаю, кому-то интересно для развлечения, а кому-то для подготовки) На мой взгляд, Даниил держался уверенно, на GC вообще круто начал рассказывать подробности внутрянки. Хотя не знаю, насколько ценны знания про generations на практике. Алексей вел интервью гладкой (put intended) нитью: органично менял темы, да и, на мой взгляд, формат общения выбрал классный, по сути разговор. Не такое душнилово, как собес Боиштян-Розов на android brodcast :D С другой стороны, считаю, что было слишком мягко - минимум вопросов-ловушек, где ожидался один правильный ответ с точки зрения реализации, краевых случаев. Да и в плане глубины только вот в GC погрузились, в остальных темах как-то поверхностно, на уровне пользователя API. Глубина и подковырки на собесах тема холиварная, да и грейды зависят от проекта, но, на мой взгляд, у Кирилла Розова в среднем собесы более реалистичны в плане прессинга на кандидата и жесткости постановки задач. Мой юз кейс к видосу - подготовка к собесам, так что помимо поинта выше крайне не хватило оценки кандидата от интервьюера. Отдельные моменты вижу сам, где хорошо, а где есть пробелы, однако в целом очень хочется сматчить свою оценку с другой. Иначе как калиброваться то? :) Видос древний, но для будущих зрителей не могу не подсветить два момента, которые интервьювер не поправил (не ради душноты, ради лучших практик!) : 1. На 38:13 был вопрос, мол, нужно получить полные данные о продукте, притом для этого надо сделать разные запросы - получить детали, проверить есть ли в корзине, или вдруг он уже куплен. Кандидат ответил, что каждый запрос скорее будет в разных интеракторах, а связывать полную модель будет Presenter/ViewModel etc. IMHO проблемный подход, ибо это и есть чистого рода бизнес-сценарий: "получить полные данные о продукте", в результате которого нужно обратиться к разным источникам данных и непротиворечиво их объединить. Во-первых такое важно протестировать, во-вторых, по моей практике, скорее всего понадобится переиспользовать. Поэтому заслуживает отдельного UseCase, либо метода интерактора. 2. Примерно на 01:10:00 вопрос про то, как основному приложения обмениваться данными с сервисами. Сошлись на том, что оптимальный вариант это BroadcastReceiver, притом если сервис в другом процессе, то только ресивер. Может я чего-то не понял, но в такой формулировке вообще не так - если сервис в одном с Activity процессе, можно через Binder получить инстанс на него и напрямую работать, либо через память кидаться объектами, проще чем с ресиверами. Если же в разных процессах - то Messenger, либо напрямую AIDL. Кому интересно - developer.android.com/guide/components/bound-services
@elkanov201
@elkanov201 3 жыл бұрын
Service Locator удобен в больших проектах, 100+ модулей, при таком раскладе inject надо запрещать, а каждый модуль будет сам искать себе зависимости
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Не очень понял, к чему вы это и что имеете в виду?)
@elkanov201
@elkanov201 3 жыл бұрын
@@MobileDeveloper представьте что у вас 200 фичевых модулей и много команд, как вы реализуете внедрение зависимостей в каждый модуль?
@zaur4094
@zaur4094 2 жыл бұрын
про ужасно написанный бек и в таких реалиях приходится работать, это собственный опыт?)
@mikeshilovski1512
@mikeshilovski1512 7 ай бұрын
У меня опыт работы 2 года. Я просмотрел 100ни собесов на этом канале, особенно про джунов! И меня удивляло то какие там были вопросы и то как многие умудрялись отвечать на них. После всего этого без смеха смотреть этот собес невозможно. Эти банальные вопросы знает каждый наверное. Называть такого специалистом даже джуниором язык не поворачивается после всего другого контента на этом канале. Спасибо каналу за видео и за работу, но это полнейший абсурд.
@vengeancevengeance9993
@vengeancevengeance9993 3 жыл бұрын
1:10:20 не согласен на счет одного варианта, возможно ведь использовать aidl + binding service
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Был неправ, исправлюсь)
@user-hr2dk6jy1k
@user-hr2dk6jy1k 3 жыл бұрын
История с синхронизацией корзины - какая то муть полная... Типа "а как нам запилить crdt на базе crud?"
@ljlj
@ljlj 2 жыл бұрын
Второй вариант - Binder
@asp424
@asp424 3 жыл бұрын
Второй вариант это интент фильтр
@paulsoja2732
@paulsoja2732 2 жыл бұрын
на 25:15 было сказано, что через Cicerone можно навигироваться на другой фрагмент и диалог фрагмент. Разве так? Cicerone не дает навигацию в диалог фрагмент, только в активити и фрагменты.
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Я сейчас уже плохо помню, но DialogFragment это тоже Fragment, почему его нельзя передать?)
@paulsoja2732
@paulsoja2732 2 жыл бұрын
@@MobileDeveloper cicerone откроет полноэкранный фрагмент, а не диалог фрагмент. Хотя я не пробовал последние версии cicerone, может что-то поменялось
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Надо проверить, но DialogFragment унаследован от фрагмента, так что его можно передать )
@user-do4oh6rw9u
@user-do4oh6rw9u 2 жыл бұрын
@@paulsoja2732 можно свою команду написать для этого, из коробки не работает, раньше не работало по крайней мере
@ANIKINKIRILL
@ANIKINKIRILL 3 жыл бұрын
что такое "инда" Даниил сказал об этом в самом начале про банковский проект?
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Это NDA - Non disclosure agreement - соглашение о неразглашении
@BillieBonse
@BillieBonse 10 ай бұрын
полтора года и такие знания капец - я ничтожество
@ki16or
@ki16or 3 жыл бұрын
что за шамеры? при загрузке?
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Погуглите ShimmerLayout Android
@ki16or
@ki16or 3 жыл бұрын
@@MobileDeveloper , спасибо. Но я так понял, это внешняя либа.
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Да первыми Facebook сделали
@ki16or
@ki16or 3 жыл бұрын
@@MobileDeveloper , понятно почему я не знал. Но видел такое в альфабанке
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
@@ki16or Ну сейчас такое почти везде, например, у нас в Леруа Мерлен
@bringoff
@bringoff 2 жыл бұрын
Слишком много специфичных кейсов, связанных с корзиной :)
@kuckoc
@kuckoc 3 жыл бұрын
По многопоточности слабо (так и не ответил в итоге), много воды в ответах, уходит от прямых ответов, переводит тему постоянно, не рассказал про пуши, не ответил про jmm (начал рассказывать про gc), сомнительный мидл, больше минус чем +
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Соня, ты ли это?)
@kuckoc
@kuckoc 3 жыл бұрын
@@MobileDeveloper :) нет
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Хм ) ну ладно. По существу если, то где-то он глубоко знает, где-то не так. Это все очень субъективно.
@didaray8854
@didaray8854 3 жыл бұрын
Давай тогда покажи мастер класс
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Что за мания сразу говорить давай докажи, что ты лучше?)) здесь более-менее свободная зона, можно просто высказывать своё мнение
@arturxdreil
@arturxdreil 3 жыл бұрын
Да, похоже без высшего образования в нашем мире, и тем более разработке никак... (sarcasm)
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Не очень понял к чему вы это))
@arturxdreil
@arturxdreil 3 жыл бұрын
Оу Я подумал что только среднее программистское) сори тогда
@user-oc7py1vy6s
@user-oc7py1vy6s 3 жыл бұрын
Лайк если считаете что у Даниила скилл Android разработчика выше чем у Алексея.
@alexandernifanin7366
@alexandernifanin7366 3 жыл бұрын
Лайков нет, т.к. у Алексея уровень, конечно же, намного выше.
@user-oc7py1vy6s
@user-oc7py1vy6s 3 жыл бұрын
@@alexandernifanin7366 2 часа прошло, не торопитесь с выводами.
@alexandernifanin7366
@alexandernifanin7366 3 жыл бұрын
@@user-oc7py1vy6s я понимаю, но за каналом Алексея слежу давно, примерно представляю уровень.)
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Один лайк все же появился )) но вообще нет ничего странного если я в моменте не помню каких-то вещей. Мозг хранит строго ограниченное количество знаний и соответственно, если ты чём-то не пользуешься, то оно постепенно вымывается
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Хотя все равно позор мне на мою седую голову 😂😂
Василиса наняла личного массажиста 😂 #shorts
00:22
Денис Кукояка
Рет қаралды 9 МЛН
UFC Vegas 93 : Алмабаев VS Джонсон
02:01
Setanta Sports UFC
Рет қаралды 221 М.
Watermelon Cat?! 🙀 #cat #cute #kitten
00:56
Stocat
Рет қаралды 52 МЛН
🌊Насколько Глубокий Океан ? #shorts
00:42
Cобеседование Android-разработчика. Максим Качинкин, Dodo Engineering
1:44:13
Android Broadcast. Все об Андроид разработке
Рет қаралды 12 М.
Mock Middle Android Developer Behavioral Interview
53:41
DevGym
Рет қаралды 1,6 М.
Собеседование в Яндекс. Платформа Android
2:09:43
Android Broadcast. Все об Андроид разработке
Рет қаралды 20 М.
Василиса наняла личного массажиста 😂 #shorts
00:22
Денис Кукояка
Рет қаралды 9 МЛН