Реальное собеседование Senior iOS разработчика. Виталий Кузьменко / Мобильный разработчик

  Рет қаралды 18,732

Mobile Developer

Mobile Developer

Күн бұрын

Всем привет. Я решил возобновить рубрику онлайн собеседований, но делать это более интересным образом, чтоб это было полезно всем, поэтому собеседования будут отличаться по формату. В этот раз я решил попробовать System Design, потому что кандидат достаточно сильный и вы в этом убедитесь по ходу просмотра. А кандидат сегодня это Senior IOS Developer по имени Виталий Кузьменко
Если видео вам было полезно, пожалуйста, поделитесь им с друзьями
Тайм-коды:
00:00:00 - Вступление
00:01:24 - Виталий о себе
00:06:18 - Вводный вопрос
00:09:31 - Presentation слой
00:17:10 - ViewController
00:26:27 - Data
00:40:03 - Инструменты разработки
00:45:09 - Многопоточность
00:49:43 - Про Firebase и работу с сетью
00:54:13 - Снова Data
00:59:40 - Короткие вопросы
01:04:13 - Заключительная часть
Ссылка на библиотеку Виталия:
github.com/vitkuzmenko/Struct...
Если вы хотите принять участие в подобном видео, то заполните эту форму:
forms.gle/uuWft1HQ99H3GGBP8
Напоминаю, что видео вначале выходят для моих патронов и спонсоров. Стать им можно по ссылке ниже
===========================================
Подписаться на boosty
boosty.to/mobiledev
Стать Патроном канала и получить доступ к уникальному материалу
/ mobiledeveloper
===========================================
Полезные статьи из мира мобильной разработки
Яндекс.Дзен - zen.yandex.ru/id/5e4aa0a9f2b9...
Teletype - teletype.in/@alexgladkov
Мобильный разработчик в других соц. сетях
=======================
Вконтакте - mdeveloper
Instagram - / nplau
Телеграм - t.me/mobiledevnews
=======================
Ставь лайк и расскажи друзьям, чтобы они тоже попробовали эту технологию

