Вопросы на собеседовании

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

Задания разделены на 3 категории:

  • B позволяет оценить базовые знания, основы программирования и насколько хорошо владеете программами необходимыми для разработки продуктов
  • S позволяет оценить глубину знаний в той или иной части языка программирования, а так же узнать о знании смежных технологий
  • Q собраны вопросы по разработке масштабируемых высоконагруженных систем.

Категория B

1. Общие вопросы (можно задавать их по телефону)

2. Опишите ситуации, когда функциональное программирование лучше объектно-ориентированного.

3. Расскажите о паттернах. В каких случаях не стоит их использовать? Какие минусы при их использовании?

4. Расскажите об используемых Вами фреймворках (программных каркасах). В чем их плюсы? Для каких задач лучше использовать существующий фреймворк, а когда лучше все написать самому?

5. В чем плюсы и минусы шаблонизации? С какими трудностями Вы сталкивались в работе с шаблонами?

6. В чем плюсы использования систем контроля версий? Какие сложности при работе с ним у Вас возникали?

7. При работе в команде, каким бы местам в разработке, Вы бы уделили большее внимание? Какие бы соглашения (Coding Conventions) Вам бы помогли в командной разработке?

8. Какими баг-трекерами Вы пользовались? В чем плюсы и минусы использования?

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

Категория S

Задание S1:
Расскажите, в каких случаях лучше использовать Apache, nginx, haproxy и т.п.

Задание S2:
Расскажите о использовании NoSQL. Какие сложности возникают при использования? Что бы Вы хотели улучшить?

Задание S3:
Взаимная блокировка (deadlock) - что это такое и как решить. Пример возникновения ситуации:

Транзакция 1 Транзакция 2 
select name from events where id = 1 for update
select name from events where id = 2 for update
select name from events where id = 2 for update 
select name from events where id = 1 for update

Описание процесса одновременного доступа:

Транзакция 1: блокирует строку 1 и продолжает работу
Транзакция 2: блокирует строку 2, пытается заблокировать строку 1 и виснет
Транзакция 1: пытается заблокировать строку 2

Классическое минимально-затратное решение: повторение транзакции по которой вернулось исключение дедлока, в исключении даже подсказка приходит: 1213 Deadlock found when trying to get lock; try restarting transaction

Задание S4: SQL

Задание S5: SQL

Задание S6:
Нужно разработать систему для организации работу между почтовым сервером и front-end приложением. Опишите следующие моменты:

  • Какой формат обмена данными, Вы бы использовали, для минимального трафико-обмена?
  • В чем плюсы и минусы выбранного Вами формата?

Категория Q

Задание Q1:
Есть проект, суть которого в продаже автомобилей. Требования у заказчиков такие: версионность данных (как Wikipedia), возможность расширения моделей данных (можно добавить к описанию автомобиля любое свойство, например наличие модинга). Опишите следующие моменты:
Какую базу данных лучше всего использовать?
Как реализовать версионность в данном случае?
Как реализовать возможность раcширения моделей?
Какова будет конечная структура базы данных?
Какие сложности могут возникнуть в реализации проекта?

Задание Q2:
Планируется проект, рассчитанный на большое количество информации, для этого изначально планируется использовать более 6 серверов с MySQL базами данных (есть возможность докупить любое количество серверов). Опишите следующие моменты:
Как распределить нагрузку между всеми серверами?
Как реализовать максимальную стабильность работы серверов?
Как можно снизить загрузку серверов?
Оптимально ли использовать MySQL? Каковы плюсы и минусы использования?

