Список вопросов для собеседования разработчика по телефону

Руководитель департамента управления персоналом, попросила создать список вопросов для собеседования разработчика (программиста) по телефону. Согласно устным требованиям, вопросы разбил на блоки.

Обратите внимание, что ответ может быть не полным, ответа на вопрос может не быть совсем, просто нужно понять ширину знаний, цель - отсеять разработчиков-новичков.

1. SQL

вопрос: часто ли вы пишите SQL-запросы:
ответ: да

вопрос: что используют в SQL-запросе, чтобы сгруппировать результаты
ответ: GROUP BY

вопрос: что используют в SQL-запросе, чтобы вывести уникальный список строк
ответ: 
- DISTINCT
- GROUP BY

вопрос: что используют в SQL-запросе, чтобы упорядочить список строк
ответ: ORDER BY

вопрос: что используют в SQL-запросе, чтобы применить условие после группировки строк
ответ: HAVING

вопрос: какие JOIN-операторы вы знаете:
ответ: ожидается услышать хотя бы 2 первых:
- INNER JOIN
- LEFT JOIN
- RIGHT JOIN
- FULL OUTER JOIN
- CROSS JOIN

вопрос: что такое транзакция
ответ может быть приблизительно следующим:
- группа логически объединённых последовательных операций по работе с данными, выполненная или отмененная целиком
- ряд/стек SQL-запросов, в рамках которого либо выполняются все SQL запросы, либо не выполняется ни одного

вопрос: какие типы индексов в sql вы знаете
ответ: ожидается услышать хотя бы несколько из перечисленных ниже:
- кластеризованный
- некластеризованный / heap / куча
- уникальный / unique
- составной / composite
- покрывающий / covering

вопрос: какие структуры данных вы знаете
ответ: ожидается услышать хотя бы несколько из перечисленных тут

2. Временная сложность алгоритма

вопрос: знаете ли вы, что такое временная сложность алгоритма
ответ: да

вопрос: какая будет временная сложность алгоритма, при выборе значения по ключу в хэш-таблице, в которой нет коллизий
ответ может быть одним из следующих:
 - постоянная
 - O(1)
подсказка: читается как "О от одного", где О - буква

вопрос: какая будет временная сложность алгоритма, при нахождении значения в хэш-таблице без использования ключа
ответ может быть одним из следующих:
 - линейная
 - O(n)
подсказка: читается как "О от эн", где О - буква, n - буква

вопрос: какая будет временная сложность алгоритма, при выборе значения по ключу в хэш-таблице, в которой есть коллизии
ответ может быть одним из следующих:
 - логарифмическая
 - O(log n)
подсказка: читается как "О от лог эн", где О - буква, log - слово логарифм, n - буква

3. Протоколы передачи данных

вопрос: чем в двух словах UDP отличается от TCP
ответ: ожидается услышать что-то подобное
UDP — простой протокол, не устанавливает соединение, ненадежный, неупорядоченные данные
TCP — тяжеловесный, устанавливает соединение, упорядоченность данных

вопрос: какие протоколы прикладного уровня передачи данных TCP/IP вы знаете
ответ: ожидается услышать несколько из перечисленных ниже:
- HTTP (Hyper Text Transfer Protocol)
- FTP (File Transfer Protocol)
- POP3 (Post Office Protocol)
- SMTP (Simple Mail Transfer Protocol)
- TELNET — это протокол удаленного доступа

вопрос: какие популярные HTTP-протоколы/способы передачи данных вы знаете:
ответ: ожидается услышать все из перечисленных ниже:

- XML-RPC
- SOAP
- REST/RESTful

вопрос: объясните принципиальную разницу между SOAP и REST
ответ: REST/RESTful является архитектурным стилем, в то время как SOAP является протоколом

вопрос: какие популярные текстовые форматы для REST вы знаете:
- JSON
- XML

4. Паттерны проектирования приложения

вопрос: Вы знаете что такое паттерны проектирования приложения?
ответ: да

вопрос: какие бывают паттерны
ответ: порождающие, структурные, поведенческие

вопрос: какие вы знаете порождающие паттерны (Creational)
ответ: ожидается услышать несколько из перечисленных ниже:
1.1. Абстрактная фабрика (Abstract Factory)
1.2. Строитель (Builder)
1.3. Фабричный Метод (Factory Method)
1.4. Пул одиночек (Multiton)
1.5. Объектный пул (Pool)
1.6. Прототип (Prototype)
1.7. Простая Фабрика (Simple Factory)
1.8. Одиночка (Singleton)
1.9. Статическая Фабрика (Static Factory)

вопрос: какие вы знаете структурные шаблоны проектирования (Structural)
ответ: ожидается услышать несколько из перечисленных ниже:
2.1. Адаптер (Adapter / Wrapper)
2.2. Мост (Bridge)
2.3. Компоновщик (Composite)
2.4. Преобразователь Данных (Data Mapper)
2.5. Декоратор (Decorator)
2.6. Внедрение Зависимости (Dependency Injection)
2.7. Фасад (Facade)
2.8. Текучий Интерфейс (Fluent Interface)
2.9. Приспособленец (Flyweight)
2.10. Прокси (Proxy)
2.11. Реестр (Registry)

вопрос: какие вы знаете поведенческие шаблоны проектирования (Behavioral)
ответ: ожидается услышать несколько из перечисленных ниже:
3.1. Цепочка Обязанностей (Chain Of Responsibilities)
3.2. Команда (Command)
3.3. Итератор (Iterator)
3.4. Посредник (Mediator)
3.5. Хранитель (Memento)
3.6. Объект Null (Null Object)
3.7. Наблюдатель (Observer)
3.8. Спецификация (Specification)
3.9. Состояние (State)
3.10. Стратегия (Strategy)
3.11. Шаблонный Метод (Template Method)
3.12. Посетитель (Visitor)

вопрос: какие еще вы знаете шаблоны проектирования
ответ: ожидается услышать несколько из перечисленных ниже (хорошо, если будет упомянут Закон Деметры):
- Data Access Object (DAO) 
- Entity (сущность)
- Repository (выполняет работу с данными сущности)
- Memory Storage (выполняет работу аналогичную работе Repository или является еще более глубоким уровнем работы с данными, по отношению к Repository)
- Data Source Provider (Datasource Adapter)
- Query Object

5. Linux (линукс):

вопрос: писали ли Вы шелл скрипты?
ответ: да

вопрос: какие linux команды/утилиты используете для отслеживания работы сервера:
ответ: ожидается услышать несколько из перечисленных: ps,top,htop,netstat

вопрос: какие linux команды/утилиты применяете при чтении логов:
ответ: ожидается услышать несколько из перечисленных: tail,less,grep,vim,nano,awk

вопрос: какие linux команды/утилиты применяете при редактировании больших текстовых файлов:
ответ: ожидается услышать несколько из перечисленных: sed,awk,vim

вопрос: какие linux команды/утилиты применяете для разбиения больших текстовых файлов на маленькие:
ответ: awk

А какие бы вы задали вопросы по телефону и какой ожидали бы слышать ответ?


12.12.2017 09:58

Комментарии

для телефонного собеседования в стиле вопрос ответ, мне кажется не зайдет. С учетом предложений на рынке.
Gap | 08.08.2018 02:52
Пиздец...
Денис | 21.03.2019 13:48