Requirements

Если Вы решили пройти собеседование в нашей Компании на позицию разработчика, ознакомьтесь, пожалуйста, с  нашими минимальными техническими требованиями.

Так как мы стремимся производить качественный продукт для наших клиентов, мы считаем, что для разработчика, независимо от знания технологии, на которой он специализируется, крайне важно не забывать основы программирования  – по нашему опыту, это напрямую связано с качеством кода. Поэтому на собеседовании часть времени мы уделим общению по ООП и структурам данных.

Ниже приведен список вопросов, которые мы задаем на собеседовании, чтобы у Вас была возможность подготовиться и вспомнить то, что забылось.

ООП Вопросы.

1. Что такое ООП? Какие основные принципы? Что такое класс, свойство?

Основное отличие от функционального программирования?

2. Что такое наследование? Зачем применяется? Необходимо привести несколько примеров применительно к области разработки, платформе разработки (минимум 3).

3. Что такое инкапсуляция? Зачем нужна? Что такое области доступности (видимости), как они определяются?  Необходимо привести несколько примеров применительно к области разработки, платформе разработки.

4. Что такое полиморфизм? Зачем он нужен, где применяется? Что такое интерфейс, абстрактный класс? Почему нельзя создать объект, в котором есть абстрактные методы? Необходимо привести не менее 5 примеров применительно к области разработки, платформе разработки.

5. Что такое паттерны программирования? Какие бывают? Зачем нужны?

6. Что такое Singleton, MVC, Observer? Необходимо привести по примеру использования для Singleton, MVC, Observer.

Структуры данных. Темы и Вопросы.

1. Базовые типы данных – char, short, int (integer), long, float, double. Рассказать о каждом типе, чем отличаются? В каком случае, какой тип лучше использовать?

2. Размерность данных. Как данные размещаются в памяти?

3. Объединение данных в структуры данных. Размещение структур данных в памяти.

4. Фреймворк Collections. Размещение в памяти. Преимущества и недостатки каждого типа в зависимости от решаемых задач.

5. Hash функция. Как применяеться для работы всех Hash коллекций.

6. Выбор модели данных в соответствии с решаемыми задачами.

Это не полный перечень вопросов, а только самые базовые, без которых разработчик не может вырасти в настоящего профессионала. Мы будем пополнять этот список, поэтому следите за обновлениями.

Надеемся на встречу и продуктивное общение!