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

Sdílet
Vložit
  • čas přidán 27. 07. 2024
  • Всем привет. Я решил возобновить рубрику онлайн собеседований, но делать это более интересным образом, чтоб это было полезно всем, поэтому собеседования будут отличаться по формату. В этот раз я решил попробовать 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
    =======================
    Ставь лайк и расскажи друзьям, чтобы они тоже попробовали эту технологию

Komentáře • 85

  • @dmitryya.2988
    @dmitryya.2988 Před 2 lety

    Спасибо большое! Всё интересно и почти знакомо , хотя еще зеленый в этом. Спасибо ребят за материал, полезно и для подготовки и для общего развития !

  • @uranproject
    @uranproject Před 11 měsíci +3

    Сеньеры, которых мы заслужили)

    • @Andrew-7324
      @Andrew-7324 Před 8 měsíci

      Да вроде и неплохо. Свою работу он точно делать сможет

  • @maxsimpleapps
    @maxsimpleapps Před 2 lety +2

    Отлично. Когда перекатываешься с андроид разрабоки на айос, такие видео на вес золота. Алексей, спасибо 💥

  • @andreikudryavtsev3193
    @andreikudryavtsev3193 Před 2 lety +12

    Ничего не понятно, но очень интересно:D
    Виталию как синьору, согласившемуся на публичный собес, огромный респект. Лайк.

    • @MobileDeveloper
      @MobileDeveloper  Před 2 lety +1

      Прям совсем ничего или всё-таки что-то понятно?)

    • @andreikudryavtsev3193
      @andreikudryavtsev3193 Před 2 lety

      @@MobileDeveloper Да нет, не всё так плохо. Интересно в целом, общо так. Про вёрстку, что там вместо ресайклера я так и не понял:D Про подключение сторонних фреймворков. Какие-то такие вещи. Общее впечатление не смазало то что много всего в диковинку, конечно. Много годной инфы. Систем дизайн вообще всегда полезно послушать, кто бы ты ни был

    • @MobileDeveloper
      @MobileDeveloper  Před 2 lety +1

      Согласен, моя любимая часть интервью )

    • @andreikudryavtsev3193
      @andreikudryavtsev3193 Před 2 lety

      @@MobileDeveloper Ещё ссылочку на репозиторий Виталия прикрепить было бы хорошо)

    • @MobileDeveloper
      @MobileDeveloper  Před 2 lety +1

      О, точно, спасибо. Прикрепил

  • @dannybones9484
    @dannybones9484 Před 2 lety +12

    -knock knock
    -race condition
    --who's there?

  • @pepapig8621
    @pepapig8621 Před rokem

    Cool, many thanks!

  • @it-6411
    @it-6411 Před 2 lety +1

    Интересное собеседование. Спасибо Алексею и Виталию. Вполне позволяет сформировать представление о навыках и знаниях собеседуемого. От себя добавлю, что есть разного рода обёртки для core data, позволяющие работать с ней, исключительно, в декларативном стиле, такие, как CoreStore, что очень удобно. Плюсом, хотелось бы услышать о различных build-конфигурациях приложения (аналог android-овским product flavors). Достаточно часто нужная и требуемая бизнесом задача. И ещё логику работы с network-ом я бы выделил в отдельный модуль/pod, и из репозитория общался бы с ним через интерфейс/протокол (привет SOLID).

    • @MobileDeveloper
      @MobileDeveloper  Před 2 lety

      Возможно это будет в следующих интервью ))

  • @user-oc7py1vy6s
    @user-oc7py1vy6s Před 2 lety

    Спасибо!

  • @user-qb1xy3jq5x
    @user-qb1xy3jq5x Před 6 měsíci +1

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

  • @maxsimpleapps
    @maxsimpleapps Před 2 lety +6

    Было бы интересно в следующий раз более развёрнуто услышать про Coredata vs Realm и про боль, с которой пришлось столкнуться при использовании этих орм

    • @MobileDeveloper
      @MobileDeveloper  Před 2 lety +1

      Это заслуживает отдельного видео 😂

  • @1nzhener
    @1nzhener Před 10 měsíci +4

    DiffableDataSource такой - "да, да, пошел я нахер"

  • @user-vl3nd2kc9z
    @user-vl3nd2kc9z Před 2 lety +7

    Очень не хватает итогового анализа что было хорошо, что плохо. А то после просмотра остается чувство незавершенности

  • @user-il4oo4og7h
    @user-il4oo4og7h Před 2 lety +14

    Изначально начали закрадываться сомнения в сеньерности данного кандидата. А после восьмой минуты даже захотелось прекратить просмотр, но досмотрю, может быть исправится)

    • @MobileDeveloper
      @MobileDeveloper  Před 2 lety

      Прошу более подробный комментарий)

    • @vitkuzmenko
      @vitkuzmenko Před 2 lety

      Не в оправдание себе, но пересмотрев, скорее всего бы согласился, начало не очень внятное, особенно зафакапился на вопросе "почему" 🙃, в такой обстановке думается труднее) и многие вещи "в другой обстановке" ответил бы совсем по другому. Где то был классный мем про качество мозговой деятельности в зоне и вне зоны комфорта. Ну а если будут конструктивные замечания, с удовольствием прочитаю, может что то новое узнаю)

    • @user-il4oo4og7h
      @user-il4oo4og7h Před 2 lety +2

      Досмотрел.
      Ну начнем с того, что было дано весьма абстрактное описание проекта. Наверно стоило бы задать ряд уточняющих вопросов. Узнать насколько серьезные планы у заказчика.
      Я не иос-разработчик, но насколько я смог понять многое обсуждалось весьма поверхностно. А если мы считаем, что разница между мидлами и синьорами в глубине знаний, то синьор мог бы либо перечислить несколько вариантов и назвать плюсы и минусы, либо обосновано выбрать один, исходя из уточняющих вопросов.
      Ещё мне кажется не хватило какого-нибудь сложного вопроса "на подумать". Например пользователь открывает приложение, необходимо получить с сервера новые письма. Как это должно быть устроено? И тут ожидаются рассуждения от соискателя. Какие подводные камни могут быть? Как он справлялся бы с ними? и т.д.

    • @user-il4oo4og7h
      @user-il4oo4og7h Před 2 lety

      Держался хорошо. Понятно, что это не с коллегами за кружечкой кофе беседовать. Можно и перенервничать, и накрутить

    • @MobileDeveloper
      @MobileDeveloper  Před 2 lety +3

      Спасибо, Митя, очень крутой комментарий реально. Пытаясь делать дизайн интервью, я столкнулся с тем, что в снг их практически никто не делает и не проводит, и это накладывает отпечаток на их качество безусловно. В фаангах всяких это целый ритуал, нужно задать вопросы вначале, обрисовать жестко картину, а потом делать. Вопросы на будущее учту, спасибо, планирую ещё сделать ряд таких интервью, думаю качество будет расти )

  • @agpone1
    @agpone1 Před 9 měsíci

    mvc top!

  • @Architect_Mobile
    @Architect_Mobile Před 2 lety +13

    Все время считал себя Миддл)) Послушал ответы этого парня и понял что я Синиор плюс 🤣!) Объективно он слаб для Синьора , ответ про память настолько слабый , что мне показалось он вообще не разу не решал проблемы утечики памяти)) Очень слыбые ответы про архитектуру , глубины вообще нет , на мой взгляд единственный аргумент между выбором архитектуры - это та с которой чаще и больше опыта , так как если реально понимаешь суть архитектуры то разницы нет вообще на какой писать , грамотно и модульно написаное приложение прекрасно работает и на MVC . Уровень разработчика - это модульность и правильная связь этих модулей , легкая простая и понятная ! Это играет роль , в архитектуре, а не сама архитектура )) Про дедлок - это вообще , так рассказывать с трудом ))) Жесть ))) Про пуши и фаирбеис должен знать любой, это типичные будни прогера))) На какую ЗП он может претендовать ?

    • @vitkuzmenko
      @vitkuzmenko Před 2 lety

      Посмотрев со стороны, у меня скорее всего тоже сложилось бы такое мнение) Но можно ли посмотреть твой github? Может вдохновлюсь чем-нибудь :)

    • @Architect_Mobile
      @Architect_Mobile Před 2 lety

      @@vitkuzmenko Мой гитхаб исключительно из боевых коммерческих проектов) Которых больших более 10 , мелких более 15

    • @vitkuzmenko
      @vitkuzmenko Před 2 lety

      @@Architect_Mobile Окей, допустим... Тогда "ответ про память настолько слабый..." можешь ли разобрать ответ и указать конкретно "вот это плохо сказал", Senior Developer сказал бы так то так то. Буду рад прочитать четкий ответ от опытного специалиста.

    • @dyadichev
      @dyadichev Před 2 lety

      Если ты думаешь что мидл от сеньора отличаются умением кодить, ты долго будешь еще в мидлах😂

    • @Architect_Mobile
      @Architect_Mobile Před 2 lety +1

      @@dyadichev Middle от Senior отличается умением кодить в широком смысле , а не буквально )) Если уходить в детали , то Senior - это больше не работяга , а человек который умеет мыслить на несколько шагов вперед опираясь на опыт и базовые знания . Который максимально быстро может принимать ключевые технические решения по проекту с минимальными ошибками .

  • @Dragonboh1
    @Dragonboh1 Před 2 měsíci

    интересно глянуть статью гед вайпер цикличний ))))))

  • @nobytrix
    @nobytrix Před 2 lety

    Ещё не всё про слушал. Но у меня стойки флешбеки особенно после слова логин, вот бы ещё ключевую фразу в дополнение к паролю)

  • @Embedded_Developer
    @Embedded_Developer Před 2 lety +1

    Ничего не понятно, но очень интересно[2](C)

  • @serious_psychologist
    @serious_psychologist Před 2 lety +2

    :))) как мне нравится задавать вопрос "почему" ? ) почему чистая архитектура? и тут парнишка поплыл.

    • @MobileDeveloper
      @MobileDeveloper  Před 2 lety

      Многие вещи берутся на автомате. Так называемые gold standard. Но полезно понимать почему именно эти вещи, а не другие

    • @serious_psychologist
      @serious_psychologist Před 2 lety +2

      @@MobileDeveloper да, и я про то же... и вопрос почему как раз должен был бы раскрыть почему. Но в очередной раз я так и не услышал почему ? :) Притом что я все таки сделал над собой усилие, начал читать книгу "Чистая архитектура" Роберта Мартина. И я понимаю сейчас почему она была придумана. И что большинство тех статей и тех видео про чистую архитектуру люди просто не понимают что и зачем это вообще. И вот на это вот смотреть действительно забавно. архитектура архитектурой, но переусложнять на старте, ну такое себе

    • @MobileDeveloper
      @MobileDeveloper  Před 2 lety +1

      Это удобно при работе над средним приложением со среднего размера командой.

    • @vitkuzmenko
      @vitkuzmenko Před 2 lety

      @@serious_psychologist Полностью с тобой согласен. Не знаю почему растерялся в тот момент и не рассказал про то, что вообще можем взять и разобрать каждую из них. Если еще раз понадобится ответить, уже не растеряюсь)

  • @savazhkin
    @savazhkin Před 2 lety +8

    Вообще не ожидал здесь увидеть человека, с которым когда-то работал. Вдвойне интереснее послушать

  • @alexanderfedoseev7870
    @alexanderfedoseev7870 Před 2 lety

    Взглянул я как-то на кордату и подумал ну нафиг мне этот геморрой буду хранить в обычных файлах. И нормально проблем не знаю. Конечно если не требуется делать какие-то сложные селекты по базе.

    • @MobileDeveloper
      @MobileDeveloper  Před 2 lety

      Кордата да штука специфическая

  • @dmitriyobidin6049
    @dmitriyobidin6049 Před 2 lety +1

    Интересно было бы услышать на какую ЗП мог бы рассчитывает кандидат с такого уровня знаниями :)

    • @MobileDeveloper
      @MobileDeveloper  Před 2 lety

      250К примерно около этой суммы, ну +-

    • @easycad6998
      @easycad6998 Před 2 lety +3

      @@MobileDeveloper Легче на иностранные компании работать где 6-8 к баксов зарплата

    • @freedeveloper7638
      @freedeveloper7638 Před rokem +1

      @@MobileDeveloper ну я бы несказал что это собес на 250к ) В США это на 1к бачей максимум знаний )

    • @MobileDeveloper
      @MobileDeveloper  Před rokem +1

      В России большой дефицит кадров, да и в целом это норм зарплата для миддла сейчас
      В сша другая структура собеседований, поэтому имхо некорректно сравнивать )

    • @freedeveloper7638
      @freedeveloper7638 Před rokem +1

      @@MobileDeveloper В России в целом они скоро ненужны вообще будут, так как из за спецопераций правительсво убило и утопило все ((

  • @DenisDenis-zq8mk
    @DenisDenis-zq8mk Před 2 lety

    Где учиться на iOS разработчика в 2022 году)?

  • @alexeykhomych1743
    @alexeykhomych1743 Před 2 lety +3

    - ну я бы использовал мввм с реактивщиной
    - а если без либ?
    - напилил бы свою реактивщину
    странное решение, учитывая момент, что на его место посадят джуна/мидла для фикса багов, где тот и умрет, ибо нет документации/опыта.

    • @alexeykhomych1743
      @alexeykhomych1743 Před 2 lety

      вообще после этого диалога подумал, что видео за 2018 год. а не. свежак. какой там юайсвифт, зачем он нужен, втулю реактивщину, от которой либо плюются, либо суют ее куда только могут.

    • @alexeykhomych1743
      @alexeykhomych1743 Před 2 lety

      - а что по DI?
      - ну, свинжект
      - а если без либ?
      - напилил бы свой свинжект
      мне кажется, что интервьюверу хотелось услышать альтернативные методы реализации, как и в случае с реактивщиной.

    • @alexeykhomych1743
      @alexeykhomych1743 Před 2 lety

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

    • @MobileDeveloper
      @MobileDeveloper  Před 2 lety +2

      Ну в целом да, я скорее задавал вопросы на альтернативы, потому что часто очень все решается библиотеками без захода внутрь, а интересен как раз этот момент
      Ноо я довольно много в своей жизни провёл собеседований по iOS и могу сказать что это везде так практически) ну то есть редко встречаю людей, которые прям глубоко копают. И идея была показать систем дизайн интервью, то есть вот как человек объяснит как бы он построил систему. Понятно что перед этими блоками как правило идут другие блоки, которые могут как раз проверять на глубину, но тут видео одно, поэтому так )

    • @vitkuzmenko
      @vitkuzmenko Před 2 lety +3

      Привет! Вставлю свои 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 Před 2 lety +5

    странно, что человек писал 4 года на MVC и у него даже не возникло ощущения, что есть проблемы

    • @MobileDeveloper
      @MobileDeveloper  Před 2 lety +3

      Имхо, на iOS это очень частая история

    • @pedrosedro
      @pedrosedro Před 2 lety +7

      Ну вообще говоря, самой проблемы в MVC нет, есть проблемы в криворуких разрабах. Если правильно декомпозировать, то все ок и тестируемо

  • @user-gl9cm4qc1e
    @user-gl9cm4qc1e Před rokem +2

    В 2021 году писать юай на xib? Ужас

    • @KryptLynx
      @KryptLynx Před 8 měsíci +2

      Продолжаю писать UI на Xib в 2023 (to clarify: я не чувак из видео)
      "вы просто не умеете его готовить".
      В SwiftUI только появилась поддержка навигации (WAT?), а написание UI из кода - для особых мазохистов

  • @muhamedalli7685
    @muhamedalli7685 Před 2 lety +2

    вопросы для джунов, виталий учи английский

  • @antonk2745
    @antonk2745 Před 2 lety

    простите Виталий но вы не senior) удачи!