КАК Я ПРОХОДИЛ GOLANG СОБЕСЕДОВАНИЕ

Поділитися
Вставка
  • Опубліковано 4 жов 2024
  • Я бекенд разработчик на Golang. Это запись собеседования в большую IT-компанию Lamoda. Голоса участников собеседования изменены.
    Бусти с записями собесов и сообществом boosty.to/nilchanpub
    Телеграм канал о жизни и работе в Авито t.me/nilchanpub
    Мой телеграм для связи t.me/leonidsocial
    00:00:00 - Вступление
    00:00:35 - Начало собеседования
    00:00:40 - Описание формата собеседования
    00:01:23 - Расскажи про предыдущие проекты
    00:05:03 - За счёт чего обеспечивается отказоустойчивость Кафки?
    00:05:40 - Какие гарантии доставки предоставляет Кафка?
    00:06:20 - Что подразумевает под собой гарантия доставки "at most once"?
    00:06:42 - Что подразумевает под собой гарантия доставки "at least once"?
    00:06:54 - Что делать, если у нас "at least once", но при этом бизнес-логика чувствительна к дубликатам запросов?
    00:07:58 - Какие плюсы и минусы микросервисной архитектуры?
    00:09:12 - Расскажи что знаешь про распределённые транзакции
    00:10:17 - Как решается проблема дубликатов входящих запросов?
    00:12:15 - Лайвкодинг: первая задача
    00:12:19 - Что выведет программа?
    00:13:48 - Как устроен слайс?
    00:14:05 - Как работает append?
    00:14:41 - Какая временная сложность доступа к элементам слайса?
    00:14:55 - Какая временная сложность добавления элемента в конец слайса?
    00:15:33 - Как бы ты исправил представленную программу, чтобы foo() не влияла на arr?
    00:16:00 - Кривой вопрос про то можно ли предвыделить память при помощи make()
    00:19:54 - Лайвкодинг: вторая задача
    00:19:56 - Что выведет программа?
    00:20:43 - Что бы ты улучшил в представленной программе?
    00:21:38 - Почему wg.Add(1) нельзя делать прямо в начале ожидаемой горутины?
    00:22:49 - В какой последовательности в представленной программе отработают запущенные горутины?
    00:23:02 - Какие проблемы могут быть, если в представленной программе в urls будет 100k урлов?
    00:23:50 - Как можно обойти эти проблемы?
    00:24:36 - Расскажи про планировщик
    00:26:00 - Что такое горутина?
    00:27:56 - В какой момент происходит переключение горутин?
    00:28:50 - Какой-то странный вопрос про поведение планировщика при сетевых запросах
    00:29:41 - Что такое надполяр?
    00:29:50 - Что происходит с горутиной, когда она блокируется на чтении файла?
    00:30:15 - Какие отличия между сетевым запросом и чтением из файла с точки зрения планировщика?
    00:31:28 - Исправь представленную программу, чтобы как только какая-нибудь горутина ответила с ошибкой, то программа завершилась
    00:35:42 - Что такое context?
    00:36:27 - Какие контексты бывают?
    00:36:39 - Для чего используется context.WithValue?
    00:37:43 - Лайвкодинг: третья задача
    00:37:36 - Что выведет программа?
    00:39:03 - Как обнаружить гонку?
    00:39:21 - Что будет, если в программе мы будем читать по ключу "a", а писать по ключу "b"?
    00:39:48 - Как избежать гонки в представленной программе?
    00:40:51 - Чем отличаются Mutex и RWMutex?
    00:42:18 - Почему ты предпочитаешь использовать map+RWMutex, а не sync.Map?
    00:43:37 - Какие примитивы синхронизации ты знаешь?
    00:44:43 - Какие ключи можно использовать для мапы?
    00:45:44 - Как устроена мапа?
    00:46:34 - Лайвкодинг: четвёртая задача
    00:46:38 - Что выведет программа?
    00:48:18 - Как поправить представленную программу?
    00:50:01 - Лайвкодинг: пятая задача
    00:51:09 - Начинаю писать решение
    00:55:05 - Лайвкодинг: шестая задача
    00:55:06 - Что выведет программа?
    00:56:02 - Как поправить программу?
    00:56:43 - Для чего используются интерфейсы? Что можешь сказать про dependency injection?
    00:59:30 - Сталкивался ли с чистой/гексогональной архитектурой?
    00:59:40 - Расскажи про многослойную архитектуру
    01:00:52 - Что такое интерфейс any?
    01:01:23 - Как работать с any?
    01:03:12 - Базы данных: первая задача
    01:07:15 - Индексы в базах данных
    01:10:57 - Базы данных: вторая задача
    01:17:13 - Базы данных: третья задача
    01:17:44 - Составные индексы
    01:23:34 - Базы данных: четвёртая задача (жоска туплю, транзакции + блокировки и прочие радости)
    01:45:07 - Заключение, разговор по душам

