Mock-собеседование по Go (Junior) от Team Lead из Ozon
Вставка
- Опубліковано 16 чер 2024
- Потренироваться проходить собеседования: clck.ru/3ASssc
Курсы по программированию: clck.ru/3ASt6y
Mock-собеседование от Team Lead из Ozon секции по языку Golang на платформе it-interview.io. Потренируйтесь и вы проходить собеседования с разработчиками из ведущих компаний и получите подробный отзыв о том, на какую зарплату и грейд вы можете расчитывать, или над чем вам еще стоит поработать!
Telegram канал Олега: t.me/oo_ilin
UA-cam канал Олега: / @oo_ilin
Таймкоды:
00:00 Знакомство
00:38 Задача про строки
06:51 Slices и массивы: append структур
17:47 Slices и массивы: дефолтные значения
20:27 Slices и массивы: изменение размера
23:07 Обсуждаем map
27:17 Обсуждаем интерфейсы
34:39 Обсуждаем defer
40:46 Пример с замыканием
46:26 Конкурентность: базовые понятия
56:19 Конкурентность: задача SafeCounter
1:00:53 Конкурентность: задача mergeChan
1:08:46 Обратная связь
[[ Отзыв о кандидате ]]
Рекомендовать этого человека на следующий этап? ДА
Каковы были его технические навыки? 4/5
Каковы были его способности решать проблемы? 5/5
Каковы были его коммуникативные способности? 5/5
Дмитрий во время собеседования показал себя хорошо. С учетом того что он имеет всего несколько месяцев опыта считаю его знания солидными. Понимает все основные концепции и инструкции языка go. В местах где не был уверен в ответе делал предположения и рассуждал, что показывает его способность анализировать и принимать решения. Также видно, что он знаком с некоторыми best practies. В общении приятен и содержателен. Считаю, что уровню джуниор в golang он соответствует.
Первые вопросы про строки
Основы работы со строками понимает. Знает как устроенны внутри. Необходимо более подробно изучить основы Unicode и ASCII
Slices и массивы
По слайсам и массивам уверенные знания внутреннего устройства. Способен понять как будет работать программа не прибегая к компиляции. Четко понимает какой будет результат при разных сценариях работы с данными типами. Рекомендую, если будет углубляться в оптимизации, посмотреть работу функции append и работу с памятью.
Maps и интерфейсы
Работу с map понимает хорошо, понимает что может быть ключами. Видно что имеется предствыление о best practies по оптимизации памяти. По интерфейсам видно что есть знания необходимые для повседневной работы, но хочется что бы Дмитрий больше изучил устройство и приведение типов касательно интерфейсов.
Конкурентность
У Дмитрия имеются базовое понимание что такое конкурентность и с помощью каких инструментов она реализуется. Но знания поверхностные, стоит больше уделить внимания основам. С задачами справился хорошо. Сразу же начал придумывать решение, не было недопониманий. Грамотно организовал работу с каналами и горутинами полностью аргументирую свои действия.
Рекомендации для кандидата:
Так как Дмитрий джуниор, то могу отметить что для его уровня он обладает хорошим фундаментом по go. Четко и понятно формулирует свои мысли. Так же видно что интересуется и применяет на практике best practies. Рекомендую изучать не только тонкости языка, но и основы computer science, это позволит вырасти Диме еще больше как инженеру.
#собеседование #mockсобеседование #golang #go
Пожалуйста отправьте мой заказ с озона, уже месяц жду... Он даже со склада не вышел
Николай II на собеседовании, вот чудеса!
Работал с Олегом, многому меня научил, буду всегда благодарен ему =)
О, какие люди ) Привет !!!
Спасибо большое, интересное собеседование и хорошего уровня кандидат))
Полезное видео, спасибо большое!
Спасибо Вам большое!
И Вам спасибо 🤗
и кандидат и задачи кайф, коммент для продвижения !)
Хороший собес, лайк!
Дима хорош. Даже в тех вопросах, которые не знал наверняка, не тушевался, думал, анализировал. И то что он размышлял над задачей вслух очень положительно сказалось на смотрибельность самого интервью.
В последней задаче есть классическая ошибка новичков - ренж по слайсам идёт по индексу, элементу. Если указать только одну переменную она будет содержать индекс.
"В последней задаче есть классическая ошибка новичков - ренж по слайсам идёт по индексу, элементу. " - это вообще не критично. Из пальца высосано.
IDE подсветит и со временем запомнит.
@@Kondratyevv "Из пальца высосано." - заведомо грубая фраза, которую используют когда собеседник делает ложные выводы, основанные на неверных данных или не обоснованные вовсе. Какое именно моё утверждение является ложным?
В данном случае идешка действительно подсветит, но если гофер будет ранжироваться по интам, то неизвестно в какой момент он неприятно удивится.
в вопросе с дефером где 123 и 456 вообще то в исходном задании выводится 456 а не 123
В задаче про мердж каналов мы возвращаем закрытый канал. Что нам потом делать с закрытыми каналом? На 7 строчке мы всегда будем виснуть, потому что из этого канала никто не читает.
Примерно код должен выглядеть так;
out := make(chan int)
defer close(out)
go func() {
// Код записи из всех каналов в out
}
return out
Ozon набор на route256: решите 8 около олимпиадных задач, чтоб попасть к нам на обучение
Собес на джуна: что значит неизменяемый тип данных....
Чувак пол собеса палил ответы с экрана🤣 Топ🤘
1:00:30 на 14 строке, defer же выполняется перед return, сработает блокировка, затем разблокировка, и только потом в return обращение к мапе. Получается, что нужно было делать через промежуточную переменную?
если бы defer выполнялся до return, то в go не было бы возможности в defer переопределять результаты возврата, как например тут:
func foo() (result string) {
defer func() {
result = "Change World" // change value at the very last moment
}()
return "Hello World"
}
мб я путаю, но в задании со строками при range гошка сама же в руны преобразовывает, а чтобы идти по байтам надо Итовый форик, и тащить по индексу?
Ты прав, бро
1:06:44
Интервюер мямлит, вебки закрывают код
Чувак вообще не понимает основы программирования и компьютер сайнс, какой ему junior ему бы ещё годик поучиться