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

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

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

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

Категория B

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

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

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

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

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

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

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

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

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

Категория S

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

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

3. Взаимная блокировка (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

4. SQLSQL

5. что такое:

  • ACID (атомарность, согласованность, изолированность, надежность)
  • BASE (базовая доступность, гибкое состояние, согласованность в конечном счете)
  • CAP (согласованность, доступность, устойчивость к разделению), утверждающей, что для распределенных систем возможно выполнение только двух из трех свойств

6. Знакомы ли Вам следующие понятия/термины/определения:

Категория Q

1. Есть проект, суть которого в продаже автомобилей. Опишите следующие моменты:

  1. Какую базу данных лучше всего использовать и почему
  2. Как реализовать версионность в данном случае
  3. Как реализовать возможность раcширения моделей
  4. Какова будет структура базы данных
  5. Какие сложности могут возникнуть в реализации проекта

2. Планируется проект, рассчитанный на большое количество информации (есть возможность докупить любое количество серверов). Опишите следующие моменты:

  1. Как распределить нагрузку между всеми серверами
  2. Как реализовать максимальную стабильность работы серверов
  3. Как можно снизить загрузку серверов
  4. Оптимально ли использовать выбранную Вами базу данных. Каковы плюсы и минусы использования

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

  1. Что нужно изменить/добавить в сервисе, для стабильной работы?
  2. Оптимальная ли конфигурация? Нужно ли что-либо в ней изменять?
  3. Приведите примеры улучшений при малом финансировании и при большом

4. Задача разработки первой версии продукта (финансовые средства неограниченны). Опишите следующие моменты:

  1. Какую конфигурацию программной части Вы бы составили для проекта (Операционная система, языки программирования, база данных, фреймворки или сторонние разработки)? Опишите в чем плюсы вашей конфигурации.
  2. Опишите схему внутренней работы проекта.

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

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

Источник: 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