Mock-собеседование по Go от Team Lead Ozon

preview_player
Показать описание


Таймкоды:
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, чтобы повысить скорость написания кода.

Golang. Golang concurrency. Golang. Golang уроки. Golang с нуля. Golang собеседование. Go язык программирования.

#собеседование #mockсобеседование
Рекомендации по теме
Комментарии
Автор

Код раньше контекста диалога появляется)

Арт-сг
Автор

Желаю развития каналу и побольше подобных интервью и интересных задачек.

ДенДенев-вл
Автор

Люблю Гошку и смотреть познавательные ролики связанные с разработкой.

ДенДенев-вл
Автор

Отличный собес, задачки интересные, спасибо!

alivewel
Автор

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

там где идет печать в дефере тоже оба говорят не правильно

kolya
Автор

Смотреть такое очень плохо. Не понятно кто что пишет и когда. Рассинхрон текста и слов это очень плохо для восприятия

PragmaticPragmatist
Автор

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

VMd
Автор

Мб я что-то не понял, но где паника у мапы? И почему она будет если записать по несуществующему ключу? Мапа как раз отличается от массива тем, что всегда есть индекс по ключу, кроме случая nil, но тогда она расширяется автоматически под капотом

sirMishka
Автор

Задачка конечно по мультиплексированию простенькая, не задал он вопроса сразу про то будут ли закрыты каналы, а если пришли не закрытые то можно проверить по ok закрыты ли. И сразу wait group приходит на ум, конечно, бесконечный цикл это сильно в каналах использовать. Удивительно что с таким уровнем вообще на работу его взяли. Поплыл чел

wonderworld
Автор

27:00 Воспроизвел в go playground. Выполнилось без паник что конкуретно пишем в мапу.

MrLotrus
Автор

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

АлексейКиреев-нн
Автор

Дада 2 года коммерческой разработки, сказочник!

ЗябликЖмышенко
Автор

Ребят, потренируйте дикцию. Иногда сложно понять что говорите

MrLotrus