Mock-собеседование по Go от Team Lead Ozon
Вставка
- Опубліковано 25 чер 2024
- Потренироваться проходить собеседования: clck.ru/3ASssc
Курсы по программированию: clck.ru/3ASt6y
Mock-собеседование от Team Lead из Ozon секции по языку Golang на платформе it-interview.io. Потренируйтесь и вы проходить собеседования с разработчиками из ведущих компаний и получите подробный отзыв о том, на какую зарплату и грейд вы можете расчитывать, или над чем вам еще стоит поработать!
Telegram канал Леонида: t.me/leoscode
Таймкоды:
0:00 - Знакомство
01:13 - Что такое slice и как он устроен
02:30 - Какой capacity у не иницициализированного slice
03:30 - Что выведет программа (слайды). Копирование слайсов
06:26 - Что такое map в go? Чтение и запись в map
10:00 - Интерфейсы в Go
14:45 - Пустые интерфейсы в Go
16:45 - Что такое ошибка в Go?
19:18 - Что такое defer?
23:05 - Что такое gorutine, в чем отличие от потоков? Сколько можно создать горутин? Сколько одновременно может исполняться?
26:30 - Что выведет программа? (Concurrent доступ в map)
28:12 - Задача merge N каналов в 1
[[ Отзыв о кандидате ]]
За время собеседования задали типичные теоретические вопросы по языку Go, а также решили задачу “ merge N каналов в 1”. Кандидат отлично знает внутреннее устройство типов в Go (slice, map) и понимает как ведете себя программа (может объяснить что выведет программа и почему), понимает устройство планировщика go. Есть небольшие пробелы по деталям и ограничениям в Go по максимальному количеству goroutine и количеству параллельных горутин. В задаче merge каналов необходимо было применить знания по работе с каналами, примитивами синхронизации WaitGroup и конструкции select. Потребовалась небольшая подсказка с WaitGroup. В целом задача была решена верно. По общению приятный, было комфортно общаться с кандидатом.
Рекомендации для кандидата: я бы посоветовал уделить большее внимание примитивом синхронизации и concurrency в Go. Научиться быстро реализовывать популярные concurrency паттерны: WorkerPool, Pipeline, Broadcast. Также советую больше решать задачек на Go, чтобы повысить скорость написания кода.
#собеседование #mockсобеседование
Код раньше контекста диалога появляется)
Желаю развития каналу и побольше подобных интервью и интересных задачек.
Люблю Гошку и смотреть познавательные ролики связанные с разработкой.
Красава, приятно слушать
там где идет преобразования одного интерфейса к другому, они говорят что не получиться, хотя это не так
там где идет печать в дефере тоже оба говорят не правильно
Да, полная чушь. Странно, что тим лид из озон этого не знает. А еще курсы продают(
@@alexandrk5715 а что по-вашему в озоне работают разработчики уровня "бог"?😮
Точно такие же разрабы, как и в других компаниях. Давно пора уже перестать обожествлять бигтех-компании
Да, 21:18 выведется 456. Мы ведь по замыканию обращаемся к переменной. А значит по указателю. А что по поводу преобразования? Можешь подробней описать?
@@MrLotrus там где даа интерфейса AB BC. Мы создали переменную с АБ и дальше ее можно заасертить в БЦ, а они говорят что это не сработает из-за области видимости, хотя я не понял к чему там область видимости
Таки, что-то слабовато
По задаче. Создавать горутину и сразу в ней еще одну, конечно можно, но выглядит грязно. Можно было спокойно вынести вейтгруппу на верх и запустить отдельную горутину под ожидание и закрытие канала.
27:00 Воспроизвел в go playground. Выполнилось без паник что конкуретно пишем в мапу.
Чтобы получить панику и ошибку fatal error: concurrent map read and map write надо запустить две горутины и прям долбить запись и чтение например. Тогда действительно в определенный момент запаникует. Но уже в рантайме.
Ребят, потренируйте дикцию. Иногда сложно понять что говорите