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

  1. Работал ли в команде?

    Какие роли в команде выполнял?

    Кто еще был в команде?

    Какая ответственность по задачам была в основном?

    И какие самые интересные и трудные задачи решал

  2. Что использовали для контроля версий?

    Если гит, то как вели проект?

    Как создавали ветки, заливали изменения?https://www.notion.so/sonulen/bbec41e8086f496cbaa84eb7ec2dfcd0

  3. Что сам кандитат хочет узнать о работе, тех процессе?

  4. Какие способы постановки задач использовались в ходе разработки на прежнем месте работы/в ходе обучения? Как должна выглядеть правильная система постановки задач на новом месте работы?

  5. Хочет ли развиваться?

  6. Что самому интересно?

  7. Как тебе кажется, раскрыли ли мои вопросы твои сильные стороны?

  8. Что еще стоило бы у тебя спросить?

Технические вопросы

  1. Паттерны.

    Что знает, применял ли?

    Если да, то какой нибудь пример расскажет пусть, яркий самый.

    Попросить нарисовать диаграмму классов какого-нибудь паттерна: observer / state_machine

  2. Структуры данных.

    В чем разница между массивом и списком?

    Оценка стоимости операций.

  3. ООП. Что такое полиморфизм, инкапсуляция, наследование? Для чего интерфейсы нужны?

  4. Многопоточность. Какие особенности возникают при переходе от однопоточного к многопоточному приложению? Что такое deadlock? Какие методы синхронизации есть?

  5. SOLID. Если может объяснить принцип Barbara Liskov, то топ.

  6. Dependency injection. Какие бывают способы DI (конструктор, сеттеры, IOC контейнеры)?

С++

  1. Классы Что такое конструктор и деструктор. Какие типы конструкторов бывают? В каком порядке конструктор должен заполнять члены класса? Как передать аргумент конструктору базового класса при наследовании? Поговорить про initializer list (набор аргументов в фигурных скобках). В каком порядке вызываются деструкторы при наследовании? В чем соль виртуального деструктора?