Пікірлер: 85
@dmitryya.2988
@dmitryya.2988 2 жыл бұрын
Спасибо большое! Всё интересно и почти знакомо , хотя еще зеленый в этом. Спасибо ребят за материал, полезно и для подготовки и для общего развития !
@uranproject
@uranproject 10 ай бұрын
Сеньеры, которых мы заслужили)
@Andrew-7324
@Andrew-7324 7 ай бұрын
Да вроде и неплохо. Свою работу он точно делать сможет
@dannybones9484
@dannybones9484 2 жыл бұрын
-knock knock -race condition --who's there?
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
)))
@maxsimpleapps
@maxsimpleapps 2 жыл бұрын
Отлично. Когда перекатываешься с андроид разрабоки на айос, такие видео на вес золота. Алексей, спасибо 💥
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Рад, что зашло ))
@stanislavvetrovskii8465
@stanislavvetrovskii8465 2 жыл бұрын
Ты предал семью
@it-6411
@it-6411 2 жыл бұрын
Интересное собеседование. Спасибо Алексею и Виталию. Вполне позволяет сформировать представление о навыках и знаниях собеседуемого. От себя добавлю, что есть разного рода обёртки для core data, позволяющие работать с ней, исключительно, в декларативном стиле, такие, как CoreStore, что очень удобно. Плюсом, хотелось бы услышать о различных build-конфигурациях приложения (аналог android-овским product flavors). Достаточно часто нужная и требуемая бизнесом задача. И ещё логику работы с network-ом я бы выделил в отдельный модуль/pod, и из репозитория общался бы с ним через интерфейс/протокол (привет SOLID).
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Возможно это будет в следующих интервью ))
@pepapig8621
@pepapig8621 Жыл бұрын
Cool, many thanks!
@andreikudryavtsev3193
@andreikudryavtsev3193 2 жыл бұрын
Ничего не понятно, но очень интересно:D Виталию как синьору, согласившемуся на публичный собес, огромный респект. Лайк.
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Прям совсем ничего или всё-таки что-то понятно?)
@andreikudryavtsev3193
@andreikudryavtsev3193 2 жыл бұрын
@@MobileDeveloper Да нет, не всё так плохо. Интересно в целом, общо так. Про вёрстку, что там вместо ресайклера я так и не понял:D Про подключение сторонних фреймворков. Какие-то такие вещи. Общее впечатление не смазало то что много всего в диковинку, конечно. Много годной инфы. Систем дизайн вообще всегда полезно послушать, кто бы ты ни был
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Согласен, моя любимая часть интервью )
@andreikudryavtsev3193
@andreikudryavtsev3193 2 жыл бұрын
@@MobileDeveloper Ещё ссылочку на репозиторий Виталия прикрепить было бы хорошо)
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
О, точно, спасибо. Прикрепил
@1nzhener
@1nzhener 9 ай бұрын
DiffableDataSource такой - "да, да, пошел я нахер"
@maxsimpleapps
@maxsimpleapps 2 жыл бұрын
Было бы интересно в следующий раз более развёрнуто услышать про Coredata vs Realm и про боль, с которой пришлось столкнуться при использовании этих орм
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Это заслуживает отдельного видео 😂
@user-oc7py1vy6s
@user-oc7py1vy6s 2 жыл бұрын
Спасибо!
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Спасибо за поддержку канала!
@user-vl3nd2kc9z
@user-vl3nd2kc9z 2 жыл бұрын
Очень не хватает итогового анализа что было хорошо, что плохо. А то после просмотра остается чувство незавершенности
@nobytrix
@nobytrix 2 жыл бұрын
Ещё не всё про слушал. Но у меня стойки флешбеки особенно после слова логин, вот бы ещё ключевую фразу в дополнение к паролю)
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
😂😂 помню, помню )
@Dragonboh1
@Dragonboh1 Ай бұрын
интересно глянуть статью гед вайпер цикличний ))))))
@agpone1
@agpone1 7 ай бұрын
mvc top!
@user-il4oo4og7h
@user-il4oo4og7h 2 жыл бұрын
Изначально начали закрадываться сомнения в сеньерности данного кандидата. А после восьмой минуты даже захотелось прекратить просмотр, но досмотрю, может быть исправится)
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Прошу более подробный комментарий)
@vitkuzmenko
@vitkuzmenko 2 жыл бұрын
Не в оправдание себе, но пересмотрев, скорее всего бы согласился, начало не очень внятное, особенно зафакапился на вопросе "почему" 🙃, в такой обстановке думается труднее) и многие вещи "в другой обстановке" ответил бы совсем по другому. Где то был классный мем про качество мозговой деятельности в зоне и вне зоны комфорта. Ну а если будут конструктивные замечания, с удовольствием прочитаю, может что то новое узнаю)
@user-il4oo4og7h
@user-il4oo4og7h 2 жыл бұрын
Досмотрел. Ну начнем с того, что было дано весьма абстрактное описание проекта. Наверно стоило бы задать ряд уточняющих вопросов. Узнать насколько серьезные планы у заказчика. Я не иос-разработчик, но насколько я смог понять многое обсуждалось весьма поверхностно. А если мы считаем, что разница между мидлами и синьорами в глубине знаний, то синьор мог бы либо перечислить несколько вариантов и назвать плюсы и минусы, либо обосновано выбрать один, исходя из уточняющих вопросов. Ещё мне кажется не хватило какого-нибудь сложного вопроса "на подумать". Например пользователь открывает приложение, необходимо получить с сервера новые письма. Как это должно быть устроено? И тут ожидаются рассуждения от соискателя. Какие подводные камни могут быть? Как он справлялся бы с ними? и т.д.
@user-il4oo4og7h
@user-il4oo4og7h 2 жыл бұрын
Держался хорошо. Понятно, что это не с коллегами за кружечкой кофе беседовать. Можно и перенервничать, и накрутить
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Спасибо, Митя, очень крутой комментарий реально. Пытаясь делать дизайн интервью, я столкнулся с тем, что в снг их практически никто не делает и не проводит, и это накладывает отпечаток на их качество безусловно. В фаангах всяких это целый ритуал, нужно задать вопросы вначале, обрисовать жестко картину, а потом делать. Вопросы на будущее учту, спасибо, планирую ещё сделать ряд таких интервью, думаю качество будет расти )
@user-qb1xy3jq5x
@user-qb1xy3jq5x 5 ай бұрын
Много негатива в комментах, человек согласился на публичный собес это уже стоит уважения, видно что нервничает из-за этого возможно и тупит на некоторых вопросах, в комментах вижу одни сеньеры.
@Embedded_Developer
@Embedded_Developer 2 жыл бұрын
Ничего не понятно, но очень интересно[2](C)
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Ну вот и повод изучить )
@serious_psychologist
@serious_psychologist 2 жыл бұрын
:))) как мне нравится задавать вопрос "почему" ? ) почему чистая архитектура? и тут парнишка поплыл.
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Многие вещи берутся на автомате. Так называемые gold standard. Но полезно понимать почему именно эти вещи, а не другие
@serious_psychologist
@serious_psychologist 2 жыл бұрын
@@MobileDeveloper да, и я про то же... и вопрос почему как раз должен был бы раскрыть почему. Но в очередной раз я так и не услышал почему ? :) Притом что я все таки сделал над собой усилие, начал читать книгу "Чистая архитектура" Роберта Мартина. И я понимаю сейчас почему она была придумана. И что большинство тех статей и тех видео про чистую архитектуру люди просто не понимают что и зачем это вообще. И вот на это вот смотреть действительно забавно. архитектура архитектурой, но переусложнять на старте, ну такое себе
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Это удобно при работе над средним приложением со среднего размера командой.
@vitkuzmenko
@vitkuzmenko 2 жыл бұрын
@@serious_psychologist Полностью с тобой согласен. Не знаю почему растерялся в тот момент и не рассказал про то, что вообще можем взять и разобрать каждую из них. Если еще раз понадобится ответить, уже не растеряюсь)
@Architect_Mobile
@Architect_Mobile 2 жыл бұрын
Все время считал себя Миддл)) Послушал ответы этого парня и понял что я Синиор плюс 🤣!) Объективно он слаб для Синьора , ответ про память настолько слабый , что мне показалось он вообще не разу не решал проблемы утечики памяти)) Очень слыбые ответы про архитектуру , глубины вообще нет , на мой взгляд единственный аргумент между выбором архитектуры - это та с которой чаще и больше опыта , так как если реально понимаешь суть архитектуры то разницы нет вообще на какой писать , грамотно и модульно написаное приложение прекрасно работает и на MVC . Уровень разработчика - это модульность и правильная связь этих модулей , легкая простая и понятная ! Это играет роль , в архитектуре, а не сама архитектура )) Про дедлок - это вообще , так рассказывать с трудом ))) Жесть ))) Про пуши и фаирбеис должен знать любой, это типичные будни прогера))) На какую ЗП он может претендовать ?
@vitkuzmenko
@vitkuzmenko 2 жыл бұрын
Посмотрев со стороны, у меня скорее всего тоже сложилось бы такое мнение) Но можно ли посмотреть твой github? Может вдохновлюсь чем-нибудь :)
@Architect_Mobile
@Architect_Mobile 2 жыл бұрын
@@vitkuzmenko Мой гитхаб исключительно из боевых коммерческих проектов) Которых больших более 10 , мелких более 15
@vitkuzmenko
@vitkuzmenko 2 жыл бұрын
@@Architect_Mobile Окей, допустим... Тогда "ответ про память настолько слабый..." можешь ли разобрать ответ и указать конкретно "вот это плохо сказал", Senior Developer сказал бы так то так то. Буду рад прочитать четкий ответ от опытного специалиста.
@dyadichev
@dyadichev 2 жыл бұрын
Если ты думаешь что мидл от сеньора отличаются умением кодить, ты долго будешь еще в мидлах😂
@Architect_Mobile
@Architect_Mobile 2 жыл бұрын
@@dyadichev Middle от Senior отличается умением кодить в широком смысле , а не буквально )) Если уходить в детали , то Senior - это больше не работяга , а человек который умеет мыслить на несколько шагов вперед опираясь на опыт и базовые знания . Который максимально быстро может принимать ключевые технические решения по проекту с минимальными ошибками .
@dmitriyobidin6049
@dmitriyobidin6049 2 жыл бұрын
Интересно было бы услышать на какую ЗП мог бы рассчитывает кандидат с такого уровня знаниями :)
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
250К примерно около этой суммы, ну +-
@easycad6998
@easycad6998 2 жыл бұрын
@@MobileDeveloper Легче на иностранные компании работать где 6-8 к баксов зарплата
@freedeveloper7638
@freedeveloper7638 Жыл бұрын
@@MobileDeveloper ну я бы несказал что это собес на 250к ) В США это на 1к бачей максимум знаний )
@MobileDeveloper
@MobileDeveloper Жыл бұрын
В России большой дефицит кадров, да и в целом это норм зарплата для миддла сейчас В сша другая структура собеседований, поэтому имхо некорректно сравнивать )
@freedeveloper7638
@freedeveloper7638 Жыл бұрын
@@MobileDeveloper В России в целом они скоро ненужны вообще будут, так как из за спецопераций правительсво убило и утопило все ((
@savazhkin
@savazhkin 2 жыл бұрын
Вообще не ожидал здесь увидеть человека, с которым когда-то работал. Вдвойне интереснее послушать
@vitkuzmenko
@vitkuzmenko 2 жыл бұрын
😊
@alexanderfedoseev7870
@alexanderfedoseev7870 2 жыл бұрын
Взглянул я как-то на кордату и подумал ну нафиг мне этот геморрой буду хранить в обычных файлах. И нормально проблем не знаю. Конечно если не требуется делать какие-то сложные селекты по базе.
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Кордата да штука специфическая
@DenisDenis-zq8mk
@DenisDenis-zq8mk 2 жыл бұрын
Где учиться на iOS разработчика в 2022 году)?
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Могу посоветовать школу SwiftBook
@DenisDenis-zq8mk
@DenisDenis-zq8mk 2 жыл бұрын
Спасибо. А по Android ?
@ill_threads1628
@ill_threads1628 2 жыл бұрын
JavaBook или KotlinBook - должно быть по аналогии 😂
@DenisDenis-zq8mk
@DenisDenis-zq8mk 2 жыл бұрын
@@ill_threads1628 🤣
@alexeykhomych1743
@alexeykhomych1743 2 жыл бұрын
- ну я бы использовал мввм с реактивщиной - а если без либ? - напилил бы свою реактивщину странное решение, учитывая момент, что на его место посадят джуна/мидла для фикса багов, где тот и умрет, ибо нет документации/опыта.
@alexeykhomych1743
@alexeykhomych1743 2 жыл бұрын
вообще после этого диалога подумал, что видео за 2018 год. а не. свежак. какой там юайсвифт, зачем он нужен, втулю реактивщину, от которой либо плюются, либо суют ее куда только могут.
@alexeykhomych1743
@alexeykhomych1743 2 жыл бұрын
- а что по DI? - ну, свинжект - а если без либ? - напилил бы свой свинжект мне кажется, что интервьюверу хотелось услышать альтернативные методы реализации, как и в случае с реактивщиной.
@alexeykhomych1743
@alexeykhomych1743 2 жыл бұрын
досмотрел до конца. спасибо ребятам за интересное интервью. не увидел смысла в поверхностных вопросах по управлению памятью и чем отличается структура от класса) айосеров это спрашивают начиная с первого собеса и пока не станут синьорами. ожидал погружения в сайд тейблс, авторелиз пул, тейбл диспатч и т.д. я сам не знаю на это ответы, поэтому был очень заинтересован))
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Ну в целом да, я скорее задавал вопросы на альтернативы, потому что часто очень все решается библиотеками без захода внутрь, а интересен как раз этот момент Ноо я довольно много в своей жизни провёл собеседований по iOS и могу сказать что это везде так практически) ну то есть редко встречаю людей, которые прям глубоко копают. И идея была показать систем дизайн интервью, то есть вот как человек объяснит как бы он построил систему. Понятно что перед этими блоками как правило идут другие блоки, которые могут как раз проверять на глубину, но тут видео одно, поэтому так )
@vitkuzmenko
@vitkuzmenko 2 жыл бұрын
Привет! Вставлю свои 5 копеек) если это в принципе уже уместно). Почему MVVM: На мой взгляд, простой и понятный паттерн представления (подчеркну - не архитектура, а именно паттерн представления), разделяющий логику и I/O компонента. Достаточно прост в освоении даже начинающим. Почему реактивщина, а не новомодный SwiftUI: Моим упущением было не задать вопрос, какая минимальная версия iOS требуется, если iOS 14, то безоговорочно это был бы SwiftUI, возможно с другой архитектурой. iOS 13 не обсуждается, слишком мало даёт возможностей. Но такие приложения, как почтовые клиенты/чаты по умолчанию должны поддерживать максимально минимальную версию, соответсвенно SwiftUI тут и не пахнет. В настоящий момент в компании, где работаю, мы поддерживаем iOS 10 и из за специфики проекта, планируем понижение до iOS 9, такая уж привычка). Почему реактивщина: минимум шаблонного кода, вложенности, удобное управление многопоточностью, и прочая куча удобств, простоты и возможностей для того же I/O. Да, есть и расплата за это в виде побочки, но зависит от опыта разработчика и ревьювера как это использовать и соответсвенно тестирования. Тут уже больше вопрос к организации команды и помощи в освоении. Про DI: почему Swinject и если не Swinject то реализация подхода Swinject: Имеется контейнер, фабрики отделены в Assembly классы, а не в статиках классов, удобное управление скоупом переиспользования инстансов в рамках скоупов и тд, именованые резолвы с разными аргументами одних и тех же инстансов, много всего можно сказать. Много может быть других реализаций DI, но так как вопрос был про то что я бы использовал, я рассказал). Мог конечно рассказать про альтернативы, но хоть во время общения с Алексеем и была очень спокойная и дружелюбная атмосфера, все равно микро нервозность присутствовала и рассуждение получалось не совсем такое, какое было бы в обычной зоне комфорта с коллегами. Не каждый день прохожу собесы)
@user-ft1im5cd8h
@user-ft1im5cd8h 2 жыл бұрын
странно, что человек писал 4 года на MVC и у него даже не возникло ощущения, что есть проблемы
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Имхо, на iOS это очень частая история
@pedrosedro
@pedrosedro 2 жыл бұрын
Ну вообще говоря, самой проблемы в MVC нет, есть проблемы в криворуких разрабах. Если правильно декомпозировать, то все ок и тестируемо
@user-gl9cm4qc1e
@user-gl9cm4qc1e Жыл бұрын
В 2021 году писать юай на xib? Ужас
@KryptLynx
@KryptLynx 7 ай бұрын
Продолжаю писать UI на Xib в 2023 (to clarify: я не чувак из видео) "вы просто не умеете его готовить". В SwiftUI только появилась поддержка навигации (WAT?), а написание UI из кода - для особых мазохистов
@muhamedalli7685
@muhamedalli7685 2 жыл бұрын
вопросы для джунов, виталий учи английский
@vitkuzmenko
@vitkuzmenko 2 жыл бұрын
Есть капитан!)
@antonk2745
@antonk2745 Жыл бұрын
простите Виталий но вы не senior) удачи!
СНЕЖКИ ЛЕТОМ?? #shorts
00:30
Паша Осадчий
Рет қаралды 6 МЛН
ПООСТЕРЕГИСЬ🙊🙊🙊
00:39
Chapitosiki
Рет қаралды 68 МЛН
Как быстро замутить ЭлектроСамокат
00:59
ЖЕЛЕЗНЫЙ КОРОЛЬ
Рет қаралды 13 МЛН
Каха инструкция по шашлыку
01:00
К-Media
Рет қаралды 8 МЛН
L'histoire de Microsoft : Bill Gates et Paul Allen
47:21
imineo Documentaires
Рет қаралды 1,1 МЛН
Мок интервью senior iOS разработчика
1:11:49
Антон Назаров | Осознанная Меркантильность
Рет қаралды 13 М.
СНЕЖКИ ЛЕТОМ?? #shorts
00:30
Паша Осадчий
Рет қаралды 6 МЛН