КАК Я ПРОХОДИЛ 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 - Заключение, разговор по душам
Ооо вау спасибо большое, продолжай в том же духе
А вы пробовали тренироваться рассказывать свое резюме на собеседовании с другом? я так с куратором в Skypro делал, он завалил меня раз пять, перед тем как взять на вымышленную работу вхахах
мне кажется важнее уметь составлять резюме, чем его рассказывать
@@nilchanpubбро это боты которые рекламят курсы
@@nilchanpub ты на накрученные комменты отвечаешь
Подозреваю, что на 7:05 он ожидал услышать про exactly once и exactly once ordered🥲
Возможно) Я такие умные слова только на собеседованиях слышу xD
На практике нужно будто что-то довольно специфичное программировать, какими-то денежными операциями заниматься, чтобы применять все эти exactly once ordered fucking slaves.
Полехче с картинками, хотя бы раз в 3 секунды
Это контент для зумеров xD
кликабельные ссылки
Бусти с записями собесов и сообществом boosty.to/nilchanpub
Телеграм канал о жизни и работе в Авито t.me/nilchanpub
Мой телеграм для связи t.me/leonidsocial
а все ответы на теор вопросы были из памяти или где-то можно поднатоскаться ?)
Ответы были из памяти, шпаргалок каких-то не было, но поднатаскаться для этого можно. Для таких же как я, кто хочет знать что на собесах происходит + получить опыт + наперёд знать какие вопросы будут в той или иной компании - есть мой бусти с записями собесов и обсуждением пройденных этапов в разные компании
Секцию с кодом невозможно смотреть с телефона даже в хорошем качестве и с полноэкранным режимом. Слишком мелко.
В 1080р в приложении ютуба я спокойно увеличиваю изображение во время просмотра, как картинку в галерее, и всё видно.
Предлагаю так же попробовать сделать.
@@nilchanpubбрат, ютуб замедляют, роскош в виде 1080 не доступна некоторым
А офер то кинули ?
Этот собес пройден успешно, после него меня позвали на финалку, чтобы как раз обсудить условия работы и сумму в оффере. Но так как я прохожу собесы для контента на бусти, и менять текущее место работы пока не планирую, то с этой самой финалки в Ламоду я благополучно слился)
@nilchanpub - красавчик, очень уверенно отвечал. Молодец. Спасибо тебе большое, что в открытый доступ выложил
@@VITEK467 спасибо! Рад что кому-то было полезно
@@VITEK467 уверенно ответил за очереди без понимания гарантии доставки ("девопсы разберутся"), за микросервисы без понимания того, что делать в случае падения сквозного запроса (это получается работа для инженеров по надежности), и за базы данных без знания работы индексов (тут наверно разберутся инженеры бд). А парень просто код будет строчить.
@@PurpleDaemon_ я разве где-то говорил фразы вроде "кафку + паттерны + индексы знать не надо, другие люди разберутся"?) Я такого не припомню. Я не идеален, и чего-то могу не знать. Видео позиционируется не как идеально пройденное собеседование, а как интересное собеседование с большим количеством поднятых тем и вопросов. Но, не смотря на не знание каких-то вещей, меня позвали на финалку после этого собеседования. Может я был не так плох?
А на какой уровень интервью это было?
Заранее не оговаривается конкретный уровень, но, учитывая резюме, предполагается что собеседуемый должень быть уровня от крепкого джуна до сеньёра. Финальный грейд уже определяется по количеству и качеству правильных ответов.
Так же до основной части технического собеседования (представленной в этом видео) проводился созвон с HR и скрининг (собес на пол часа с общими повросами по computer science). Они тоже могут влиять на итоговый уровень в оффере.
Запись созвона с HR и скрининга тоже есть - лежат на бусти
привет, ты на собесе камеру включал ?
Привет, да. Но там было не только моё лицо, поэтому я синюю заставку в такие моменты ставил чтобы никого не обидеть
@@nilchanpub помоги пжлст, у меня спрашивают , разрабатывал ли ты коммерчиские проекты , что ответить ? у меня есть свои проекты, которые сделанные как высоко нагруженная система, можно ли их выдать за коммерческий опыт ?
@@freeworduser бро я как раз на своём бусти начал цикл контента по вкатке в Golang разработку без опыта. Там я придумываю легенду о своём опыте + делаю на её основе резюме + хожу с этим резюме по собесам. Мы с ребятами там обсуждаем прохождение собесов и накрутку опыта
Либо можешь подождать тут на ютубе я планирую сделать поверхностный роад-мап как и что делать чтобы начать работать без опыта.
Небольшой спойлер: без вранья в резюме никак. Всем нужен коммерческий опыт от тебя. Как его придумать, как его оформить, как его рассказать я показываю на бусти.
Сорри за такую агитацию на платную подписку, просто это всё требует немалого времени плюс хочется эксклюзивно какой-то полезный контент делать для ребят которые меня поддерживают
@@nilchanpub я бы просто хотел спросить совет , значит, надо за проекты говорить, что они коммерческие ?
@@freeworduser смотря что у тебя за компания, на какую позицию идёшь. Но даже если это самый начальный стажёр то всё-равно советую указать твои пет-проекты как коммерческий опыт. В минус тебе точно не пойдёт, а так хоть можешь сказать что вот на фрилансе сделал такой то проект, все остались довольны и тд. Но если ты идёшь на миддла например то уже всё не так просто, и нужно более детально и глубоко продумывать легенду и опыт
почему у интервьюера голос 12 летнего школьника? 😂
я изменил голоса собеседующих, чтобы никого не обидеть) но как следствие мой голос тоже изменился
душные какие-то ребята
да это ещё нормальные) бывает гораздо хуже
та ну ладно) вообще милахи