Вернуться в видеотеку

Открытое собеседование на Go-разработчика, часть 1

Открытое мок-собеседование по Go с разбором теории, кода, конкурентности и алгоритмов. В конце — обратная связь кандидату и ответы на вопросы о развитии карьеры разработчика.

Источник: Эйч Навыки — менторская программа

Открыть на YouTube

Таймлайн

Коротко о видео

Запись открытого учебного собеседования: Java-разработчик Павел, переходящий на Go, отвечает на вопросы Саши по модели Go, слайсам, сборке мусора, указателям, map, каналам, горутинам и алгоритмам. В практической части он проектирует периодический мониторинг сайтов с контекстом, тикером и параллельными запросами, а затем решает задачу сжатия строки. После интервью Саша разбирает ответы: отмечает сильные стороны и точки роста, в частности необходимость учитывать ограничение параллелизма и быстрее писать код на Go; это его оценка в рамках мок-интервью. Остальная часть вебинара посвящена вопросам о подготовке, уровнях разработчиков и рекламе менторской программы «Эйч Навыки».

Затронутые темы

Что взять на заметку

  • На интервью полезно не просто называть понятия Go, а рассуждать о последствиях: например, subslice удерживает ссылку на исходный массив и может не дать сборщику мусора освободить память.
  • Для задач с каналами важно определить момент закрытия: закрывать канал следует после завершения всех отправляющих горутин, иначе range может ждать бесконечно.
  • В задаче обхода сайтов нужны context для отмены, ticker для периодичности, закрытие HTTP response body и ограничение числа одновременных запросов, а не горутина на каждый сайт без лимита.
  • При решении алгоритмической задачи стоит сначала проговорить инвариант и крайние случаи; в сжатии строки особенно важно дописать последнюю серию символов после прохода.
  • По мнению интервьюера, знания концепций и опыт кандидата важнее случайной синтаксической ошибки при переходе с другого языка, но на собеседовании скорость решения всё равно влияет на оценку.
  • Для роста до senior участники считают важными автономность, ответственность за результат, умение договариваться и решать проблемы команды, а не только написание кода.

Рекомендуем посмотреть