Mock-собеседование по Go от Старшего разработчика из Авито

  Рет қаралды 16,252

it-interview

it-interview

Күн бұрын

Пікірлер: 92
@Barrrash
@Barrrash 9 ай бұрын
Отлично для интервью на 50 минут! + Сразу дал расклад, что будет на интервью. + Дружелюбно. + Заинтересовал кандидата, пояснил особенности решения и поведения среды + Запросил фидбэк + Дал фидбэк - Не выделил время для вопросов от кандидата. *Если расширить интервью на 10-15 минут, то можно ещё по софт-скилам пройти. Заметно лучше, чем первое интервью на канале (см. коммент там).
@olezhek28go
@olezhek28go 9 ай бұрын
Я привык, что для софтов отдельная секция собеса есть, чтоб основательно поговорить об этом:) а так, спасибо за фидбек)
@calculaction
@calculaction 8 ай бұрын
Полезно! Жду ещё! пс: на опечатки время я бы не тратил и на кучу лишних слов о кружках и к!отиках (имхо)^^
@murad_shafii
@murad_shafii 8 ай бұрын
поддерживаю
@arturdumchev3055
@arturdumchev3055 3 ай бұрын
Вообще все равно до опечаток, никто не пишет код в блокноте
@mchekalov
@mchekalov 9 ай бұрын
Шемистан крут, мне до такого уровня пока рости.
@АлекСневар
@АлекСневар 2 ай бұрын
Да, пока по русскому лучше запотей.
@olezhek28go
@olezhek28go 9 ай бұрын
Вай, какой красавчик в кепке😂
@chesscat553
@chesscat553 9 ай бұрын
Марти Макфлай из 1985 года.
@АлександрВасильев-в1е
@АлександрВасильев-в1е 8 ай бұрын
А какой у него кот)
@olezhek28go
@olezhek28go 8 ай бұрын
@@АлександрВасильев-в1е дааа)
@АлександрЛобов-ю6ж
@АлександрЛобов-ю6ж 9 ай бұрын
рассуждал так же в первой задаче, когда убрали третий аргумент из make, но оказалось, что это не работает при именно 5 элементах, потому что он создаётся с capacity=6. Если их 4 или 6, то capacity будет 4 и 6 соответственно. Если их 7, то cap=8, 14-14, 15-16
@Dmitry-ug1zq
@Dmitry-ug1zq 8 ай бұрын
Не все так просто, если бы было 3 элемента при добавлении, то тогда бы так и сработало, cap/len были бы по 3)
@АлександрВасильев-в1е
@АлександрВасильев-в1е 8 ай бұрын
Олег, выздоравливай!
@olezhek28go
@olezhek28go 8 ай бұрын
спасибо)
@millerov
@millerov 9 ай бұрын
Если я не ошибаюсь, в последней задаче, при выходе из функции по таймауту, горутина останется висеть и ждать завершения запроса, тратить ресурсы:) Я бы просто повесил тайм-аут на реквест без каналов и кейсов. Было бы и проще и правильнее
@pav5000
@pav5000 9 ай бұрын
Это в реальном мире, но по условию задачи было запрещено что-то менять в функции, которая запрос выполняет.
@olezhek28go
@olezhek28go 9 ай бұрын
справедливое замечание) Однако, есть пару нюансов. 1- мы не контролируем вызываемую сторону и не факт, что таймаут будет там обработан. 2 - в такой шустрый формат интервью сложно уложить продумывание всего) В целом можно в комментах поразмышлять как ещё можно докрутить код)
@Евгений-н6р8х
@Евгений-н6р8х 7 ай бұрын
@@pav5000 Странное условие, как по мне. http запрос всегда можем сделать с таймаутом или контекстом. Если прям нужно подобное решение, то пример следует подобрать по удачнее.
@yami_curr
@yami_curr 5 ай бұрын
12:20 я так и не понял, как у вас а2 и а3 тут получаются разными. Я проверил сам и а2 и а3 должны выходят одинаковыми с cap = 6
@lifepainqa308
@lifepainqa308 15 күн бұрын
Согласен , кто то тут врет :D
@АлександрЛобов-ю6ж
@АлександрЛобов-ю6ж 7 ай бұрын
так сосредоточились на очепятках, что забыли вызвать анонимную горутину в конце)
@olezhek28go
@olezhek28go 4 ай бұрын
даа, есть такое)
@KonstantinIppolitov
@KonstantinIppolitov 26 күн бұрын
Здравствуйте, Олег. У меня в конце недели собеседование в Avito. Я изначально писал на PHP и мне сказали, что задачи на собеседовании будут по PHP, хотя я проходил курсы по Golang на Coursera и в Вашу компанию подавался на Golang разработчика. Вот теперь думаю к чему готовиться.
@АлександрЛобов-ю6ж
@АлександрЛобов-ю6ж 9 ай бұрын
для третьей задачи теперь нужно всегда спрашивать, какая версия go :)
@nonesnonoperos9504
@nonesnonoperos9504 8 ай бұрын
Да, для 1.22 есть нюансики как говорится)
@olezhek28go
@olezhek28go 4 ай бұрын
всё верно)
@JIexaPol
@JIexaPol 9 ай бұрын
В последней задаче при срабатывании ctx.Done мы получаем утечку горутин, так как после этого запись в канал ch заблокирует горутину на 91 строчке. Разве нет? Горутина, которая захочет записать результат в канал ch, уже не сможет этого сделать, если основная функция уже прочитала ctx.Done и завершилась и больше не читает ch.
@olezhek28go
@olezhek28go 9 ай бұрын
Речь идёт о ситуации, когда отмена контекста происходит одновременно с записью в канал?)
@JIexaPol
@JIexaPol 9 ай бұрын
@@olezhek28go нет, я про ситуацию, когда getDiscountWithContext завершился, поймав закрытие канала ctx.Done, и больше никто не читает канал ch, а горутина, вызвавшая getDiscount позже попытается записать туда значение.
@JIexaPol
@JIexaPol 9 ай бұрын
@@olezhek28go нет, я про то, что функция, которая пишет в канал ch, может никогда не завершится, если мы отвалились по таймауту. Ведь читателя у канала не будет, когда придет результат от getDiscount()
@АнтроповАлексей-ы7г
@АнтроповАлексей-ы7г 9 ай бұрын
@@olezhek28go тут скорее про то, что в случае таймаута мы в select попадаем в блок с ctx.Done(), возвращаем результат и из канала ch уже никто не читает, соответственно горутина с записью в такой канал будет вечно ждать, пока из канала кто-то прочитает (а уже никто не прочитает). если бы канал был с буфером, таких проблем бы можно было избежать)
@olezhek28go
@olezhek28go 9 ай бұрын
@@АнтроповАлексей-ы7г а понял) согласен) тут стоит ещё подумать о закрытии канала
@luckytima2315
@luckytima2315 9 ай бұрын
Братик ты как всегда выглядишь как булочка сладкая :p
@olezhek28go
@olezhek28go 8 ай бұрын
ахаха) пирожок)
@kafychannel
@kafychannel 9 ай бұрын
Great interview, thx !
@megauspexx
@megauspexx 9 ай бұрын
Запустите код из первой задачи, вторая часть решена неправильно
@artemkas4191
@artemkas4191 5 ай бұрын
В этом и весь прикол, слайсы в go настолько через задницу спроектированы, что заранее не знаешь, где может выстрелить, поведение у них абсолютно непредсказуемое
@КириллПоздоровкин-г9л
@КириллПоздоровкин-г9л 3 ай бұрын
@@artemkas4191надо просто в кишочках покопаться)
@Elijah-xe2he
@Elijah-xe2he 3 ай бұрын
Я не GOшник, но во 2 задаче кандидат упомянул, что под переменные для if/for выделяются отдельные области памяти и эта память живёт только в блоке if/for. Раз мы в second кладем ссылки на v и после цикла область памяти для v умрёт, откуда тогда в println возьмутся значения?
@notfust
@notfust 4 ай бұрын
Почему в задаче на замыкания при выводе будут обращаться к памяти b102? Что происходит с памятью, когда программа выходит из ее области видимости? Понятно, что сама физическая память никуда не исчезнет, и second как ссылалась, так и будет ссылаться на эту ячейку, пока новое значение не присвоят. Но разве нет такого, что если память была очищена, то в результате ссылаться будет не на что, она будет помечена, как нулевой указатель. Или она все-таки будет доставать мусор, который лежит по этому адресу?
@olezhek28go
@olezhek28go 4 ай бұрын
там просто эскейп анализ при выходе из функции производится и если он видит, что локальный указатель кому-то нужен, например, его возвращают из функции, то он его со стека в хип переложит и ничего не перетрется)
@rerurkful
@rerurkful 16 күн бұрын
Вот когда есть кот, тот всё понятно)
@evg1605
@evg1605 9 ай бұрын
в последней задаче - канал создать с емкостью 1 нужно - иначе горутинка утечет ))) понятно что если случай с main то все равно все завершиться, но все же... 88 строчка
@EvgeniiSuvorov
@EvgeniiSuvorov 8 ай бұрын
и как это прервет горутину?
@evg1605
@evg1605 8 ай бұрын
@@EvgeniiSuvorov не прервет, а гарантировано даст записать в канал и завершиться…
@Artem.Alalykin
@Artem.Alalykin 8 ай бұрын
Так, Олег... Кажется, у тебя был ранее канал несколько другой тематики. Мне ведь не кажется? :-)
@olezhek28go
@olezhek28go 8 ай бұрын
всё верно)
@shamistanaliyev5678
@shamistanaliyev5678 9 ай бұрын
Шамистаны в общем то крутые))
@olezhek28go
@olezhek28go 9 ай бұрын
😂однозначно
@shemistan11
@shemistan11 9 ай бұрын
Согласен😁
@shamistanaliyev5678
@shamistanaliyev5678 9 ай бұрын
@@olezhek28go ты мне как то в линкедыне писал, что твоего близкого друга зовут также как и меня, Шамистан Алиев, я сначала не поверил, но теперь я точно знаю, что это правда 😂😂
@olezhek28go
@olezhek28go 9 ай бұрын
@@shamistanaliyev5678 да, точно:)
@Lokidon
@Lokidon Ай бұрын
Когда компилятор в голове с ide, получается код с ошибками, мы же не роботы. 😢
@ТестБлаБла
@ТестБлаБла 9 ай бұрын
А разве горутина не продолжит висеть в последней задаче?
@JIexaPol
@JIexaPol 9 ай бұрын
продолжит
@ПётрОлегов-о6ы
@ПётрОлегов-о6ы 7 ай бұрын
Я б обернул select в for, потому что вместо долгого ответа получили ошибку отмены таймаута. Как была низкой стабильность метода, так и осталась.
@lauhG3
@lauhG3 6 ай бұрын
зачем? ты в селекте ждешь канал который быстрее сработает. Там нету смысла обрабатывать другой код в этот момент
@МихаилКовалышев
@МихаилКовалышев 7 ай бұрын
Вопрос к Авито. А что у вас за разработчики такие, что доказывают мне, что при передаче ссылки на структуру в метод, на новый стектрейс помимо передачи ссылки происходит еще и копирование на куче! Был у вас на собеседовании (N этапов) и на кодинге после такого не знал что ответить. А позиция у человека была далеко не старший =)
@erwererwrwr
@erwererwrwr 28 күн бұрын
из того, как вы сформулировали предложение, понять совсем ничего нельзя
@savvinovan
@savvinovan 9 ай бұрын
ох, я бы сам все это решил, они вообще нихрена не понимают
@olezhek28go
@olezhek28go 9 ай бұрын
😂сто пудов
@yushkinelizar1280
@yushkinelizar1280 9 ай бұрын
Невызванная горутина в ласт задаче *🫤*
@olezhek28go
@olezhek28go 9 ай бұрын
Эх, ускользнуло от взгляда
@Kotl1n
@Kotl1n 9 ай бұрын
А на должность SRE/Devops в avito алгоритмы спрашивают?
@shemistan11
@shemistan11 9 ай бұрын
Именно алгоритмы вроде нет, но это не точно)
@olezhek28go
@olezhek28go 4 ай бұрын
смотря где, думаю)
@mchekalov
@mchekalov 9 ай бұрын
А где традиционное, в одной из задач ошибка, найдите ее?
@olezhek28go
@olezhek28go 9 ай бұрын
На все время не хватило, но если есть варианты кидай сюда:)
@Varkatel
@Varkatel 9 ай бұрын
ошибка, что константу внизу переименовал, а вверху не
@olezhek28go
@olezhek28go 9 ай бұрын
@@Varkatel ага и ещё лучше, чтоб там была в одном месте русская с, а в другом английская)
@maratbaisultan6915
@maratbaisultan6915 3 ай бұрын
18:35 челик инициализирует структуру с приватным полем лол
@mikemerinoff
@mikemerinoff 9 ай бұрын
- Найди опечатку в своем коде * засаживает еще две опечатки, пока искал *
@olezhek28go
@olezhek28go 9 ай бұрын
случается)
@НикаАрхипова-в7й
@НикаАрхипова-в7й 6 ай бұрын
без очепаток никуда
@artemkas4191
@artemkas4191 5 ай бұрын
Классика - исправил 1 баг, получил 10 новых багов😂
@johnquest82
@johnquest82 2 ай бұрын
человек то ли сильно нервничал, иначе я не понимаю, как можно так часто делать опечатки и не видеть этого...
@НурмагомедТалайлов
@НурмагомедТалайлов 9 ай бұрын
Можете еще mock-собеседование было на языке Java
@artartov2018
@artartov2018 8 ай бұрын
2 дкнь изучаю Го, изи решил все задачи! )))
@IvanFedulov
@IvanFedulov 4 ай бұрын
пиздишь😅
@olezhek28go
@olezhek28go 4 ай бұрын
красава)
@ЕвгенийГригорьев-ш9ц
@ЕвгенийГригорьев-ш9ц 9 ай бұрын
Красавчик к кепке!, во первых задачи - полное фУфлЕ, во-вторых если ты картавый щупленький малыш как на картинке, то ты вызвал у меня чувство недоумения и сострадания, в третьих твои придирки к опечаткам выдают в тебе чувство собственной неуверенности
@olezhek28go
@olezhek28go 9 ай бұрын
Так все так, я забитый маменькин сынок и вылез в интернет, чтобы раздражать таких как ты:) Выходит на собес или зассал?😂
@erwererwrwr
@erwererwrwr 3 күн бұрын
вы здоровы, в принципе? а если человек инвалид без ног, но гений-программист, он что перестал быть гением программистом, у вас с логикой и рассудком в порядке всё?
Антон Сергеев, «Go под капотом»
36:37
Kolesa Group
Рет қаралды 103 М.
Кто круче, как думаешь?
00:44
МЯТНАЯ ФАНТА
Рет қаралды 6 МЛН
FOREVER BUNNY
00:14
Natan por Aí
Рет қаралды 33 МЛН
Симбу закрыли дома?! 🔒 #симба #симбочка #арти
00:41
Симбочка Пимпочка
Рет қаралды 5 МЛН
amsalat. канада, ютуб, гудини, кино
2:17:47
CG ПОДКАСТ №1
Рет қаралды 14 М.
GOLANG СОБЕСЕДОВАНИЕ LAMODA НА 300К
1:54:35
nilchanpub
Рет қаралды 23 М.