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

แชร์
ฝัง
  • เผยแพร่เมื่อ 28 ก.ย. 2024
  • Оставить заявку на менторскую программу Эйч Навыки, чтобы перейти на Go, сменить работу, апнуть грейд или зарплату: t.me/skills_me...
    Подробнее про Эйч Навыки: hcareers.notio...
    Гофер-комьюнити: t.me/naviky_chat
    Сервис развития карьеры Эйч: h.careers/?utm...

ความคิดเห็น • 55

  • @wildjoe6259
    @wildjoe6259 2 ปีที่แล้ว

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

    • @Skills_mentor
      @Skills_mentor  2 ปีที่แล้ว

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

    • @wildjoe6259
      @wildjoe6259 2 ปีที่แล้ว

      @@Skills_mentor Спасибо!

  • @hoffmanmilo
    @hoffmanmilo ปีที่แล้ว +21

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

  • @nya5551
    @nya5551 2 ปีที่แล้ว +3

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

  • @get_out_it
    @get_out_it 2 ปีที่แล้ว +21

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

    • @hoffmanmilo
      @hoffmanmilo ปีที่แล้ว +5

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

    • @flamehowk
      @flamehowk ปีที่แล้ว +1

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

    • @hoffmanmilo
      @hoffmanmilo ปีที่แล้ว +4

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

  • @alexandrfolomkin9380
    @alexandrfolomkin9380 2 ปีที่แล้ว +17

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

    • @aliaksandrmazhaika
      @aliaksandrmazhaika 2 ปีที่แล้ว +1

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

    • @IvanSmaliakou-v1x
      @IvanSmaliakou-v1x ปีที่แล้ว

      Хах, точно!

    • @AlexeyPetushkov
      @AlexeyPetushkov 8 หลายเดือนก่อน

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

  • @xDemoNStranTx
    @xDemoNStranTx 2 ปีที่แล้ว +14

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

    • @mytasmic
      @mytasmic 11 หลายเดือนก่อน

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

  • @ИгорьТ-х6м
    @ИгорьТ-х6м 2 ปีที่แล้ว

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

  • @forgotten_forbidden
    @forgotten_forbidden 6 หลายเดือนก่อน +2

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

  • @СашаПлешаков-ы6х
    @СашаПлешаков-ы6х ปีที่แล้ว +1

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

  • @emotional_stuff
    @emotional_stuff ปีที่แล้ว

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

  • @flamehowk
    @flamehowk ปีที่แล้ว +5

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

    • @misteranderson6058
      @misteranderson6058 ปีที่แล้ว

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

    • @flamehowk
      @flamehowk ปีที่แล้ว

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

  • @ahmedrapira7610
    @ahmedrapira7610 2 ปีที่แล้ว

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

  • @flamehowk
    @flamehowk ปีที่แล้ว +1

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

  • @art3a
    @art3a 2 ปีที่แล้ว +23

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

  • @akolchanov83
    @akolchanov83 9 หลายเดือนก่อน +4

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

  • @ep4sh
    @ep4sh 11 หลายเดือนก่อน +3

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

    • @sweetcapitan5690
      @sweetcapitan5690 10 หลายเดือนก่อน +3

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

    • @НикитаК-б8ю
      @НикитаК-б8ю 7 หลายเดือนก่อน +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, объективно, люди от нехрен делать в рантайм лезут

  • @tumenit
    @tumenit 2 ปีที่แล้ว +7

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

  • @ПавелЩербаков-ц6ч
    @ПавелЩербаков-ц6ч 2 ปีที่แล้ว +4

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

    • @MrNewtasker
      @MrNewtasker ปีที่แล้ว +1

      Про реализацию мап, очень слабый и непонятный ответ

    • @МихаилСуходолов-о7щ
      @МихаилСуходолов-о7щ 11 หลายเดือนก่อน

      про мапы да, ответы неправильные

  • @ВалдисПельш-е4в
    @ВалдисПельш-е4в 10 หลายเดือนก่อน +1

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

    • @НикитаК-б8ю
      @НикитаК-б8ю 7 หลายเดือนก่อน

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

  • @НикитаК-б8ю
    @НикитаК-б8ю 7 หลายเดือนก่อน

    Задачу можно было и намного элегантнее через 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

  • @mediazador
    @mediazador ปีที่แล้ว +1

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

    • @pixel9496
      @pixel9496 ปีที่แล้ว +2

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

    • @AndreiDikun
      @AndreiDikun 9 หลายเดือนก่อน

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

  • @PavelAAlexeev
    @PavelAAlexeev 7 หลายเดือนก่อน

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

  • @АлександрЛейтан-ы8л
    @АлександрЛейтан-ы8л ปีที่แล้ว

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

  • @emotional_stuff
    @emotional_stuff 2 หลายเดือนก่อน +1

    крепкий чел

  • @misteranderson6058
    @misteranderson6058 ปีที่แล้ว

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

  • @sersoftin
    @sersoftin 10 หลายเดือนก่อน

    Зачем чел качает головой все время :D

  • @VakaramGolang
    @VakaramGolang ปีที่แล้ว

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

  • @emotional_stuff
    @emotional_stuff ปีที่แล้ว

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

  • @dmitrvy
    @dmitrvy 6 หลายเดือนก่อน

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

    • @пипибиба
      @пипибиба 4 หลายเดือนก่อน

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

    • @Elel-p4q
      @Elel-p4q 2 หลายเดือนก่อน

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

    • @gkavboy
      @gkavboy 2 หลายเดือนก่อน

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

  • @sersoftin
    @sersoftin 10 หลายเดือนก่อน

    Вопросы уровня Джуниор.

  • @luckytima2315
    @luckytima2315 2 ปีที่แล้ว

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

    • @wskeal86
      @wskeal86 2 ปีที่แล้ว +9

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

    • @luckytima2315
      @luckytima2315 2 ปีที่แล้ว

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