КОМЕНТАРІ • 42

  • @Sasijoopute
    @Sasijoopute 19 днів тому

    Ооо вау спасибо большое, продолжай в том же духе

  • @лешавасильев-щ4д
    @лешавасильев-щ4д 19 днів тому +70

    А вы пробовали тренироваться рассказывать свое резюме на собеседовании с другом? я так с куратором в Skypro делал, он завалил меня раз пять, перед тем как взять на вымышленную работу вхахах

    • @nilchanpub
      @nilchanpub  18 днів тому

      мне кажется важнее уметь составлять резюме, чем его рассказывать

    • @poxuyvashe
      @poxuyvashe 15 днів тому

      @@nilchanpubбро это боты которые рекламят курсы

    • @DJcRuT000
      @DJcRuT000 14 днів тому

      @@nilchanpub ты на накрученные комменты отвечаешь

  • @D_eaD_inside
    @D_eaD_inside 3 дні тому

    Подозреваю, что на 7:05 он ожидал услышать про exactly once и exactly once ordered🥲

    • @nilchanpub
      @nilchanpub  3 дні тому

      Возможно) Я такие умные слова только на собеседованиях слышу xD
      На практике нужно будто что-то довольно специфичное программировать, какими-то денежными операциями заниматься, чтобы применять все эти exactly once ordered fucking slaves.

  • @АндрейРумянцев-р8ь
    @АндрейРумянцев-р8ь 18 днів тому +5

    Полехче с картинками, хотя бы раз в 3 секунды

    • @nilchanpub
      @nilchanpub  18 днів тому +3

      Это контент для зумеров xD

  • @nilchanpub
    @nilchanpub  19 днів тому

    кликабельные ссылки
    Бусти с записями собесов и сообществом boosty.to/nilchanpub
    Телеграм канал о жизни и работе в Авито t.me/nilchanpub
    Мой телеграм для связи t.me/leonidsocial

  • @ДанилХомяков-ч2ф
    @ДанилХомяков-ч2ф 15 днів тому

    а все ответы на теор вопросы были из памяти или где-то можно поднатоскаться ?)

    • @nilchanpub
      @nilchanpub  15 днів тому

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

  • @fenderbender2096
    @fenderbender2096 14 днів тому

    Секцию с кодом невозможно смотреть с телефона даже в хорошем качестве и с полноэкранным режимом. Слишком мелко.

    • @nilchanpub
      @nilchanpub  14 днів тому

      В 1080р в приложении ютуба я спокойно увеличиваю изображение во время просмотра, как картинку в галерее, и всё видно.
      Предлагаю так же попробовать сделать.

    • @КириллКудрявцев-у6ч
      @КириллКудрявцев-у6ч 7 днів тому

      ​@@nilchanpubбрат, ютуб замедляют, роскош в виде 1080 не доступна некоторым

  • @VITEK467
    @VITEK467 18 днів тому +1

    А офер то кинули ?

    • @nilchanpub
      @nilchanpub  18 днів тому +1

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

    • @VITEK467
      @VITEK467 18 днів тому +1

      ​@nilchanpub - красавчик, очень уверенно отвечал. Молодец. Спасибо тебе большое, что в открытый доступ выложил

    • @nilchanpub
      @nilchanpub  17 днів тому +1

      ​@@VITEK467 спасибо! Рад что кому-то было полезно

    • @PurpleDaemon_
      @PurpleDaemon_ 16 днів тому +1

      @@VITEK467 уверенно ответил за очереди без понимания гарантии доставки ("девопсы разберутся"), за микросервисы без понимания того, что делать в случае падения сквозного запроса (это получается работа для инженеров по надежности), и за базы данных без знания работы индексов (тут наверно разберутся инженеры бд). А парень просто код будет строчить.

    • @nilchanpub
      @nilchanpub  16 днів тому +1

      @@PurpleDaemon_ я разве где-то говорил фразы вроде "кафку + паттерны + индексы знать не надо, другие люди разберутся"?) Я такого не припомню. Я не идеален, и чего-то могу не знать. Видео позиционируется не как идеально пройденное собеседование, а как интересное собеседование с большим количеством поднятых тем и вопросов. Но, не смотря на не знание каких-то вещей, меня позвали на финалку после этого собеседования. Может я был не так плох?

  • @VladaNymph
    @VladaNymph 18 днів тому

    А на какой уровень интервью это было?

    • @nilchanpub
      @nilchanpub  18 днів тому +1

      Заранее не оговаривается конкретный уровень, но, учитывая резюме, предполагается что собеседуемый должень быть уровня от крепкого джуна до сеньёра. Финальный грейд уже определяется по количеству и качеству правильных ответов.
      Так же до основной части технического собеседования (представленной в этом видео) проводился созвон с HR и скрининг (собес на пол часа с общими повросами по computer science). Они тоже могут влиять на итоговый уровень в оффере.
      Запись созвона с HR и скрининга тоже есть - лежат на бусти

  • @freeworduser
    @freeworduser 10 днів тому

    привет, ты на собесе камеру включал ?

    • @nilchanpub
      @nilchanpub  10 днів тому

      Привет, да. Но там было не только моё лицо, поэтому я синюю заставку в такие моменты ставил чтобы никого не обидеть

    • @freeworduser
      @freeworduser 10 днів тому

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

    • @nilchanpub
      @nilchanpub  10 днів тому

      @@freeworduser бро я как раз на своём бусти начал цикл контента по вкатке в Golang разработку без опыта. Там я придумываю легенду о своём опыте + делаю на её основе резюме + хожу с этим резюме по собесам. Мы с ребятами там обсуждаем прохождение собесов и накрутку опыта
      Либо можешь подождать тут на ютубе я планирую сделать поверхностный роад-мап как и что делать чтобы начать работать без опыта.
      Небольшой спойлер: без вранья в резюме никак. Всем нужен коммерческий опыт от тебя. Как его придумать, как его оформить, как его рассказать я показываю на бусти.
      Сорри за такую агитацию на платную подписку, просто это всё требует немалого времени плюс хочется эксклюзивно какой-то полезный контент делать для ребят которые меня поддерживают

    • @freeworduser
      @freeworduser 10 днів тому

      @@nilchanpub я бы просто хотел спросить совет , значит, надо за проекты говорить, что они коммерческие ?

    • @nilchanpub
      @nilchanpub  10 днів тому

      @@freeworduser смотря что у тебя за компания, на какую позицию идёшь. Но даже если это самый начальный стажёр то всё-равно советую указать твои пет-проекты как коммерческий опыт. В минус тебе точно не пойдёт, а так хоть можешь сказать что вот на фрилансе сделал такой то проект, все остались довольны и тд. Но если ты идёшь на миддла например то уже всё не так просто, и нужно более детально и глубоко продумывать легенду и опыт

  • @proo0xy
    @proo0xy 18 днів тому

    почему у интервьюера голос 12 летнего школьника? 😂

    • @nilchanpub
      @nilchanpub  18 днів тому

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

  • @xRaYm8nDx
    @xRaYm8nDx 8 днів тому

    душные какие-то ребята