👾 t.me/ntuzov - мой канал в Telegram. Пишу в нём много интересного: гайды, которых нет на UA-cam, интересные мысли про разработку, новости и анонсы всех моих активностей и др. Мои уроки, которые помогут вам подготовиться к собеседованию: Внутреннее устройство типа Map в Go: ua-cam.com/video/P_SXTUiA-9Y/v-deo.htmlsi=iQCooPSrQ3EifMT2 Про хэш-таблицы: ua-cam.com/video/0UX4MIfOMEs/v-deo.htmlsi=lyWV4BLvzRQmJqcH Внутреннее устройство каналов: ua-cam.com/video/ZTJcaP4G4JM/v-deo.htmlsi=5uX_-NtmkKkcVvO6 Как устроен Slice, его подводные камни: ua-cam.com/video/10LW7NROfOQ/v-deo.htmlsi=kNbTqFucDo6vU-9z
- Как реализованы мапы в го? - Ой я сам люблю мучать этими вопросами на собеседовани) ... 5 minutes later ... - Я на самом деле не помню как до точности реализовано Всегда удивляют собеседования где грузят вопросами, пытаясь поумничать, хотя сами откровенно не понимают как это работает. Штампанут отказ и делов то) они то уже на месте) Антон респект тебе, вакумные задачи действительно тяжело решать, когда у того кто собеседует уже есть в голове ответ Всем добра)
В общем то тут как раз вскрывается весь фарс того что когда мощный и всезнающий типа синьор оказывается по другую сторону, выглядит уже не так убедительно а местами даже и жалко.. и воющем то все они чешут своё эго
Все так рассуждают пока не оказываются по ту сторону 😂 А если серьезно - цель не вас унизить, а понять границы компетенций и соотнести с позицией. Универсальных подходов нет... Хотя есть - испытательный срок 😊 Но дорогой цуко 😊
А мне понравилось, какие интересные люди на видео) Антон дружественный софт-скилловый лид, лиды-начальники должны быть приятными всё-таки в первую очередь, иначе все разрабы разбегутся. Даниил олдскул эталон тех самых айти-отцов, которые придумали нам ОС и языки. Взахлёб бы слушал его опыт, ещё и интересно рассказывает. Владимир как гоночный боец, который напишет весь яндекс за один день, да он может не так часто улыбается - настолько человек умеет погружаться и чувствовать код.
Что-то мне кажется что Глеб даже если захочет, не сможет Балуна задушить вопросами или задачами, мне кажется он как раз тот тип, которого ненавидел препод ,потому что он будучи студентом знал больше чем сам препод😂
28:00 начиная с го 1.20 можно конвертировать слайс в массив: Go 1.17 added conversions from slice to an array pointer. Go 1.20 extends this to allow conversions from a slice to an array: given a slice x, [4]byte(x) can now be written instead of *(*[4]byte)(x). Примеры как что делать можно в спеке посмотреть, искать "Conversions from slice to array or array pointer".
Часть с Даниилом приятно удивила. Строил своё впечатление о нём по статьям и банхаммеру в гошном чате с вакансиями. Думал, там сейчас будет такой суровый дядька. А оказался вполне дружелюбным и тактичным. Вопросы специфичные, гошные слишком верхнеуровнево - это да, можно было и поглубже. Но если смотреть не в образовательных целях, а как развлекательный контент, то отлично. Вторая часть потяжелее. Между собеседниками получился не очень хороший "коннект" (в том числи и буквально - сеть лагала). Одна из моих самых нелюбимых тем - вопросы без ответа. Например вопросы про лок-фри кэш, название паттерна или оптимизацию базы: - Знаешь как такое сделать? - Не, не знаю. - А, ну ок, идём дальше. Очень раздражает такой подход. Так сложно потратить минуту и объяснить вкратце, что хотел услышать? Ещё, похоже, что два интервьюера между собой не договаривались по процессу, поэтому нет ощущения целостности. Хорошее двухчасовое сеньорское интервью идёт с общим контекстом и позволяет лучше раскрыть собеседуемого через все этапы: "разговорчики", теоретические вопросы, лайв-кодинг, систем дизайн и пр. За контент спасибо! Делайте ещё
Отличный выпуск. Очень жизненно. Теперь все понимают, почему процесс собеседования сломанный от начала до конца :). Все участники просто красавцы. Автору канала - респект, снимай еще!
Интересное интервью, хотя я не GO-разработчик, ничего не понял по технической части, но интересно было с точки зрения психологии. Антон прикольный, но хотелось бы видеть больше серьезности и спокойствия, тут как то сильно в защиту ушел, хотя понятно, что психологическая нагрузка большая) Ну т.е. от синьора ждешь уверенности, а тут часто попытка обесценить суть вопросов и скрыться за шутками и личным обаянием. Такую же проблему у себя фиксировал какое то время, но в какой то момент понял, что нужен не хороший парень, а профессиональный, хотя при этом я уверен, что Антон отличный специалист и в реальной жизни выполняет задачи максимально эффективно, вопрос только в подаче самого себя. Спасибо!
1:00:00 если тормозит запись логов самый первый вариант как ни странно уменьшить количество индексов таблицы с логами и второй вариант сделать отложенное логирование и самый простой метод - отселить логи в отдельную базу чтоб перестать тормозить ими данную. Ну и уберите пои записи лога транзакции на уровне таблицы, максимум оставьте на уровне строки. ИМХО простейший вопрос, возьмите меня в сеньоры-теоретики!
Позанудствую: О-большое означает выполнение операции в худшем случае. У хеш-мапы в худшем случае доступ к элементу может быть за О(n). Это на самом деле просто реализовать: достаточно сделать так, что бы объекты одного типа возвращали один и тот же хеш, при этом сами между собой не были равны. В этом случае хеш-мап честно сложит все переданные объекты в один бакет, а при поиске любого из них потребуется полный его перебор. Поэтому не совсем корректно просить ответить в терминах О-худшего, но ожидать ответ в терминах моды, для которого к сожалению ученные информатики буквы почему-то не придумали.
По моему как раз Владимира было очень интересно послушать. Все кто пишет, что он душит просто не работали со сложными системами. Все, что спрашивалось, это просто проверка на понимание основных принципов работы ОС, структур данных, БД и ряда популярных проблем связанных с железом и архитектурой. Хотелось бы, конечно, чтоб Владимир еще сразу отвечал, а то ждать пока Антон додумается показалось нудновато. Но в целом все молодцы, много интересных тем поднято, пойду изучать...
В первую очередь хочу поблагодарить ребят за классный контент, здорово что делаете такие видео. Как по мне дали бы Даниилу Подольскому все время, с ним было намного интереснее, настоящий профи. Вторую часть можно смело смотреть на скорости 1.75 а местами вообще проматывать. Очень не внятный интервьюер сложно понять вообще что он хочет, размытые вопросы.
Спасибо за интервью, подумываю о переходе в Го, было полезно и по большей части интересно. 1-ый дядька умный, хотел бы с ним работать. 2-ой чувак какой-то недобрый, я бы не пошел. Вопросы на эрудицию имеют место быть и даже когда человек на них не знает заученого ответа, все равно много что можно узнать. Лайвкодинг с задачами, когда она у тебя полностью есть в голове и там же идеальное решение - это способ потешить свое эго.
Как жизненно, во второй части, бывает, что люди просто не сошлись, но тоже круто, собеседование это же, чтобы понять подходите ли вы друг другу не только по хард скилам.
Бывает и довольно часто, а потом, вдруг оказывается, что программистов не хватает катастрофически и думаешь, а реально ли не хватает, или не хватает тех, кто понравится лично тому, кто собеседует
Вот интересно прошел бы Владимир собеседование у Даниила? Тогда бы увидели цену его "профессионализму"... Уверен что при желании Антон по специфике своей работы мог бы задать вопросы, на которые вряд ли бы ответил Владимир))
Дефолтная емкость у пустого слайса равно 0, а не 8, кроме того, емкость у слайса с одним значением int будет равно 1, а не 8. По мере добавления элементов емкость увеличивается в 2 раза (если емкость меньше 256), чтобы размер базового массива слайса был пропорционален размеру машинного слова. То есть при добавлении значения int, емкость будет увеличена с 0 до 1, так как размер int равен размеру машинного слова. С другой стороны, при добавлении значения int16, емкость будет увеличена с 0 до 4 на 64 битном движке, так как размер int16 равен 16 байт, а размер машинного слова равен 64 байт.
28:05 или не быть Даниилом и привести слайс к указателю на массив, если у нас 1.17+ либо сразу слайс к массиву, если у нас 1.20+. Эффект тот же, что и от цикла: в первом случае мы получаем указатель и при разыменовывании указателя мы получим копию массива, во втором мы сразу получаем копию массива
На истину не претендую, но именно Go здесь увидел процентов 20, все остальное сферический сениор программист (системный архитектор) любого ЯП в вакууме. Каверзные вопросы от Даниила было интересно послушать, а вот на Владимире - Go как обычно закончился. Который раз его собесы смотрю, уж извините, левую хрень спрашивает - все что угодно, но не Go. Его собесы выключаю мин через 15 после начала. Такое впечатление что каждый раз пытается доказать что умнее всех. Лучше бы Сашу Сахарова Thug позвали - Даниила и Сашу очень интересно было услышать. Глеб Яльчик всегда очень корректно ведет разговор. А Владимир все пытается поднять свою самооценку за счёт других. Сугубо имхо.
@@lyovghukasyan2588 понадобится может всё - от ручной сборки линукса до написания собственного кубера. Проблема что знать все - невозможно. Докапываться к специфичным деталям реализации сторонних сервисов на демо-собесе по Го - это хамство. Уверен что проводи собес Антон - он легко завалил бы Владимира на вопросах, связанных со спецификой своей работы. Только у Владимира скорее всего духа не хватит выйти на публичный собес))
defer же обрабатывается после инструкции return. Например, `func() (x int) { defer funс() { x = 10 }(); return 5 }`, здесь сначала выполнится return 5, и в x присвоится 5, затем запуститься defer, где это значение можно будет изменить. Странно, почему Даниил не отреагировал на неправильный ответ Антона.
Потому что тебе нужно заблокироваться до того как ты обратишься к реальной бд, так как если не залокаться, то 2 одинаковых запроса (конкурентных) пойдут в саму бд, а если залочишься, то первый пойдёт в бд, а второй в кеш
2:03:56 На самом деле я бы тоже задавал такие вопросы. Может и в шуточном виде, конечно, чтобы сгладить углы, но на полном серьезе. Тут же конфликт бюрократических размеров: в условном Яндексе к тебе сверху через большую цепочку пришла задача и тебе нужно ее сделать, все. В компании поменьше (значительно) где я работаю - ко мне может придти техдир и сказать "надо написать кеш". И я вполне могу спросить "а зачем мы это делаем? А зачем нам писать кеш? Какая вообще у нас проблема? Может нам таки перенести базу на ру сервер?)"
то чувство, когда помимо знаний и правильного решения задач тебе нужно ещё и думать вслух так, чтобы нравилось интервьюверу, и у него возникла искра желания тебя взять. После такого, я думаю, что человека с 10+ годами опыта должен интервьюировать человек с соизмеримым опытом, желательно еще большим. Потому что вчерашние студенты просто априори на другой волне всегда будут находиться с опытными людьми.
А разве яндекс уже не дошел до маразма? Если не ошибаюсь Даниил писал что не прошел собес в яндексе из за алгоритмов. И это профессионал с опытом работы более 30 лет))
По поводу дефолтного буфера - неверно, никогда под массив в слайсе сходу 8 элементов длины et.Size_ не выделялось. Может он немного с конкатенацией строк путает. Концептуальная ошибка у человека вообще в принципе. При чем тут alignment памяти в хипе, при чем тут байты вообще если мы про cap говорим. К примеру, ткой код: func main() { var a []string fmt.Println(unsafe.Sizeof("три")) //16 - размер структуры строки fmt.Println(len("три")) //6 - размер буфера строки fmt.Println(cap(a)) //0 fmt.Println(len(a)) //0 for i := 0; i < 10; i++ { a = append(a, "три") fmt.Println(cap(a)) //0,1,2,4,8,16 fmt.Println(len(a)) //0..9 } } Данные в слайсе могут занимать разное кол-во байт и от этого cap не зависит. По поводу хеш - таблиц - именно хеш - таблиц, а не мапы в go - человек не знает в принципе, что такое пробирование, что есть два подхода хранения коллизий в одном массиве или в виде списков. Ни по CS вопросов нет, ни по Go особо. Мне вот вопросы собеса не понравились, но это кому как
На 31й минуте Даниил говорит, что мы берём 3 бита и получаем смещение. Разве это так? Насколько помню, там просто хранятся эти биты для быстрого предварительного сравнения, но ключи сравниваются последовательно (сначала по этим битам, а потом, если совпало, уже конкретно, что внутри).
Сначала в цикле идет перебор значений этих битов в бакете (максимум 8 заполненных ячеек с битами), если совпало, то по индексу совпавшего бита высчитывает смещение, где хранится ключ, достает его и сравнивает с искомым ключем, если ключи совпали, то вычисляет смещение значения и достает его, если ключи не совпали, значит это коллизия, и дальше продолжается перебор битов в бакете, затем в overflow бакетах, если есть.
21:25 почему? Я что то не так понял? type Number interface { int | float64 } func Double[T Number](value T) T { return value + value } Передали int, получили int, передали float64, получили float64, что не так? 🤔
Вы не понимаете сущности понятия тип-суммы. В вашем случае дженерик функция Double при вызове инстацируется одним конкретным типом, либо int, либо float64. Вы не можете внутри функции проверить, что это за тип, int или float64 и зависимости от этого прописать внутри функции различное поведение, как этого требует тип-сумма, например, если int, то вернуть value + value, а если float64, то вернуть value * 10. В вашей функции такое реализовать невозможно, потому что для параметров типа нельзя использовать type switch.
1. "Default value стандартный инициализируемого слайса имеет capacity = 8" (C). Что, простите? 2. Товарищи делают из среза массив (через reflect, выходит), чтобы это стало ключом в мапе. Что, простите? Такое ощущение, что интервью - просто шутка. Много, очень много пафоса и мало, очень мало эффективности.
Забавный диссонанс. В подкасте "Как попасть в IT", часть коллег топит за то, что стажёр должен уверенно отвечать на вопросы из опросника Даниила (если грубо упрощать). Но на практике, человек, чей грейд выше сеньорского, который работает в уважаемой компании и собеседовался уважаемым и авторитетным человеком, испытывает трудности с этими вопросами. И причина вполне понятная, в рабочем процессе, сотрудник решает совершенно другие задачи. Безусловно и неоспоримо, что фундаментальные знания очень важны, полезны и так далее. Но на практике, специалисты которые способны лидить проекты и направления, сыпятся на базовой теории. И что по итогу? По сути, будь на месте собеседуемого стажёр или джун, то на первых 20 минутах общение могло бы и закончиться
Бывают кейсы, когда приходится расчехлять знания в облести файловой системы. Например - диск выглядит как полный, но df сообщает, что места навалом. И надо смотреть df -ih, то еть именно иноды. Когда это нужно разработчику - чуть реже, чем никогда. Но это был реальный случай из моей практики, когда я не мог записать сгенерированную бэкендом PDF-ку в диреторию статического контента. А потом выяснилось, что мой процесс из-за ошибки моих кривых рук просто наплодил "мёртвых" инод. А дисочек на виртуалке был маленький. Хорошо, что удалось заметить и пофиксить, а то прод бы умер через час после деплоя и никто бы не понял - от чего.
Выгода от использования sync.Map увеличивается паралельно увеличению количества тредов используемых программой, в хабре если не ошибаюсь была статья с объяснением, конкретной цифры в 4 там не упоминалось
Честно говоря - какая то тупая викторина, ответ-вопрос. Точнее допрос, как на тупом ЕГЭ. Ни одного вопроса с привязкой к опыту. Взять хотя бы вопрос про трёхбуквенные команды в линуксе - нахрена? Маразм какой-то. Не лучше ли спросить у человека просто про то, как он пользуется линуксом и какие команды юзает. Типа если он что-то прочитал в доке, то он молодец, но похрену как он это использует и где... И как таковой беседы нет, происходит постоянное перепрыгивание с одной темы на другую. Я вот ничего не узнал о Владимире как о разработчике и его опыте, только посмотрел на то как он тупо отстреливается от душного деда ответами. Хотя видно же что человек интересный.
Да вообще не понятно, как чел пишет микросервисы и линукс знает очень поверхностно. Где он их разворачивает? На виндах что ли? Только если его по виндам спросить, он наверняка и по PowerShell поплывет.
18:00 Цитата: "Нет это тоже не так HTML CSS Вполне себе тянет на язык программирования и вполне декларативный." Мне интересно, это выдается как за базу и истину, или как развод опонента на собеседовании. Сам-то я из определившихся по этому вопросу и занял определенную сторону в этом холиварном когда-то вопросе.
1:20:00 блин он так долго ищет простейшее решение. Ну записывай ты не одну мапу а две - в одной держи ключ значение, а в другой тот же ключ и количество обращений, и инкрементируй при каждом обращении, время от времени запускай перехуятор который проходит по списку каунтеров и находит примерную середину по количеству записей запоминает это значение счётчика. Далее надо бесшовно пересоздать мапу с ключ-значение переписывая в неё только те строки которые имеют каунтер выше запомненного на предыдущем шаге. После того как эта операция сделана переключаем указатель мапы которую считаем кешем на вновьсозданную только с частыми ключами а старую уничтожаем или транкейтим. Ёлки, можно сослаться на то что чел волнуется, но тормозить настолько сильно как он... Если что я вообще пока не гофер - у меня богатый опыт в других языках, а в голэнг я только сунулся и опыта в нём почти ноль. Но даже при таком раскладе я б так долго этот вопрос не мусолил.
@Thief1987 по себе людей не судят. Я всё это написал потому что мне по приколу решать задачки. Я так борюсь с альцгеймером и деменцией которые в моём возрасте уже у многих.
Здравствуйте. Я специально проверил, пустой буферизованный канал, из которого кто-то ожидает читать - заполняется сразу, а не ведет себя как небуферизованный канал, как заявляет интервьюер. Или я чего то не понял. Время обсуждения 34:40
я тоже порой не понимал что за ответ хочет Владимир Балун, думаешь не над ответом, а над вопросом... Он явно чтобы не подсказывать ответ не договаривал входные данные из-за этого непонятные те искусственные задачи, которые он ставит. Но Антон молодец
на собеседовании в yandex тоже интересно находят у тебя в коде ошибку и тыкают, находишь ты тут же у того кто тыкает - на этом собсес. заканчивается, спасибо идете на ***
Меня немного смущает ответ Даниила о том, что у го кооперативная многозадачность. Насколько я знаю, начиная как раз с версии 1.14 авторы языка свитчнули язык в вытесняющую многозадачность, которая решила многие проблемы кооперативной, в частности проблему "вечно исполняющейся горутины с GOMAXPROCS=1". Можно было также добавить, что большое преимущество зеленых тредов над ОС тредами - это время переключения контекста.
@@TheDiNoWaR "в аварийном режиме" имелось в виду, что при работе прожорливой горутины более 10мс, она вытесняется планировщиком в ближайшей безопасной для нее точке.
На 30ой минуте ощущение что интервьюер радуется малейшему ответу хоть на чтото, а собеседуемый знает чтото отдалено, но пытается уверено держаться. Меня спрашивали на всех собесах намного глубже и дольше по всем вопросам, и вопросы были жоще. Я джун в го. Печально все это идалеко от жизни.
Если бы небыло лимита Даниил спрашивал бы дольше. Очень вообще странно на позицию джуна спрашивать у соискателя условное байтовое устройство мап, внутрянку каналов или усройство аллокатора памяти.
да зачем сразу негативить. он просто очень комфортно себя чувствует. где не знает он же так и говорит я не знаю. не говорит же типо: вы херню какуе-то спрашиваете раз я не знаю ответ. человек не обязан трястись на собесах. как по мне это идеальный пример как надо себя вести. спокойно, без нервов, на позитиве
Квалификация интервьюверов поражает, это топовый уровень для техлидов или аналитиков. Антон это пример вкатыша со стажем. Он может тимлидом работать, если в команде будет эксперт, но это не уровень синьора. Мидл+, может быть.
Насколько я понял происходящее, то челы решили, что syncMap начинает норм работать при 4-х потоках и выше, а ядра заявили 2. Поэтому стали писать свой велосипед на обычной мапе, обкладывая ее мьютексом. про 32 бита не помню контекста
речь про то, как обрабатывается процессором операция присвоения указателя. они говорят о том, что как правило это атомарное действие (одна операция) и лок не нужен - потоки не смогут конкурировать. но в редких случаях, на 32м процессоре присвоение займет два такта и тут уже имеет место быть race condition от которого защищаются в частности мьютексом.
Не нравится 2 вопроса. Про преимущества и недостатки языка. Это настолько субъективно, особенно если GO не единственный язык, который ты знаешь. Но при этом толком не было про рантайм и GC, хотя о них подробно спрашивают даже джуниоров
Любой вопрос можно подвести под критерии субъективности. Здесь нет правильного или неправильного ответа. Интервьюер просто хотел услышать рассуждения человека.
Вместо того, чтобы покупать отдельную камеру служащую только для того, чтобы переодически показывать кадры Макбука с наклейками, Владимиру стоило купить нормальный микрофон, чтобы уши не сворачивались трубочкой, когда он начинает долбить по клавиатуре.
Два года назад я начал работать на американский стартап, и я за это время выявил одно большое отличие между сеньерством на западе и у нас. На западе ты тем более сеньерен, чем более ты ориентирован на продукт, а на постсоветском пространстве сеньерность измеряется в том насколько похоже на преподавателя из университета ты разговариваешь. Вот этого бородатого дядечку я бы с удовольствием взял на работу профессором, если бы был ректором ВУЗа, а вот от нашего стартапа отгонял бы пахучими тряпками, тк нам нужно делать продукт, а он бы нам распугал всех кандидатов. Очень хочу в последнее время вернуться домой в РФ, но как посмотрю такие интервью, ориентированные не на поиск созидателя продукта, а на повыебываться перед кандидатом и коллегами, сильно расстраиваюсь.
1) Ну так этот бородатый дядька и не в стартапе работает 2) Ты путаешь собесы в биг тех где делают высоконагруженные, производительные сервисы и свои бд с продуктовыми стартапами Так или иначе собес в команду поиска гугла и поиска яндекса будет примерно одинаков, разве что в гугл еще будет всякий поведенческий булшит тестить За продуктом стоит тяжелое технологическое решение, которое кому-то нужно писать, это просто разные вещи и команды, можно пойти и в продуктовую команду писать круды - там такое не спрашивают
@@ИгорьЖуков-к3г я собеседовался в биг тех, в том числе в Мету. Таких вопросов там не задают. Там собеседуют на инженера, который может пользоваться разными инструментами, а не лучшего теоретика Go. И "поведенческий булшит" имеет много смысла для больших компаний, в отличие от вопросов бородатого дядечьки.
Все же в стартап и энтерпрайз сильно разные походы. Но даже в стартапе вам нужны будут хардкорные ребята, которые глубоко понимают технологию, если это не очередной «fake it till you make it MVP». В США встречается и такое мнение: «как это сеньор без 10 лет опыта»? С наших сеньоров с 2-я годами опыта можно только плакать, ни продукта как правило не будет, ни домена, ни общей насмотренности, ни ухода в глубину.
@@laxcity-lead , спасибо за ответ! Я просто удивился, что собеседующий поддержал эту мысль. А вы отлично справились для собеса без подготовки и не на свою позицию! Не обращайте внимание на хейт)
Если сделать так: var mySlice []int Cap - у него будет 0 Если вот так: mySlice := make([]int, 1) Cap - у него будет 3 Дефолтный Cap для разных типов разный, так для int это 3, для byte - 8
Товарищ из Яндекса так себе интервьюер - на вопросы, как этот паттерн называется, что бы ты сделал, говорит ну окей, не раскрывая названий и решений. Товарищ не умеет проводить собеседования, располагать к себе и шарить знания, так себе он Senior.
Не знаю почему все гонят на Владимира, мне его часть интервью больше понравилась. У Даниила все было хорошо, но есть одно но, его разговор был максимально урезан ввиду того, что доступно было всего 50 минут. Кажется с достойным кандидатом он мог провести беседу часа на 3, если бы не имелось строгих ограничений на собес со стороны компании.
Кажется "кандидат" был либо в далеко не своей лучшей форме, либо растерялся, либо в Гайдзин слабые стандарты по грейдам. Во многих компаниях с таким подходом в решении live coding части для сеньора будет "no hire"
Можно ссылку на актуальный ядерный опросник Даниила? (прежде всего интересует именно Go-часть) Тот, что в хабровской статье, явно неполный. К Владимиру - отличный кейс про бд, полезный. Еще было бы интересно, если бы он тоже задавал такие же классные наводящие вопросы, как Даниил. Потому что повторить один и тот же вопрос несколько раз - это хорошо, только не сильно помогает в движении мысли. В остальном У Владимира как обычно был феерический уровень хард-скиллов, хочу через год сам так же вывозить систем дизайн)
В Яндексе у всех такие отвратительные софт скиллы? Не пытается слушать Навязывает свое Когда собеседник не понимает интервьюера, интервьюер даже не пытается перефразировать вопрос, а в тупую повторяет его снова и снова И это дебильная ехидная улыбка когда ответ его не устраивает Upd. А ведь вопросы интересные, действительно практические
практическая часть ваще не объективна, можно было ограничиться рисованием схем ... пусть Вовка скажет сколько по времени он сам решал эту задачу и как часто бегал в гугл 😑 .. такие собесы оставляют проекты без людей и когда совсем припрёт берут чуть ли не первого с улицы 👎
👾 t.me/ntuzov - мой канал в Telegram.
Пишу в нём много интересного: гайды, которых нет на UA-cam, интересные мысли про разработку, новости и анонсы всех моих активностей и др.
Мои уроки, которые помогут вам подготовиться к собеседованию:
Внутреннее устройство типа Map в Go: ua-cam.com/video/P_SXTUiA-9Y/v-deo.htmlsi=iQCooPSrQ3EifMT2
Про хэш-таблицы: ua-cam.com/video/0UX4MIfOMEs/v-deo.htmlsi=lyWV4BLvzRQmJqcH
Внутреннее устройство каналов: ua-cam.com/video/ZTJcaP4G4JM/v-deo.htmlsi=5uX_-NtmkKkcVvO6
Как устроен Slice, его подводные камни: ua-cam.com/video/10LW7NROfOQ/v-deo.htmlsi=kNbTqFucDo6vU-9z
А как можно в видосик такого же собеса попасть? Очень хочу пособеситься у Даниила Подольского =)
- Как реализованы мапы в го?
- Ой я сам люблю мучать этими вопросами на собеседовани)
... 5 minutes later ...
- Я на самом деле не помню как до точности реализовано
Всегда удивляют собеседования где грузят вопросами, пытаясь поумничать, хотя сами откровенно не понимают как это работает. Штампанут отказ и делов то) они то уже на месте)
Антон респект тебе, вакумные задачи действительно тяжело решать, когда у того кто собеседует уже есть в голове ответ
Всем добра)
В общем то тут как раз вскрывается весь фарс того что когда мощный и всезнающий типа синьор оказывается по другую сторону, выглядит уже не так убедительно а местами даже и жалко.. и воющем то все они чешут своё эго
Все так рассуждают пока не оказываются по ту сторону 😂 А если серьезно - цель не вас унизить, а понять границы компетенций и соотнести с позицией. Универсальных подходов нет... Хотя есть - испытательный срок 😊 Но дорогой цуко 😊
Ну про бакеты вопрос максимально простой, странно что не ответил.
Большое спасибо, случайно попал, просмотрел полностью. Хочу к Даниилу в подмастерья ! Антон вообще красавчик, выдержал все стойко и с гордостью !
А мне понравилось, какие интересные люди на видео)
Антон дружественный софт-скилловый лид, лиды-начальники должны быть приятными всё-таки в первую очередь, иначе все разрабы разбегутся.
Даниил олдскул эталон тех самых айти-отцов, которые придумали нам ОС и языки. Взахлёб бы слушал его опыт, ещё и интересно рассказывает.
Владимир как гоночный боец, который напишет весь яндекс за один день, да он может не так часто улыбается - настолько человек умеет погружаться и чувствовать код.
Лучший комментарий, спасибо) Мне тоже понравились все участники, и бывает грустно видеть, как кого-либо из них хейтят.
какие опытные интервьюеры, круто у таких учиться чему-то
Николай, попробуйте организовать открытое собеседование где задавать вопросы будет Глеб, а отвечать Владимир. Было бы интересно.
+1, я бы тоже посмотрел
+1 интересно увидеть реальный уровень "тимлида с яндекса"
@@Кир-я9о он уже нет)
Что-то мне кажется что Глеб даже если захочет, не сможет Балуна задушить вопросами или задачами, мне кажется он как раз тот тип, которого ненавидел препод ,потому что он будучи студентом знал больше чем сам препод😂
@ПетренкоВладислав ахаэах орв
28:00 начиная с го 1.20 можно конвертировать слайс в массив: Go 1.17 added conversions from slice to an array pointer. Go 1.20 extends this to allow conversions from a slice to an array: given a slice x, [4]byte(x) can now be written instead of *(*[4]byte)(x).
Примеры как что делать можно в спеке посмотреть, искать "Conversions from slice to array or array pointer".
Не плохо. Хочется побольше чего-то в таком стиле
Часть с Даниилом приятно удивила. Строил своё впечатление о нём по статьям и банхаммеру в гошном чате с вакансиями. Думал, там сейчас будет такой суровый дядька. А оказался вполне дружелюбным и тактичным. Вопросы специфичные, гошные слишком верхнеуровнево - это да, можно было и поглубже. Но если смотреть не в образовательных целях, а как развлекательный контент, то отлично.
Вторая часть потяжелее. Между собеседниками получился не очень хороший "коннект" (в том числи и буквально - сеть лагала). Одна из моих самых нелюбимых тем - вопросы без ответа. Например вопросы про лок-фри кэш, название паттерна или оптимизацию базы:
- Знаешь как такое сделать?
- Не, не знаю.
- А, ну ок, идём дальше.
Очень раздражает такой подход. Так сложно потратить минуту и объяснить вкратце, что хотел услышать?
Ещё, похоже, что два интервьюера между собой не договаривались по процессу, поэтому нет ощущения целостности. Хорошее двухчасовое сеньорское интервью идёт с общим контекстом и позволяет лучше раскрыть собеседуемого через все этапы: "разговорчики", теоретические вопросы, лайв-кодинг, систем дизайн и пр.
За контент спасибо! Делайте ещё
Согласен про вопросы без ответов, лайк
Отличный выпуск. Очень жизненно. Теперь все понимают, почему процесс собеседования сломанный от начала до конца :). Все участники просто красавцы. Автору канала - респект, снимай еще!
Спасибо Данниилу и всем организаторам!
Очень интересное интервью! Отлично, что интервьюеры объясняют. Сижу, конспектирую) Спасибо!
Антон в любом случае молодец, выдержать двухчасовой пресс, да еще под камеру.
Интересное интервью, хотя я не GO-разработчик, ничего не понял по технической части, но интересно было с точки зрения психологии. Антон прикольный, но хотелось бы видеть больше серьезности и спокойствия, тут как то сильно в защиту ушел, хотя понятно, что психологическая нагрузка большая) Ну т.е. от синьора ждешь уверенности, а тут часто попытка обесценить суть вопросов и скрыться за шутками и личным обаянием. Такую же проблему у себя фиксировал какое то время, но в какой то момент понял, что нужен не хороший парень, а профессиональный, хотя при этом я уверен, что Антон отличный специалист и в реальной жизни выполняет задачи максимально эффективно, вопрос только в подаче самого себя. Спасибо!
1:00:00 если тормозит запись логов самый первый вариант как ни странно уменьшить количество индексов таблицы с логами и второй вариант сделать отложенное логирование и самый простой метод - отселить логи в отдельную базу чтоб перестать тормозить ими данную. Ну и уберите пои записи лога транзакции на уровне таблицы, максимум оставьте на уровне строки. ИМХО простейший вопрос, возьмите меня в сеньоры-теоретики!
Извините, а кто-то разве может додуматься писать логи в ту же базу? 😂 Ну кроме сферы 1С, конечно.
Позанудствую: О-большое означает выполнение операции в худшем случае. У хеш-мапы в худшем случае доступ к элементу может быть за О(n). Это на самом деле просто реализовать: достаточно сделать так, что бы объекты одного типа возвращали один и тот же хеш, при этом сами между собой не были равны. В этом случае хеш-мап честно сложит все переданные объекты в один бакет, а при поиске любого из них потребуется полный его перебор. Поэтому не совсем корректно просить ответить в терминах О-худшего, но ожидать ответ в терминах моды, для которого к сожалению ученные информатики буквы почему-то не придумали.
По моему как раз Владимира было очень интересно послушать. Все кто пишет, что он душит просто не работали со сложными системами. Все, что спрашивалось, это просто проверка на понимание основных принципов работы ОС, структур данных, БД и ряда популярных проблем связанных с железом и архитектурой. Хотелось бы, конечно, чтоб Владимир еще сразу отвечал, а то ждать пока Антон додумается показалось нудновато. Но в целом все молодцы, много интересных тем поднято, пойду изучать...
В первую очередь хочу поблагодарить ребят за классный контент, здорово что делаете такие видео.
Как по мне дали бы Даниилу Подольскому все время, с ним было намного интереснее, настоящий профи.
Вторую часть можно смело смотреть на скорости 1.75 а местами вообще проматывать. Очень не внятный интервьюер сложно понять вообще что он хочет, размытые вопросы.
Судя по комментариям, люди разбились на 2 лагеря - кому-то больше понравилась часть Даниила, кому-то Владимира. Поэтому, хорошо что их было двое :)
Потому что Владимир собеседовал всерьез, а Даниил комплиментарно.
Спасибо за интервью, подумываю о переходе в Го, было полезно и по большей части интересно.
1-ый дядька умный, хотел бы с ним работать. 2-ой чувак какой-то недобрый, я бы не пошел.
Вопросы на эрудицию имеют место быть и даже когда человек на них не знает заученого ответа, все равно много что можно узнать.
Лайвкодинг с задачами, когда она у тебя полностью есть в голове и там же идеальное решение - это способ потешить свое эго.
мощное интревью, жалко что Даниил не успел задать все свои вопрси
вот бы ядерный опросник где-то подсмотреть, чисто для себя
@@АлександрЛобов-ю6ж так загугли, на хабре есть и вопросник и ответы на него
Как жизненно, во второй части, бывает, что люди просто не сошлись, но тоже круто, собеседование это же, чтобы понять подходите ли вы друг другу не только по хард скилам.
Бывает и довольно часто, а потом, вдруг оказывается, что программистов не хватает катастрофически и думаешь, а реально ли не хватает, или не хватает тех, кто понравится лично тому, кто собеседует
- что делает команда kill?
- отправляет SIGKILL процессу
- ... ответ абсолютно правильный
Почему? По умолчанию ведь отправляет SIGTERM.
Ну хоть кто-то заметил
как же Балун душит :)
Очень приятно было наблюдать за Владимиром и его реакцией, вот это выдержка, вот это профессионализм)
Вот интересно прошел бы Владимир собеседование у Даниила? Тогда бы увидели цену его "профессионализму"... Уверен что при желании Антон по специфике своей работы мог бы задать вопросы, на которые вряд ли бы ответил Владимир))
Спасибо! Антон - красава!
Дефолтная емкость у пустого слайса равно 0, а не 8, кроме того, емкость у слайса с одним значением int будет равно 1, а не 8.
По мере добавления элементов емкость увеличивается в 2 раза (если емкость меньше 256), чтобы размер базового массива слайса был пропорционален размеру машинного слова. То есть при добавлении значения int, емкость будет увеличена с 0 до 1, так как размер int равен размеру машинного слова. С другой стороны, при добавлении значения int16, емкость будет увеличена с 0 до 4 на 64 битном движке, так как размер int16 равен 16 байт, а размер машинного слова равен 64 байт.
Спасибо всем участникам. Было очень интересно
28:05 или не быть Даниилом и привести слайс к указателю на массив, если у нас 1.17+ либо сразу слайс к массиву, если у нас 1.20+. Эффект тот же, что и от цикла: в первом случае мы получаем указатель и при разыменовывании указателя мы получим копию массива, во втором мы сразу получаем копию массива
На истину не претендую, но именно Go здесь увидел процентов 20, все остальное сферический сениор программист (системный архитектор) любого ЯП в вакууме. Каверзные вопросы от Даниила было интересно послушать, а вот на Владимире - Go как обычно закончился. Который раз его собесы смотрю, уж извините, левую хрень спрашивает - все что угодно, но не Go. Его собесы выключаю мин через 15 после начала. Такое впечатление что каждый раз пытается доказать что умнее всех. Лучше бы Сашу Сахарова Thug позвали - Даниила и Сашу очень интересно было услышать. Глеб Яльчик всегда очень корректно ведет разговор. А Владимир все пытается поднять свою самооценку за счёт других. Сугубо имхо.
"А Владимир все пытается поднять свою самооценку за счёт других" - абсолютно согласен, противный человек.
У меня создалось такое же впечатление. Возможно он просто не понимает что его стиль ведения интервью смахивает на допрос зачастую.
Так он задает вопросы с практики, то что может пригодится
Кандидат сам реагирует негативно на вопросы
@@lyovghukasyan2588 понадобится может всё - от ручной сборки линукса до написания собственного кубера. Проблема что знать все - невозможно. Докапываться к специфичным деталям реализации сторонних сервисов на демо-собесе по Го - это хамство. Уверен что проводи собес Антон - он легко завалил бы Владимира на вопросах, связанных со спецификой своей работы. Только у Владимира скорее всего духа не хватит выйти на публичный собес))
Зачем спрашивать что-то про язык. Язык это самое простое в профессии, тем более что вполне себе вариант нанимать людей со знанием другого языка
defer же обрабатывается после инструкции return. Например, `func() (x int) { defer funс() { x = 10 }(); return 5 }`, здесь сначала выполнится return 5, и в x присвоится 5, затем запуститься defer, где это значение можно будет изменить. Странно, почему Даниил не отреагировал на неправильный ответ Антона.
1:20:40 объясните, пожалуйста, почему надо лочиться до обращения к базе? или не надо? в видео непонятно
Как понял из-за того, что работаем с копией данных, а не с оригиналом
Потому что тебе нужно заблокироваться до того как ты обратишься к реальной бд, так как если не залокаться, то 2 одинаковых запроса (конкурентных) пойдут в саму бд, а если залочишься, то первый пойдёт в бд, а второй в кеш
прямо интерьвью здорового человека. софты интерьвьюверов на очень высоком уровне. вспоминаю себя в этой роли - думаю соискателям было не просто)
2:03:56
На самом деле я бы тоже задавал такие вопросы. Может и в шуточном виде, конечно, чтобы сгладить углы, но на полном серьезе.
Тут же конфликт бюрократических размеров: в условном Яндексе к тебе сверху через большую цепочку пришла задача и тебе нужно ее сделать, все. В компании поменьше (значительно) где я работаю - ко мне может придти техдир и сказать "надо написать кеш". И я вполне могу спросить "а зачем мы это делаем? А зачем нам писать кеш? Какая вообще у нас проблема? Может нам таки перенести базу на ру сервер?)"
Вопросы и задачка классные, все по делу
Можем получить опросник по го ?)
то чувство, когда помимо знаний и правильного решения задач тебе нужно ещё и думать вслух так, чтобы нравилось интервьюверу, и у него возникла искра желания тебя взять.
После такого, я думаю, что человека с 10+ годами опыта должен интервьюировать человек с соизмеримым опытом, желательно еще большим. Потому что вчерашние студенты просто априори на другой волне всегда будут находиться с опытными людьми.
Ппц сениор не знает как устроен map. Он почти во всех языках реализован одинаково
Когда-нибудь Яндекс дойдет до маразма и будет просить на собеседовании написать планировщик процессов для ядра ос
А разве яндекс уже не дошел до маразма? Если не ошибаюсь Даниил писал что не прошел собес в яндексе из за алгоритмов. И это профессионал с опытом работы более 30 лет))
В итоге будешь парсить xml
@@4thirstгорячо плюсую 😊
По поводу дефолтного буфера - неверно, никогда под массив в слайсе сходу 8 элементов длины et.Size_ не выделялось. Может он немного с конкатенацией строк путает.
Концептуальная ошибка у человека вообще в принципе. При чем тут alignment памяти в хипе, при чем тут байты вообще если мы про cap говорим.
К примеру, ткой код:
func main() {
var a []string
fmt.Println(unsafe.Sizeof("три")) //16 - размер структуры строки
fmt.Println(len("три")) //6 - размер буфера строки
fmt.Println(cap(a)) //0
fmt.Println(len(a)) //0
for i := 0; i < 10; i++ {
a = append(a, "три")
fmt.Println(cap(a)) //0,1,2,4,8,16
fmt.Println(len(a)) //0..9
}
}
Данные в слайсе могут занимать разное кол-во байт и от этого cap не зависит.
По поводу хеш - таблиц - именно хеш - таблиц, а не мапы в go - человек не знает в принципе, что такое пробирование, что есть два подхода хранения коллизий в одном массиве или в виде списков. Ни по CS вопросов нет, ни по Go особо. Мне вот вопросы собеса не понравились, но это кому как
Как тебя порвало
Вот я тоже так подумал. Там будет 5 операций, и слайс по дефолту будет удваиваться, если cap будет не хватать. 1,2,4,8,16
Да, интересно какие вопросы задаются в go на синьëра, многие моменты можно взять на вооружение
На 31й минуте Даниил говорит, что мы берём 3 бита и получаем смещение. Разве это так? Насколько помню, там просто хранятся эти биты для быстрого предварительного сравнения, но ключи сравниваются последовательно (сначала по этим битам, а потом, если совпало, уже конкретно, что внутри).
Сначала в цикле идет перебор значений этих битов в бакете (максимум 8 заполненных ячеек с битами), если совпало, то по индексу совпавшего бита высчитывает смещение, где хранится ключ, достает его и сравнивает с искомым ключем, если ключи совпали, то вычисляет смещение значения и достает его, если ключи не совпали, значит это коллизия, и дальше продолжается перебор битов в бакете, затем в overflow бакетах, если есть.
Очень круто, спасибо за труд
Вооооо!
Как раз вчера искал именно Senior Go собес
👍
Если я на все вопросы ответил правильно но опыта разработки на го у меня почти нет возьмёте меня сеньёром-теоретиком?
21:25 почему? Я что то не так понял?
type Number interface {
int | float64
}
func Double[T Number](value T) T {
return value + value
}
Передали int, получили int, передали float64, получили float64, что не так? 🤔
Вы не понимаете сущности понятия тип-суммы. В вашем случае дженерик функция Double при вызове инстацируется одним конкретным типом, либо int, либо float64. Вы не можете внутри функции проверить, что это за тип, int или float64 и зависимости от этого прописать внутри функции различное поведение, как этого требует тип-сумма, например, если int, то вернуть value + value, а если float64, то вернуть value * 10. В вашей функции такое реализовать невозможно, потому что для параметров типа нельзя использовать type switch.
1. "Default value стандартный инициализируемого слайса имеет capacity = 8" (C). Что, простите?
2. Товарищи делают из среза массив (через reflect, выходит), чтобы это стало ключом в мапе. Что, простите?
Такое ощущение, что интервью - просто шутка. Много, очень много пафоса и мало, очень мало эффективности.
Забавный диссонанс. В подкасте "Как попасть в IT", часть коллег топит за то, что стажёр должен уверенно отвечать на вопросы из опросника Даниила (если грубо упрощать).
Но на практике, человек, чей грейд выше сеньорского, который работает в уважаемой компании и собеседовался уважаемым и авторитетным человеком, испытывает трудности с этими вопросами.
И причина вполне понятная, в рабочем процессе, сотрудник решает совершенно другие задачи.
Безусловно и неоспоримо, что фундаментальные знания очень важны, полезны и так далее. Но на практике, специалисты которые способны лидить проекты и направления, сыпятся на базовой теории.
И что по итогу? По сути, будь на месте собеседуемого стажёр или джун, то на первых 20 минутах общение могло бы и закончиться
Я сам плюсовик, к го только присматриваюсь. Ничего ровным счетом не знаю. Но было крайне увлекательно это все посмотреть. Владимир - мое почтение.
Бывают кейсы, когда приходится расчехлять знания в облести файловой системы. Например - диск выглядит как полный, но df сообщает, что места навалом. И надо смотреть df -ih, то еть именно иноды. Когда это нужно разработчику - чуть реже, чем никогда. Но это был реальный случай из моей практики, когда я не мог записать сгенерированную бэкендом PDF-ку в диреторию статического контента. А потом выяснилось, что мой процесс из-за ошибки моих кривых рук просто наплодил "мёртвых" инод. А дисочек на виртуалке был маленький. Хорошо, что удалось заметить и пофиксить, а то прод бы умер через час после деплоя и никто бы не понял - от чего.
Расскажите про фактор конкурентности 4. Я не смог найди информацию в интернете
Выгода от использования sync.Map увеличивается паралельно увеличению количества тредов используемых программой, в хабре если не ошибаюсь была статья с объяснением, конкретной цифры в 4 там не упоминалось
Честно говоря - какая то тупая викторина, ответ-вопрос. Точнее допрос, как на тупом ЕГЭ. Ни одного вопроса с привязкой к опыту. Взять хотя бы вопрос про трёхбуквенные команды в линуксе - нахрена? Маразм какой-то. Не лучше ли спросить у человека просто про то, как он пользуется линуксом и какие команды юзает. Типа если он что-то прочитал в доке, то он молодец, но похрену как он это использует и где... И как таковой беседы нет, происходит постоянное перепрыгивание с одной темы на другую. Я вот ничего не узнал о Владимире как о разработчике и его опыте, только посмотрел на то как он тупо отстреливается от душного деда ответами. Хотя видно же что человек интересный.
Да вообще не понятно, как чел пишет микросервисы и линукс знает очень поверхностно. Где он их разворачивает? На виндах что ли? Только если его по виндам спросить, он наверняка и по PowerShell поплывет.
@@phat80 я пишу микросервисы, при этом, я хоть и знаю линукс, я вообще с ним не работаю, я только пишу докерфайл и разворачиваю все в оркестраторе.
Коля, на стене KZ флаг, респект ))
18:00 Цитата: "Нет это тоже не так HTML CSS Вполне себе тянет на язык программирования и вполне декларативный." Мне интересно, это выдается как за базу и истину, или как развод опонента на собеседовании. Сам-то я из определившихся по этому вопросу и занял определенную сторону в этом холиварном когда-то вопросе.
Мне бы столько терпения как у интервьюера :)
1:20:00 блин он так долго ищет простейшее решение. Ну записывай ты не одну мапу а две - в одной держи ключ значение, а в другой тот же ключ и количество обращений, и инкрементируй при каждом обращении, время от времени запускай перехуятор который проходит по списку каунтеров и находит примерную середину по количеству записей запоминает это значение счётчика. Далее надо бесшовно пересоздать мапу с ключ-значение переписывая в неё только те строки которые имеют каунтер выше запомненного на предыдущем шаге. После того как эта операция сделана переключаем указатель мапы которую считаем кешем на вновьсозданную только с частыми ключами а старую уничтожаем или транкейтим. Ёлки, можно сослаться на то что чел волнуется, но тормозить настолько сильно как он... Если что я вообще пока не гофер - у меня богатый опыт в других языках, а в голэнг я только сунулся и опыта в нём почти ноль. Но даже при таком раскладе я б так долго этот вопрос не мусолил.
Ок? А ты все это написал чтоб чсв свое почесать? А никто и не заметил, обидно, да?
@Thief1987 по себе людей не судят. Я всё это написал потому что мне по приколу решать задачки. Я так борюсь с альцгеймером и деменцией которые в моём возрасте уже у многих.
Здравствуйте. Я специально проверил, пустой буферизованный канал, из которого кто-то ожидает читать - заполняется сразу, а не ведет себя как небуферизованный канал, как заявляет интервьюер. Или я чего то не понял. Время обсуждения 34:40
я тоже порой не понимал что за ответ хочет Владимир Балун, думаешь не над ответом, а над вопросом... Он явно чтобы не подсказывать ответ не договаривал входные данные из-за этого непонятные те искусственные задачи, которые он ставит. Но Антон молодец
на собеседовании в yandex тоже интересно находят у тебя в коде ошибку и тыкают, находишь ты тут же у того кто тыкает - на этом собсес. заканчивается, спасибо идете на ***
Меня немного смущает ответ Даниила о том, что у го кооперативная многозадачность. Насколько я знаю, начиная как раз с версии 1.14 авторы языка свитчнули язык в вытесняющую многозадачность, которая решила многие проблемы кооперативной, в частности проблему "вечно исполняющейся горутины с GOMAXPROCS=1". Можно было также добавить, что большое преимущество зеленых тредов над ОС тредами - это время переключения контекста.
Вы чем слушали вообще? Даниил добавил что это только для аварийного режима начиная с 1.14
@@TheDiNoWaR "в аварийном режиме" имелось в виду, что при работе прожорливой горутины более 10мс, она вытесняется планировщиком в ближайшей безопасной для нее точке.
Вот про хождение на собеседование - это было круто услышать, хотя правда страшно вот так гулять по ним
Сложилось впечатление что вопросы из разряда отгадай о чем я думаю))
На 30ой минуте ощущение что интервьюер радуется малейшему ответу хоть на чтото, а собеседуемый знает чтото отдалено, но пытается уверено держаться. Меня спрашивали на всех собесах намного глубже и дольше по всем вопросам, и вопросы были жоще. Я джун в го. Печально все это идалеко от жизни.
Если бы небыло лимита Даниил спрашивал бы дольше.
Очень вообще странно на позицию джуна спрашивать у соискателя условное байтовое устройство мап, внутрянку каналов или усройство аллокатора памяти.
@@laxcity-leadа на реальном интервью у вас не бывает лимита?)
Когда будут новые серии подкаста?)
я бы переиминовал на "Собеседование Senior GO-разработчика с раздутым самомнением"
да зачем сразу негативить. он просто очень комфортно себя чувствует. где не знает он же так и говорит я не знаю. не говорит же типо: вы херню какуе-то спрашиваете раз я не знаю ответ. человек не обязан трястись на собесах. как по мне это идеальный пример как надо себя вести. спокойно, без нервов, на позитиве
Забавно. А сейчас тоже нету вытесняющей многозадачности?
Владимир отлично проводит интервью и честно пытается вытащить Антона. Антон заметно «поплыл» на кодинге, отчасти мог устать на втором часу.
Квалификация интервьюверов поражает, это топовый уровень для техлидов или аналитиков.
Антон это пример вкатыша со стажем. Он может тимлидом работать, если в команде будет эксперт, но это не уровень синьора. Мидл+, может быть.
Чушь сказал. Интервью это стресс, а интервью на запись под камеру?
я конечно понимаю, что интервьюверы непростые дядьки, но на мой взгляд этот парень прямо очень слаб..
Кто-нибудь может объяснить зачем понадобился мьютекс при инвалидации кэша и при чем здесь 32 бит архитектура?
Насколько я понял происходящее, то челы решили, что syncMap начинает норм работать при 4-х потоках и выше, а ядра заявили 2. Поэтому стали писать свой велосипед на обычной мапе, обкладывая ее мьютексом. про 32 бита не помню контекста
речь про то, как обрабатывается процессором операция присвоения указателя. они говорят о том, что как правило это атомарное действие (одна операция) и лок не нужен - потоки не смогут конкурировать. но в редких случаях, на 32м процессоре присвоение займет два такта и тут уже имеет место быть race condition от которого защищаются в частности мьютексом.
39:11 што?
Просматривая второй час, вспомнил из самого начала "являюсь лидом голанг разработки".
Не нравится 2 вопроса.
Про преимущества и недостатки языка.
Это настолько субъективно, особенно если GO не единственный язык, который ты знаешь.
Но при этом толком не было про рантайм и GC, хотя о них подробно спрашивают даже джуниоров
Любой вопрос можно подвести под критерии субъективности. Здесь нет правильного или неправильного ответа. Интервьюер просто хотел услышать рассуждения человека.
Мне тоже показалось, что про GC забыли упомянуть, а также про отсутствие поддержки динамических библиотек (жирные бинарники)
спасибо, респект антону
Отличный выпуск, теперь хочется вторую серию))
Очередной раз убеждаюсь что все собеседования субъективны и понятие сеньёр, мидл, джун от компании к компании сильно разнится.
Вместо того, чтобы покупать отдельную камеру служащую только для того, чтобы переодически показывать кадры Макбука с наклейками, Владимиру стоило купить нормальный микрофон, чтобы уши не сворачивались трубочкой, когда он начинает долбить по клавиатуре.
1:45:56 lock-free map это имеется в виду sync.map?
Это он имеет ввиду что вообще без локов)
Интересно, но хотелось бы кишки Go раскрыть типа шедулер или рантайм, все таки от сеньора это ожидают)
Если ты не хочешь отвечать на такие вопросы как "зачем нам это", "почему мы делаем это таким образом" то зачем ты руководишь команду???
А разве в команде top при вводе цифры 1 мы не увидим распределение нагрузки по ядрам?
Мы вот в Gopher Club как раз сегодня выяснили, что не во всех сборках оно так работает. К примеру, на маке нет такой фичи.
теперь нужно антона с владимиром поменять местами)
Два года назад я начал работать на американский стартап, и я за это время выявил одно большое отличие между сеньерством на западе и у нас. На западе ты тем более сеньерен, чем более ты ориентирован на продукт, а на постсоветском пространстве сеньерность измеряется в том насколько похоже на преподавателя из университета ты разговариваешь. Вот этого бородатого дядечку я бы с удовольствием взял на работу профессором, если бы был ректором ВУЗа, а вот от нашего стартапа отгонял бы пахучими тряпками, тк нам нужно делать продукт, а он бы нам распугал всех кандидатов. Очень хочу в последнее время вернуться домой в РФ, но как посмотрю такие интервью, ориентированные не на поиск созидателя продукта, а на повыебываться перед кандидатом и коллегами, сильно расстраиваюсь.
1) Ну так этот бородатый дядька и не в стартапе работает
2) Ты путаешь собесы в биг тех где делают высоконагруженные, производительные сервисы и свои бд с продуктовыми стартапами
Так или иначе собес в команду поиска гугла и поиска яндекса будет примерно одинаков, разве что в гугл еще будет всякий поведенческий булшит тестить
За продуктом стоит тяжелое технологическое решение, которое кому-то нужно писать, это просто разные вещи и команды, можно пойти и в продуктовую команду писать круды - там такое не спрашивают
@@ИгорьЖуков-к3г я собеседовался в биг тех, в том числе в Мету. Таких вопросов там не задают. Там собеседуют на инженера, который может пользоваться разными инструментами, а не лучшего теоретика Go. И "поведенческий булшит" имеет много смысла для больших компаний, в отличие от вопросов бородатого дядечьки.
Все же в стартап и энтерпрайз сильно разные походы. Но даже в стартапе вам нужны будут хардкорные ребята, которые глубоко понимают технологию, если это не очередной «fake it till you make it MVP». В США встречается и такое мнение: «как это сеньор без 10 лет опыта»? С наших сеньоров с 2-я годами опыта можно только плакать, ни продукта как правило не будет, ни домена, ни общей насмотренности, ни ухода в глубину.
Где ответы на вопросы Карл!? Почему вы оставляете меня один на один с этим!
Так, кто-нибудь может мне объяснить как создать слайс с капасити 8, не указывая его? 24:48
они сказали что по умолчанию капасити 8 а это не нат
Это мои галлюцинации, не обращайте внимания. Изначальный капвсити 0, потом 1, а потом растёт вдвое вплоть до 1024, потом на четверть
@@laxcity-lead , спасибо за ответ! Я просто удивился, что собеседующий поддержал эту мысль. А вы отлично справились для собеса без подготовки и не на свою позицию! Не обращайте внимание на хейт)
Если сделать так:
var mySlice []int
Cap - у него будет 0
Если вот так:
mySlice := make([]int, 1)
Cap - у него будет 3
Дефолтный Cap для разных типов разный, так для int это 3, для byte - 8
ахах, тоже сильно удивился, проверил все варианты инициализации, и не смог получить такого эффекта
Один смотрит, двое бьют)
Товарищ из Яндекса так себе интервьюер - на вопросы, как этот паттерн называется, что бы ты сделал, говорит ну окей, не раскрывая названий и решений. Товарищ не умеет проводить собеседования, располагать к себе и шарить знания, так себе он Senior.
Николай, а предновогодний стрим планируется?)
Да, конечно) В том же составе, как в прошлый раз
@@nikolay_tuzov Супер!
Не знаю почему все гонят на Владимира, мне его часть интервью больше понравилась. У Даниила все было хорошо, но есть одно но, его разговор был максимально урезан ввиду того, что доступно было всего 50 минут. Кажется с достойным кандидатом он мог провести беседу часа на 3, если бы не имелось строгих ограничений на собес со стороны компании.
20:23 - показалось? 😂
Кажется "кандидат" был либо в далеко не своей лучшей форме, либо растерялся, либо в Гайдзин слабые стандарты по грейдам.
Во многих компаниях с таким подходом в решении live coding части для сеньора будет "no hire"
как то глупо, половина вопросов не имеет практической ценности и держать в голове этот балласт никто не будет ...
Можно ссылку на актуальный ядерный опросник Даниила? (прежде всего интересует именно Go-часть)
Тот, что в хабровской статье, явно неполный.
К Владимиру - отличный кейс про бд, полезный. Еще было бы интересно, если бы он тоже задавал такие же классные наводящие вопросы, как Даниил.
Потому что повторить один и тот же вопрос несколько раз - это хорошо, только не сильно помогает в движении мысли.
В остальном У Владимира как обычно был феерический уровень хард-скиллов, хочу через год сам так же вывозить систем дизайн)
У меня более аткуальной версии, но можешь у нас в чате Gopher Club спросить об этом Даниила
В Яндексе у всех такие отвратительные софт скиллы?
Не пытается слушать
Навязывает свое
Когда собеседник не понимает интервьюера, интервьюер даже не пытается перефразировать вопрос, а в тупую повторяет его снова и снова
И это дебильная ехидная улыбка когда ответ его не устраивает
Upd. А ведь вопросы интересные, действительно практические
Радует, что Владимир Балун честно сказал, что коннект не случился)
Просто он противный человек.
Захотелось попасть в YADRO
This is like MMA for coders...
Человек перешел на го но не знает зачем)))
практическая часть ваще не объективна, можно было ограничиться рисованием схем ... пусть Вовка скажет сколько по времени он сам решал эту задачу и как часто бегал в гугл 😑 .. такие собесы оставляют проекты без людей и когда совсем припрёт берут чуть ли не первого с улицы 👎
Слабый кандидат для синьора
Не знаю почему на Владимира бочку катят? Как хотели? Ничего сверхреального он не спрашивает. Он крутой кодер, имеет право, лучше готовиться нужно.