iamweekend / go-interview

:octocat: Вопросы и ответы для собеседования Back-end/Golang разработчика и не только

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Вопросы и ответы для собеседования Back-end/Golang разработчика и не только

Вместе мы разберемся!

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

Содержание

  1. Общие вопросы
  2. Вопросы по шаблонам проектирования
    • TODO
  3. Вопросы про микросервисы
    • TODO
  4. Вопросы про инфраструктуру и деплой
    • Что такое сине-зеленый деплой(blue-green deployment)?
    • Что такое Canary (канареечные развертывания)?
    • Что такое Dark (скрытые) или А/В-развертывания?
    • coming soon
  5. Вопросы про кеширование и базам данных
    • Что такое индексы в MySQL, как и для чего их использовать и создавать?
    • Что такое составной индекс, как и для чего их использовать и создавать?
    • Как использовать индексы в JOIN запросах Mysql?
    • Что такое частичные индексы, как и для чего их использовать и создавать?
    • В чем отличия InnoDB и MyISAM?
    • Возможен ли JOIN со вложенными запросами, как?
    • Что такое дедлоки (deadlock), почему возникают, как можно недопускать?
    • Что такое HAVING, что он делает как и зачем его использовать?
    • Разница между WHERE и HAVING и можно ли использовать HAVING без группировки данных?
    • Что такое EXPLAIN?
    • Как узнать версию Mysql?
    • Как можно оптимизировать ORDER BY RAND()?
    • Как удалить индекс MySQL?
    • Как правильно выбрать тип данных в Mysql, когда нужны:
      • NULL значения, когда лучше использовать?
      • Целые числа (TINYINT, SMALLINT, INT, BIGINT) и UNSIGNED, длинна числовых типов?
      • Большие числа: demical, что это и как работает?
      • Float | Double VS Demical, в чем разница, что и как использовать?
      • Строки VARCHAR и CHAR, отличия когда лучше использовать?
      • BLOB / TEXT, чем отличаются, как выполнять сортировку по полям данного типа?
      • ENUM, когда может пригодится?
      • DATETIME / TIMESTAMP, в чем их разница, какие максимальные значения?
    • Когда и зачем может пригодиться денормализация данных?
    • Что такое шардинг и репликация?
    • coming soon
  6. Вопросы по языку Golang
  7. Вопросы о распределённых системах
    • Как тестировать распределённую систему?
    • coming soon
  8. Вопросы по организации кода
    • Как тесты и TDD влияют на организацию кода?
    • В чём разница между сцеплением и связанностью?
    • Почему в TDD тесты пишутся прежде кода?
    • Если у вашего кода плохая организация, как вы это поймёте?
  9. Вопросы от Данила Подольского на позицию Senior Golang Backend Developer в компанию Evrone
    • Go — императивный или декларативный? А в чем разница?
    • Что такое type switch?
    • Как сообщить компилятору, что наш тип реализует интерфейс?
    • Как работает append?
    • Какое у slice zero value? Какие операции над ним возможны?
    • Как устроен тип map?
    • Каков порядок перебора map?
    • Что будет, если читать из закрытого канала?
    • Что будет, если писать в закрытый канал?
    • Как вы отсортируете массив структур по алфавиту по полю Name?
    • Что такое сериализация? Зачем она нужна?
    • Сколько времени в минутах займет у вас написание процедуры обращения односвязного списка?
    • Где следует поместить описание интерфейса: в пакете с реализацией или в пакете, где этот интерфейс используется? Почему?
    • Предположим, ваша функция должна возвращать детализированные Recoverable и Fatal ошибки. Как это реализовано в пакете net? Как это надо делать в современном Go?
    • Главный недостаток стандартного логгера?
    • Есть ли для Go хороший orm? Ответ обоснуйте.
    • Какой у вас любимый линтер?
    • Можно ли использовать один и тот же буфер []byte в нескольких горутинах?
    • Какие типы мьютексов предоставляет stdlib?
    • Что такое lock-free структуры данных, и есть ли в Go такие?
    • Способы поиска проблем производительности на проде?
    • Стандартный набор метрик prometheus в Go -программе?
    • Как встроить стандартный профайлер в свое приложение?
    • Overhead от стандартного профайлера?
    • Почему встраивание — не наследование?
    • Какие средства обобщенного программирования есть в Go?
    • Какие технологические преимущества языка Go вы можете назвать?
    • Какие технологические недостатки языка Go вы можете назвать?
  10. Популярные задачи на собеседованиях

Как мне добавить свой вопрос-ответ?

About

:octocat: Вопросы и ответы для собеседования Back-end/Golang разработчика и не только


Languages

Language:Go 100.0%