Открытое собеседование на Go-разработчика | Навыки

Поділитися
Вставка
  • Опубліковано 14 січ 2025

КОМЕНТАРІ • 54

  • @wildjoe6259
    @wildjoe6259 2 роки тому

    Как к Вам записаться на менторскую программу? В телеге вроде тема была, но проект был еще в стадии разработки (насколько я понял). Дайте контакты кому писать?

    • @Skills_mentor
      @Skills_mentor  2 роки тому

      Можете запустить нашего бота: t.me/mock_interviews_bot?start=youtube_18_05_2022
      И после команды /start в меню выбрать "Менторская программа".

    • @wildjoe6259
      @wildjoe6259 2 роки тому

      @@Skills_mentor Спасибо!

  • @tumenit
    @tumenit 2 роки тому +7

    Огонь, обожаю такие видосы!

  • @hoffmanmilo
    @hoffmanmilo Рік тому +23

    Оба несут вещи, которые не понимают - "три машинных слова". здесь у меня машинное слово 4 байта, здесь уже 8. "Есть виртуальная память, есть резидентная". Пустая структура у них стала весить 8 байт, а int стал 4 байтным (в практической задаче с горутинами и каналами)🤦‍♂

  • @art3a
    @art3a 2 роки тому +23

    http - протокол седьмого, прикладного уровня!

  • @get_out_it
    @get_out_it 2 роки тому +21

    В вычислительной и иной программируемой технике машинным словом называется единица данных, которая выбрана естественной для данной архитектуры процессора.
    Каким боком вы приравняли машинные слова к струтуре слайс - непонятно.

    • @hoffmanmilo
      @hoffmanmilo Рік тому +5

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

    • @flamehowk
      @flamehowk Рік тому +1

      @@hoffmanmilo Парень всего 5 лет как программирует, чему Вы удивляетесь...

    • @hoffmanmilo
      @hoffmanmilo Рік тому +4

      @@flamehowk это нормально, что он не знает много. Меня интервьюер немного расстроил, он не поправляет его, просто соглашается. Значит сам не сильно опытней.

  • @akolchanov83
    @akolchanov83 Рік тому +4

    Не надевайте на созвоны рубашку телесного цвета, есть большая вероятность что вас запомнят именно по ней а не то как хорошо вы знаете и как много умеете.

  • @ep4sh
    @ep4sh Рік тому +3

    В какой момент времени Go программисты стали байтоориентировнными? Только и разговоры про байты, офсеты, экономию места под микроскопом. Я ни разу не видел на собесах Ruby, как спрашивают про устройство интерпретатора или про формат метаданных в гемах. Допускаю, что живу в другом измерении.

    • @sweetcapitan5690
      @sweetcapitan5690 Рік тому +3

      В наследство от Гугл осталось, плюс в Го перешло много байтоебов из С/С++. Но сравнение не корректное. Руби сопоставим с питоном, а го берут уже когда питон начинает душить и его не хватает, по этому имеем требования к пониманию работы на низких уровнях.

    • @НикитаК-б8ю
      @НикитаК-б8ю 11 місяців тому +4

      Программирую на Go с 2015 года и вот что скажу про собесы на Go - на них вы очень редко услышите вопросы по Алгоритмы, структуры данных, CI, CS, про паттерны проектирования и конкретные технологии вроде message brokers, olap, oltp и т.д. Особенно если собеседование на сениора. Вас буду спрашивать только про рантайм, обязательно не просто как работает GC в целом, а про его трехцветный алгоритм, про то, как же все таки устроена мапа в go - на списках или целиком на массиве - это ооочень важно! Обязательно спросят про устройство интерфейса, про кооперативный или нет планировщик и т.д.
      Скажу, что с одной стороны, какой - то уровень IQ это определяет - а код у разработчика с более высоким уровнем IQ будет среднеарифметически лучше. С другой - это реально приводит к ситуациям, когда какой - нибудь ушлый джун за одну ночь "все перечитал" и устроился на работу синиором - реальные были кейсы, когда устраивались "сениоры" которые не знают, что такое grpc, не работали с kafka, не пользовались cubectl и не знают, что такое Makefile.
      К примеру, по JS такого ни разу не помню - объективно, почти всегда можно выявить реальный уровень кандидата, объективно, экосистема JS на прикладном уровне намного сложнее, чем GO - и на ровне конструкций языка и на уровне фремворков.
      А Go - язык для микросервисов, порог вхождения для него низкий, что касается горутин и асинхронной работы - в 95% случаев разработчикам это не нужно от слова СОВСЕМ! В работе пользовался только разве что Errgroup раскидать задачи, timeAfter пару раз для таймаута ну sync Pool разок для работы с файлами, mutex с мапой - и все! 99% работы вообще не затрагивало фичи Golang.
      В то время как в Js если ты не знаешь, как работает асинхронный код и паттерны работы с промисами - ты как сеньор вообще далеко не уйдешь. Тебе надо знать пару фреймворков, vanilla, DOM, promises, closure, препроцессоры вроде Typescript и т.д. - а в Go, объективно, люди от нехрен делать в рантайм лезут

  • @nya5551
    @nya5551 2 роки тому +3

    Михаил - лучший ментор в технопарке !

  • @alexandrfolomkin9380
    @alexandrfolomkin9380 2 роки тому +16

    задача на код решена неправильно. Канал не закрыт эт раз, второе переменная i из цикла захвачена замыканием - в результате скорее всего напчает 99 везде

    • @aliaksandrmazhaika
      @aliaksandrmazhaika 2 роки тому +1

      Напечатает везде 100, хоть это немного и неожиданно, попробую объяснить: запустит горутины от 0 до 99, добавит к счетчику 1 (i станет =100) убедится что 100

    • @IvanSmaliakou-v1x
      @IvanSmaliakou-v1x 2 роки тому

      Хах, точно!

    • @AlexeyPetushkov
      @AlexeyPetushkov Рік тому

      Там интересней - результат исполнения будет отличаться каждый раз, но 100-к будет больше всего. Вот в JS были б одни сотки, а здесь все таки более честная параллельность

  • @АлександрЛейтан-ы8л

    Александр лучший ментор! Профессионально проведенное интервью.

  • @emotional_stuff
    @emotional_stuff 6 місяців тому +1

    крепкий чел

  • @ПавелЩербаков-ц6ч
    @ПавелЩербаков-ц6ч 2 роки тому +4

    Миша топ - senior уровень, фундаментальные вещи знает

  • @dmitrvy
    @dmitrvy 9 місяців тому

    25:00
    в го нет адресной арифметики, это грубая ошибка

    • @пипибиба
      @пипибиба 8 місяців тому

      Есть, но её лучше не использовать. Через uintptr

    • @Elel-p4q
      @Elel-p4q 6 місяців тому

      Ну он тут скорее не про само ее использование в го, а про непосредственно механизм доступа к i-тому элементу в реализации массивов как структуры данных. так что грубой ошибки не совершил)

    • @gkavboy
      @gkavboy 6 місяців тому

      Автор комментария слышал звон...

  • @forbidden_content
    @forbidden_content 10 місяців тому +2

    Что за чепуху оба прогнали про контейнеризацию и виртуализацию?

  • @xDemoNStranTx
    @xDemoNStranTx 2 роки тому +14

    1.25.40 - rofl - HTTP сетевой протокол.

    • @mytasmic
      @mytasmic Рік тому

      Сначала причем интервьюируемый всё правильно сказала а потом вот это =(

  • @ИгорьТ-х6м
    @ИгорьТ-х6м 2 роки тому

    Отличная аналогия livelock

  • @ВалдисПельш-е4в
    @ВалдисПельш-е4в Рік тому +1

    Уже второй раз слышу вопрос "Может ли быть ситуация, когда итерироваться по слайсу быстрее чем по мате?" Вы серьезно? в моей картине мира по слайсу практические всегда быстрее итерироваться чем по мапе, Можно же сказать что итерация по слайсу это практически итерация по массиву, непрерывному участку памяти из кеша или кучи, плюс у проца есть кеш куда могут попадать участки из этого массива и не всегда придется ходит в оперативу. А меп это намного более сложная структуа, окей изначально у нас был непрерывный участок с бакетами, но он намного сложнее устроен, есть оверхед на просмотр, плюс если много коллизий, место бакета в бакете закончилось, он начинает ссылаться на другой бакет по ссылке.

    • @НикитаК-б8ю
      @НикитаК-б8ю 11 місяців тому

      Исходя из последующего ответа собеседуемого видно, что собеседующий явно оговорился. Он очевидно хотел сказать "когда поиск по слайсу быстрее, чем по мапе". И такая ситуация может быть т.к. поиск для мапы O(n), для слайса Ω(lg n)(не рассматривая граничный случай Ω(1). И O(n) для мапы собеседуемый назвал(100% коллизии) и Ω(lg n) для слайса (бинарный поиск или дихотомия для предварительного отсортированного слайса). На самом деле был бы хороший вопрос если бы был задан корректно, т.к. как показывает практика, процентов 70 программистов не знают ни про три уровня асимптотической сложности алгоритмов, ни про то, что поиск по слайсу можно проводить быстрее, чем за линейное время, ни про то, что поиск по мапе может быть не константный, а линейный

  • @emotional_stuff
    @emotional_stuff Рік тому

    вот это я понимаю уровень

  • @СашаПлешаков-ы6х
    @СашаПлешаков-ы6х 2 роки тому +1

    не очень понял про сборщик мусора в контексте джавы. На сколько я понял, в го он не не то чтобы просто нормальный(stop the world, куча потребляемой памяти и прочее), так чем же он лучше джавовского? вопрос не провокационный, просто хочется понять))

  • @emotional_stuff
    @emotional_stuff Рік тому

    хотел написать в бота, получил usernamenotfound

  • @mediazador
    @mediazador Рік тому +1

    Небольшой коммент по поводу того, можно ли передавать в контексте логгер. Александр говорит, что это не очень хорошая практика. Сегодня послушал выступление Нежибицкого Ильяса из Озона, с его слов, они как раз логгер передают в контексте. Противоречие какое-то получается :) Это видимо тот случай, когда в теории все хорошо и красиво, а на практике ...

    • @pixel9496
      @pixel9496 Рік тому +2

      это называется что в каждой команде, даже внутри одной компании, может быть все по-разному

    • @AndreiDikun
      @AndreiDikun Рік тому

      В каждой команде надо учить их религиозные убеждения. И там лидер команды будет убеждать, что именно их подход самый правильный.

  • @VakaramGolang
    @VakaramGolang Рік тому

    Учить и учить короче ) ну оооооки

  • @flamehowk
    @flamehowk Рік тому +5

    Понятно почему невозможно устроиться на работу... Я программирую с 1992-го, а собеседуют меня ребята, которые занимаются разработкой по 5 лет.
    Ну да ладно, через пару лет, когда я выпущу на рынок свой продукт и он начнет зарабатывать, возможно я еще спасибо скажу таким вот "собеседователям"...

    • @misteranderson6058
      @misteranderson6058 Рік тому

      А что с собесом не так?

    • @flamehowk
      @flamehowk Рік тому

      @@misteranderson6058 В сообщении выше все очевиднейшим образом сказано.

  • @luckytima2315
    @luckytima2315 2 роки тому

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

    • @wskeal86
      @wskeal86 2 роки тому +9

      К менторской программе я никакого отношения не имею. Но как практикующий гошник, работавший в известных (и не очень) компаниях, отвечу, нет, не стоит.
      Базовые аспекты изучаются за несколько недель, максимум месяц. В этот же месяц вы прочитаете Effective Go и другие рекомендации к написанию кода на go. А более глубоко вы начнете разбираться через год full-time работы на go. Вот тогда, возможно, ментор понадобится. Поскольку всякие tricky-questions из этого собеса черпаются в не официальной доке к языку, а в доп. источниках, которые не так просто найти.

    • @luckytima2315
      @luckytima2315 2 роки тому

      @@wskeal86 спасибо большое

  • @misteranderson6058
    @misteranderson6058 Рік тому

    Ого, я полумидл оказывается

  • @ahmedrapira7610
    @ahmedrapira7610 2 роки тому

    опана ) привет

  • @PavelAAlexeev
    @PavelAAlexeev 10 місяців тому

    дЕфер, хёрт бит, ну ребята, ну блин..

  • @НикитаК-б8ю
    @НикитаК-б8ю 11 місяців тому

    Задачу можно было и намного элегантнее через atomic решить:
    func main() {
    n := 100
    var cnt atomic.Int32
    ch := make(chan struct{})
    for i := 0; i < n; i++ {
    go func(i int) {
    fmt.Println(i)
    cnt.Add(1)
    if int(cnt.Load()) == n {
    ch

  • @flamehowk
    @flamehowk Рік тому +1

    "В слайсе поиск за 1, и в мапе тоже за 1", "В мапе есть хэши, а слайс - он тупой...". Ну, то есть, про древовидные структуры ни один ничего не знает и как ведется поиск листьев по веткам - никто понятия не имеет... скорей всего даже не понимают - зачем вообще там хэши нужны.