Задание Q3:
От одного из заказчиков поступает просьба улучшить их проект. Проблема в проекте в том, что он не справляется с нагрузкой. Информация о проекте: сервис блогинга идентичный LiveJournal, 2 сервера (на одном PHP, на другом MySQL ), PHP 5.1, MySQL 5, Apache 2, RedHat Enterprise Linux. По умолчанию считаем, что архитектура проекта правильная, код может частично модифицироваться, улучшения дописываются к существующему коду. Опишите следующие моменты:
Что нужно изменить/добавить в сервисе, для стабильной работы?
Оптимальная ли конфигурация? Нужно ли что-либо в ней изменять?
Приведите примеры улучшений при малом финансировании ( до 500,000 руб.) и при большом (более 50,000,000 руб.).

Задание Q4:
Поступило предложение от заказчика, на создание аналога сервиса микроблогинга Twitter. На Вас ложится задача разработки первой версии архитектуры проекта. По умолчанию считаем, что заказчик готов предоставить неограниченные средства. Опишите следующие моменты:
Какую конфигурацию программной части Вы бы составили для проекта (Операционная система, языки программирования, база данных, фреймворки или сторонние разработки)? Опишите в чем плюсы вашей конфигурации.
Какие слабые стороны возможны у данного проекта? Какие решения Вы можете предложить?
Опишите схему внутренней работы проекта.

Источник: 1

Оцени публикацию:
  • 11,46
Оценили: 11


Комментарии посетителей:

  • особенно q3 - бредовей вопроса ещё не встречал:-X
    особенно "Оптимальная ли конфигурация? Нужно ли что-либо в ней изменять?
    Приведите примеры улучшений при малом финансировании ( до 500,000 руб.) и при большом (более 50,000,000 руб.)." - а какая конфигурация изначально? мож там два селерона по 1ггц с оперативой по 64м? + логи смотреть , загрузку системы
    23 февраля 2011, 16:52 коммент полезен : +1 # Anonim
  • нормальный вопрос, просто если ты работаешь в мелкой компании как я, то наверняка не с привычки видеть такие суммы затраченные на железки
    23 февраля 2011, 17:49 коммент полезен : 0 # Admin
  • А варианты ответов есть?:)
    17 октября 2011, 16:35 коммент полезен : +1 # Гость
  • Бред, а не вопросы. Почитал. Нельзя дать однозначные ответы на некоторые вопросы. А уж на абстрактные, так и вообще отвечать не хочется. Почти на любой вопрос 1001 решение. А вообще ответ один: как удобнее и быстрее!
    21 ноября 2011, 14:02 коммент полезен : +1 # Ecxo
  • Вот ещё тут можно пройти тесты по php. Тестов пока не так много,но думаю будут увеличивать их количество. <a href="http://php-include.ru/spisok_zadani" target="_blanck">http://php-include.ru/spisok_zadani</a>
    19 декабря 2011, 07:26 коммент полезен : +1 # Nikolai
  • Дебильные вопросы по большому счету - чем дальше в лес, тем больше бред. Это, наверное ответы в учебниках вуза искать???)) Так как напрягая мозг, можно ответить, если есть один однозначный "утвердительный" ответ, не факт что верный, при этом все познания отвечающего  сводятся лишь к теоретическим. (На практике нужно иметь больше информации по многим вопросам из списка, где кстати "при чем тут php" вообще).
    И кстати, этот тест скорее всего пройдут люди шаблонно-мыслящие. Которые мыслят так же как и "экзаменатор".
    29 марта 2012, 07:39 коммент полезен : +4 # Vbps
  • Вот тут нашел много интересных вопросов с собеседований в реальные компании http://igkuz.ru/blog/tags/sobesedovanie/, некоторые из них достаточно общие, но есть и именно для php
    04 декабря 2013, 21:50 коммент полезен : +2 # GuestPHP
  • Мне больше вопросы и задания из этой статьи понравились: unetway.com/blog/spisok-voprosov-i-zadac-pri-sobesedovanii-php-programmista/
    02 марта 2019, 20:09 коммент полезен : 0 # Максим (гость)

Предложения и пожелания:

 

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2019 YaPro.Ru

Лебеденко Николай Николаевич
Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter