Олег + Владимир = топовый собес) Реально круто получилось, смотрел еще некоторые собесы от Владимира, где он почти каждый ответ вытягивал, а тут прям очень гармонично и интересно
На проде при обходе очень большой коллекции, применил алгоритм свопа и удаления текущего элемента с конца списка, вместо O(n) из середины. Ускорил код. Спасибо
почему бред? у тебя в байте 8 бит вместо того чтобы хранить в нескольких интах, что 4/8 байт, ты хранишь всё в одном байте, потом можешь смотреть 8 битов этого байта и у тебя есть инфа, проблема только в том, что тебе нужно это парсить и тп, но чистое хранение, в этом ничего плохого нету
Может кто-нибудь объяснить: Зачем в Го сделали что интерфейс nil только если оба поля nil? Почему не возвращать nil если хотя бы одно из полей nil? Потому что в этом случае нужно 2 проверки вместо одной?
"Почему append возвращает слайс? Почему append не принимает по указателю слайс?" Подскажите, в чем смысл вопроса, если другое решение также валидно? Ведь принимать по указателю слайс также можно было реализовать, внутри такой реализации append можно было также менять исходный слайс. Т.е. область памяти в которой лежал исходный sliceHeader в самой функции заменился бы на другой с валидным len и capacity. Буду благодарен за ответ, сколько не думал, не понимаю какой был ожидаемый ответ, в видео рассуждения не очень соответствовали вопросу, ответ был больше похож почему не стоит игнорировать возвращаемый слайс из append
потому что append позволяет создать совершенно новый слайс не задев предыдущий. Но на самом деле это опасно тем, что массив внутри слайса у них окажется общий, поэтому лучше всегда расширять тот же самый слайс, чтобы не получить неочевидную ошибку
"Почему append возвращает новый слайс?" - потому что так было в LISP. Ключевое слово nil тоже было в LISP. Поведение append с nil-слайсом такое же, как в LISP
@@standarttechnology4477 это древний язык программирования с функциональной парадигмой и динамической типизацией. Сейчас уже едва ли где используется. Синтаксис и классические способы написания алгоритмов через рекурсию выносят мозг. Встретить его можно в основном в ВУЗах на IT-специальностях, если препод - ретроград
Я думаю таки знания никогда не будут лишними. Если говорить обо мне, то я старший разработчик в озон. Однако, всех своих учеников, которые входят в гошку я сразу приучаю копать поглубже.
@@ОлегКозырев-б4ц Супер! На обучение (junior) Route 256 с последующей стажировкой в OZON выпускнику 2014 года можно залететь или только студентов берут?
на самом деле - типичный собес, рынок собесов в рф скатился на дно. Это тупой экзамен который надо зазубрить. Крайне редко адекватные собесы, где общаются, спрашивают про опыт, стек, задачи и тд. в 80% какое-нибудь подкапотное дерьмо или лайфкодинги,. Вот накой разрабу знать, как разруливается дедлок в бд, если это давно уже решается на уровне базы?
А Как ты собираешься реально кодить и оптимизировать сервис, если не понимаешь, как под капотом механизмы языка работают? А алгоритмы полезная штука, хоть и не всегда стоит их юзать
Слишком много технических подробностей, которые на практике никогда не пригодятся. Типа, как устроены словари. Также отмечу что в отношении указателей и ссылок у обоих каша. У первого -- потому что не знает. У второго -- потому что писал на С++ (* там тупо нет ссылок и это слово просто синоним указателя *).
В с++ в большинстве случаев ссылка это синоним указателя, но есть кейсы, когда ссылка - это ссылка, а на счет каше непонятно где вы ее увидели А на счет деталей все зависит от того, какие задачи вы решаете, когда я только начинал и мне было нужно аля перекладывать джейсоны, то да, мне эти знания были не нужны, но в текущих задачах они мне необходимы
@@vladimir_balun_programming В С++ -- ссылка -- синоним указателя. Именно это я и написал. В С++ нет кейсов, где ссылка -- это ссылка. Потому что С++ изначально не предлагает концепцию безопасности для инвариантов памяти. С++ не разделяет абстракцию языка и аппаратный уровень. И поскольку там даже концептуально нет такого разделения -- поэтому Вы не понимаете в чём принципиальная разница между ссылкой и указателем. Каша навязанная языком. Разумеется, Вы её не увидели. Знать, как устроен словарь, в-целом, полезно. Но каким образом вычисляются хеши, как происходит доступ к значениям -- зачем? Как это влияет на результат программиста? Оптимизировать под кеш процессора? Зачем? Завтра будет другая аппаратура с другим словом кеша и другим объёмом кеша и вся это оптимизация идёт лесом. А действительно важные вопросы: идиомы языка, как писать чистый код на го, что является неприемлемым в го, как организовать проект, какие инструменты использовать, как работать по эджайл, как работать в джире, требования по выполнению задач, тестированию -- вот по этим важнейшим частям ни одного вопроса задано не было. Слабенькое собеседование. Не то надо было спрашивать. Знать язык -- это ещё не программист. Это 10% от реального необходимого объёма знаний и навыков.
@@ИванИванов-к1ь7с послушайте - это отлично, что у вас есть отдельное мнение на тему того, как следует проводить собеседования, но у меня есть свое, которое имеет право быть. В начале видео я сказал, что секция исключительно по языку, но это не значит, что не может быть дополнительных секций по тем вопросам, которые вы перечислили
Вот до сих пор не понимаю. Зачем брать, какой-нибдуь, высокоуровневый GO, а потом изучать как он, этот высокоуровневый язык работает с памятью и т.п. ерундой. Блин пишите тогда сразу на Си и всё (ну реально, самый честный язык). Завтра разработчики GO что-то поменяют и блин должен следить за этим. Где же выдуманная простота GO!? Русское беспощадное интервью. Микроконроллеры - наше всё, которых нет.
Просто Go это такое кривое поделие с повсеместно протекающими абстракциями и необходимостью писать велосипеды на каждый чих. Поэтому, если не знать кишочки, то при любом нетривиальном кейсе стреляешь в ногу (что ещё хуже - что это может быть отложенный выстрел, а потом сиди часами с дебагером). Крч по факту - простота реально выдуманная и маркетинговая, шаг в сторону от хеллоу_ворлд и получай в ногу) Но альтернатив нет, язык шустрый, компилируемый, ест мало памяти и всё таки куда проще конкурентов типа Си/С++/Раст/Д и тд и тп. Крч бизнесу ок, а разрабы со временем привыкают))
Сишников порвало))) Го это типа модерн си по заявлению авторов, часть из которых работало над си кстати. Ну типа да может неидеальный язык, но у него довольно низкий порог вхождения, но при этом позволяет быстро начать писать бэкенд по сути новый более производительный пхп.
Я понимаю тебя, о чем ты говоришь. Я работал с C#, сейчас на чистом Си. Эти знания про память и т. Д. нужно на поверхностном уровне, просто знать что это есть. Сам не понимаю когда прикладные разрабы начинают глубоко лезть в низкоуровневые тонкости.
Ох, Костик, ну ты даешь! Египетская сила, устроился Go разработчиком в Ozon и видео с интервью выложил. Да не смеши мои тапочки, балбес ты мой дорогой. Ну что за вопросы у тебя там, а ответы еще хуже! Видно, на листочке написал и заучил, как в школе перед контрольной. Мама дорогая, что же это делается, народ тут на тебя ругается, и я их понимаю. Ты бы хоть подготовился как следует, прежде чем себя в интернет выставлять. Надо же, чтобы и самому что-то понимать, а не только слова повторять. Ну ничего, может, это тебя чему-то научит. Воронины не сдаются, даже если вокруг все против. Давай, работай над собой, сынок, и может, когда-нибудь из тебя толковый разработчик выйдет. А пока... держись, Костя, и не позорь нашу фамилию!
Балун это Джуниор который в с++ не сложился а теперь перешёл на go но то что говорит вообще понятия не имеет . Видно написали на листочке вопрос ответ а второй заучил и топит сам не понимая о чем говорит . Вот такие работают в озоне за копейки .
Не знает ООП . Не полиморфизм наследование инкапсуляция . А по правилам должно так : инкапсуляция наследование полиморфизм абстракция посылка сообщений и повторное использование . Вообщем Балун тебе нужно в дауны идти хотя ты и есть джун а не собесы проводить но а про пока который одел толстовку с озон вообще разговора нет . Два Бивес и Батхин .
- Алгоритмов не будет
- Прудмай алгоритм создания строк в Go через связанные списки
😅
Это ещё не алгоритмы :D
Одно удовольствие слушать этих ребят, грамотная четкая речь, информация легко воспринимается 🤗
😂
Вообще не четкая - проблемы с артикуляцией и дикцией. Нужно очень напрягаться, чтобы понять что говорит разработчик.
@@arammikayelyan1111 хз, мне всё супер понятно 🤷♀️
Видимо, наши особенности восприятия
Олег + Владимир = топовый собес) Реально круто получилось, смотрел еще некоторые собесы от Владимира, где он почти каждый ответ вытягивал, а тут прям очень гармонично и интересно
Интересное собеседование, спасибо!
Качественный контент, всё также ожидаю Junior BE Developer (Go) roadmap
Будет, нужно еще подождать)
Вова молодца быстро растешь в медиа рад за тебя! Давай какой-нибудь тру сеньорский собес по Go (в ютубе все собесы уровня мидла, а хочется харда).
Спасибо, в скором времени все будет)
Спасибо, очень интересно!
Спасибо за видео. Коммент в поддержку!
Спасибо!
Во, даже Боря из интернов подался в Go - сто пудов топовая технология!
На проде при обходе очень большой коллекции, применил алгоритм свопа и удаления текущего элемента с конца списка, вместо O(n) из середины.
Ускорил код.
Спасибо
Если что, он у тебя все еще O(n) по операциям сравнения.
@@МихаилГригорян-ж9п Причем тут операция сравнения, если речь про удаление 😂
Супер
Объясни идею с хранением цены в битах, если не трудно, где первые два бита это копейки , остальные 6 это рубли .
Думаю тут оба просто заговорились. Бред же.:-)
почему бред? у тебя в байте 8 бит вместо того чтобы хранить в нескольких интах, что 4/8 байт, ты хранишь всё в одном байте, потом можешь смотреть 8 битов этого байта и у тебя есть инфа, проблема только в том, что тебе нужно это парсить и тп, но чистое хранение, в этом ничего плохого нету
Отличное интервью по го 👍 Токсики в комментах.
Однако интереснее было бы как раз сисдиз :)
Может кто-нибудь объяснить: Зачем в Го сделали что интерфейс nil только если оба поля nil? Почему не возвращать nil если хотя бы одно из полей nil? Потому что в этом случае нужно 2 проверки вместо одной?
"Почему append возвращает слайс? Почему append не принимает по указателю слайс?"
Подскажите, в чем смысл вопроса, если другое решение также валидно? Ведь принимать по указателю слайс также можно было реализовать, внутри такой реализации append можно было также менять исходный слайс.
Т.е. область памяти в которой лежал исходный sliceHeader в самой функции заменился бы на другой с валидным len и capacity.
Буду благодарен за ответ, сколько не думал, не понимаю какой был ожидаемый ответ, в видео рассуждения не очень соответствовали вопросу, ответ был больше похож почему не стоит игнорировать возвращаемый слайс из append
потому что append позволяет создать совершенно новый слайс не задев предыдущий. Но на самом деле это опасно тем, что массив внутри слайса у них окажется общий, поэтому лучше всегда расширять тот же самый слайс, чтобы не получить неочевидную ошибку
кажется только не sendx , receivex queue
а circular queue c sendex index , recivex index
У товарища Олега не было ли случайно ранее своего ТыТруб-канала отличной от программирования тематики? :-)
Про что и где хранится у парня смутное понимание.
Видел этого парня на другом более старшем онлайн собесе)
Что подразумевается под более старшим собесом?
@@vladimir_balun_programming ua-cam.com/video/W_ctQFFnzK0/v-deo.html
Ну вообще тут оба парня известные, так что это что-то типа диалога Платона с Аристотелем.
"Почему append возвращает новый слайс?" - потому что так было в LISP. Ключевое слово nil тоже было в LISP. Поведение append с nil-слайсом такое же, как в LISP
Всмысле новый слайс? Ну, он же копирует слайс и удаляет старый. В теории да, получается новый слайс.
Что за lisp расскажи пожалуйста?
@@standarttechnology4477 это древний язык программирования с функциональной парадигмой и динамической типизацией. Сейчас уже едва ли где используется. Синтаксис и классические способы написания алгоритмов через рекурсию выносят мозг. Встретить его можно в основном в ВУЗах на IT-специальностях, если препод - ретроград
@@zergon321только лиспы к ФП, в современной трактовке ФП, имеют очень косвенное отношение
Смотрел собес Сергея из МТС - вот реально сеньор с реальными коммерческими знаниями, а тут чисто по Go быстро прошлись, будто опросник был
Есть разные секция и это секция была исключительно по Го
@@vladimir_balun_programming хотелось более полноценное собеседование на позицию middle/senior Go разработчика в Ozon ?
@@Erdaulet100 скоро будет собеседование по вопросам, которые связаны исключительно с бэкендом
@@Erdaulet100 Можешь кинуть ссылку пожалуйста
Отличное интервью! На какую позицию необходимы такие глубокие знания, что там внутри Go?
Я думаю таки знания никогда не будут лишними. Если говорить обо мне, то я старший разработчик в озон. Однако, всех своих учеников, которые входят в гошку я сразу приучаю копать поглубже.
@@ОлегКозырев-б4ц Супер! На обучение (junior) Route 256 с последующей стажировкой в OZON выпускнику 2014 года можно залететь или только студентов берут?
Да на любую вакансию. И это ещё не глубокие знания.
Это базовые знания, в любой книге по Go это всё есть
так это не глубокие знания..
@Владимир Балун про 100 горутин и сисколы не понял, какой в итоге вывод? Apache будет быстрее?)
это один и тот же человек?
Как Буданова жизнь то потрепала, из ГУР в Го разработчики подался.
Что-то как-то лайтово, этого надо было собесить пожестче, он senior)
В будущем может сделаем собеседование посложнее)
на самом деле - типичный собес, рынок собесов в рф скатился на дно. Это тупой экзамен который надо зазубрить. Крайне редко адекватные собесы, где общаются, спрашивают про опыт, стек, задачи и тд. в 80% какое-нибудь подкапотное дерьмо или лайфкодинги,. Вот накой разрабу знать, как разруливается дедлок в бд, если это давно уже решается на уровне базы?
А Как ты собираешься реально кодить и оптимизировать сервис, если не понимаешь, как под капотом механизмы языка работают? А алгоритмы полезная штука, хоть и не всегда стоит их юзать
Супер! На обучение (junior) Route 256 с последующей стажировкой в OZON выпускнику 2014 года можно залететь или только студентов берут?
Нужно будет пройти контест на codeforces и все)
@@vladimir_balun_programming Спасибо, а сколько человек возьмут на обучение?
Слишком много технических подробностей, которые на практике никогда не пригодятся. Типа, как устроены словари. Также отмечу что в отношении указателей и ссылок у обоих каша. У первого -- потому что не знает. У второго -- потому что писал на С++ (* там тупо нет ссылок и это слово просто синоним указателя *).
В с++ в большинстве случаев ссылка это синоним указателя, но есть кейсы, когда ссылка - это ссылка, а на счет каше непонятно где вы ее увидели
А на счет деталей все зависит от того, какие задачи вы решаете, когда я только начинал и мне было нужно аля перекладывать джейсоны, то да, мне эти знания были не нужны, но в текущих задачах они мне необходимы
@@vladimir_balun_programming В С++ -- ссылка -- синоним указателя. Именно это я и написал. В С++ нет кейсов, где ссылка -- это ссылка. Потому что С++ изначально не предлагает концепцию безопасности для инвариантов памяти. С++ не разделяет абстракцию языка и аппаратный уровень. И поскольку там даже концептуально нет такого разделения -- поэтому Вы не понимаете в чём принципиальная разница между ссылкой и указателем. Каша навязанная языком. Разумеется, Вы её не увидели.
Знать, как устроен словарь, в-целом, полезно. Но каким образом вычисляются хеши, как происходит доступ к значениям -- зачем? Как это влияет на результат программиста? Оптимизировать под кеш процессора? Зачем? Завтра будет другая аппаратура с другим словом кеша и другим объёмом кеша и вся это оптимизация идёт лесом.
А действительно важные вопросы: идиомы языка, как писать чистый код на го, что является неприемлемым в го, как организовать проект, какие инструменты использовать, как работать по эджайл, как работать в джире, требования по выполнению задач, тестированию -- вот по этим важнейшим частям ни одного вопроса задано не было. Слабенькое собеседование. Не то надо было спрашивать. Знать язык -- это ещё не программист. Это 10% от реального необходимого объёма знаний и навыков.
@@ИванИванов-к1ь7с послушайте - это отлично, что у вас есть отдельное мнение на тему того, как следует проводить собеседования, но у меня есть свое, которое имеет право быть. В начале видео я сказал, что секция исключительно по языку, но это не значит, что не может быть дополнительных секций по тем вопросам, которые вы перечислили
@@vladimir_balun_programming А вот это уже интересно - в каких это случаях ссылка это не синоним указателя?
@@vladimir_balun_programming каша в бошке, школьника сразу видно.
это мидл или джун?
Этот парень сам Ютуб блогер
всё так)
Вот до сих пор не понимаю. Зачем брать, какой-нибдуь, высокоуровневый GO, а потом изучать как он, этот высокоуровневый язык работает с памятью и т.п. ерундой. Блин пишите тогда сразу на Си и всё (ну реально, самый честный язык). Завтра разработчики GO что-то поменяют и блин должен следить за этим. Где же выдуманная простота GO!? Русское беспощадное интервью. Микроконроллеры - наше всё, которых нет.
Просто Go это такое кривое поделие с повсеместно протекающими абстракциями и необходимостью писать велосипеды на каждый чих. Поэтому, если не знать кишочки, то при любом нетривиальном кейсе стреляешь в ногу (что ещё хуже - что это может быть отложенный выстрел, а потом сиди часами с дебагером). Крч по факту - простота реально выдуманная и маркетинговая, шаг в сторону от хеллоу_ворлд и получай в ногу)
Но альтернатив нет, язык шустрый, компилируемый, ест мало памяти и всё таки куда проще конкурентов типа Си/С++/Раст/Д и тд и тп. Крч бизнесу ок, а разрабы со временем привыкают))
Сишников порвало))) Го это типа модерн си по заявлению авторов, часть из которых работало над си кстати. Ну типа да может неидеальный язык, но у него довольно низкий порог вхождения, но при этом позволяет быстро начать писать бэкенд по сути новый более производительный пхп.
Я понимаю тебя, о чем ты говоришь. Я работал с C#, сейчас на чистом Си. Эти знания про память и т. Д. нужно на поверхностном уровне, просто знать что это есть. Сам не понимаю когда прикладные разрабы начинают глубоко лезть в низкоуровневые тонкости.
@@arseniinickulin7809 да, та же история по сути. Сам работаю с c# уже более 10 лет. Использую Си, но пока, в качестве хобби.
Хз, как рантайм работает, например, полезно знать. Или как память себя ведет, чтобы потом при мониторинге не офигел от увиденного
про композицию рассказал, а про разницу с агрегацией - не рассказал
Добрый день! А можете пожалуйста дать ссылку на примеры работы с ast деревом?
Компиляторы, интерпретаторы и так далее
То, что массив скорее всего ляжет на стек вообще не признак отличия от слайса. Слайс тоже может лечь на стек. Зачем это вообще говорить?
Он на Буданова немного похож😄
Пхахахаха
Ох, Костик, ну ты даешь! Египетская сила, устроился Go разработчиком в Ozon и видео с интервью выложил. Да не смеши мои тапочки, балбес ты мой дорогой. Ну что за вопросы у тебя там, а ответы еще хуже! Видно, на листочке написал и заучил, как в школе перед контрольной.
Мама дорогая, что же это делается, народ тут на тебя ругается, и я их понимаю. Ты бы хоть подготовился как следует, прежде чем себя в интернет выставлять. Надо же, чтобы и самому что-то понимать, а не только слова повторять.
Ну ничего, может, это тебя чему-то научит. Воронины не сдаются, даже если вокруг все против. Давай, работай над собой, сынок, и может, когда-нибудь из тебя толковый разработчик выйдет. А пока... держись, Костя, и не позорь нашу фамилию!
Какое глупое видео
Балун это Джуниор который в с++ не сложился а теперь перешёл на go но то что говорит вообще понятия не имеет . Видно написали на листочке вопрос ответ а второй заучил и топит сам не понимая о чем говорит . Вот такие работают в озоне за копейки .
Верно. Тупые вопросы школьника. По работе вообще другое)). И главное Балун даже не понимает, что это видио выставляет его полным школопозорником.
Где можно посмотреть твой гитхаб или записи твоих интервью?
Балун боится критики вообще токсичный человек в токсичной конторе озон . Задай ему вопрос в ответ так он и поплыл .
Хорошо, что тот, кто пишет это сообщение ни капли не токсичный человек
Не знает ООП . Не полиморфизм наследование инкапсуляция . А по правилам должно так : инкапсуляция наследование полиморфизм абстракция посылка сообщений и повторное использование . Вообщем Балун тебе нужно в дауны идти хотя ты и есть джун а не собесы проводить но а про пока который одел толстовку с озон вообще разговора нет . Два Бивес и Батхин .
*надел
Тебя автор обидел чем-то? Три простыни с хамской критикой, выглядит нездорово.
Дяденька, вспомните, как на русском писать - так и оставляйте комменты, а до тех пор держите свое "экспертное" мнение за решеточкой из зубов
Тебе бы для начала научиться складывать осмысленные предложения, прежде чем в ютубе комментить. Чтобы не выглядело, как рандомная каша из слов)