Skip to content

Instantly share code, notes, and snippets.

@kalashnikovisme
Forked from evtuhovich/gist:1134998
Last active November 1, 2017 14:01
Show Gist options
  • Save kalashnikovisme/1c75485e3854e340db1784fdff1e028a to your computer and use it in GitHub Desktop.
Save kalashnikovisme/1c75485e3854e340db1784fdff1e028a to your computer and use it in GitHub Desktop.
Список вопросов для собеседования

Общие вопросы

  • динамическая и статическая типизация
  • строгая и нестрогая типизация
  • компилируемые и интерпретируемые языки

Ruby

  • принципиальное различие скриптовых и “обычных” языков
  • типизация в Ruby
  • 3 принципа ООП
  • реализация множественного наследования в ruby
  • duck typing
    • как работает утиная типизация в Ruby
  • многопоточность в ruby
  • мета-программирование
  • MRI, JRuby, Rubinious

ООП

Rails

  • путь запроса от браузера до HTML
  • что такое MVC и зачем это нужно
  • какая логика в контроллере, должна ли быть и почему
  • синхронные и асинхронные операции — предложить варианты решения
    • асихронные запросы с веб-страницы
    • ActiveJob
    • Sidekiq
    • самописный менеджер очередей (Rake + Cron, например)
  • назначение миграций
  • в каком порядке миграции
  • организация кеширования в Rails
    • includes
    • кэширование на уровне adapter БД
    • кэширование страниц
  • ActionCable
    • Redis + ActionCable

Тесты

  • зачем нужны
  • что такое TDD
  • отличие Minitest от RSpec
  • почему Ruby проекты - это очень плохо без тестов
  • отличие интеграционных тестов от юнит-тестов

Web

  • javascript, опыт работы с ним, используемые библиотеки
  • EcmaScript

React

  • Что такое виртуальный DOM?
  • В каких случаях вызывается метод render?

Базы данных

  • ACID
    • Атомарность
    • Согласованность
    • Изолированность
    • Устойчивость
  • Что такое NoSQL
  • какие NoSQL базы знают
  • что такое deadlock?

Общие вопросы

  • транзакции
    • уровни изоляций
  • блокировочные и версионные СУБД
  • индексы (зачем нужны, плюсы и минусы)
  • вьюхи
  • репликация
  • шардинг (партиционирование)
  • timeseries db

PostgreSql

  • pgBouncer — что это и зачем нужно
  • репликация в БД
  • PgQ (другие очереди)
  • синхронные и асинхронные операции
  • что такое AUTO VACUUM и зачем он нужен?

Организация разработки

Git

  • git flow
  • чем отличается merge от rebase
  • зачем нужна команда git rebase
  • методы разрешения конфликтов

DevOps

Docker

  • Что такое контейнер?
  • Чем контейнер от image отличается?

Ansible

  • В каких случаях используются?
  • В чём принципиальное отличие от Capistrano?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment