- Автор темы
- Заблокирован
- #1
Наткнулся на хорошие вопросы на собеседовании. Ну что, проверим наши знания?
Задания разделены на 3 категории. Категория B позволяет оценить базовые знания, насколько Вы, знаете базовые основы языка, основы программирования и насколько хорошо владеете программами необходимыми для разработки продуктов. В категории S расположены вопросы, позволяющие оценить глубину Ваших знаний в той или иной части языка программирования, а так же узнать о знании смежных технологий. Ну и последняя категория, это категория Q в ней собранны вопросы по разработке масштабируемых высоконагруженных систем.
Категория B
Задание B1:
Опишите плюсы PHP версии 5 по сравнению с версией 4.Какие новые возможности Вы считаете бесполезными?
Задание B2:
Опишите ситуаци, когда функциональное программирование лучше объектно-ориентированного.
Задание B3:
Расскажите о плюсах использования паттерна MVC. В каких случаях не стоит его использовать? Какие в нем минусы?
Задание B4:
Расскажите об используемых Вами фреймворках (программных каркасах). В чем их плюсы? Для каких задач лучше использовать существующий фреймворк, а когда лучше все написать самому?
Задание B5:
В чем плюсы и минусы шаблонизации? С какими трудностями Вы сталкивались в работе с шаблонами?
Задание B6:
В чем плюсы использования систем контроля версий? Какие сложности при работе с ним у Вас возникали?
Задание B7:
При работе в команде, каким бы местам в разработке, Вы бы удилили большее внимание? Какие бы соглашения (Coding Conventions) Вам бы помогли в командной разработке?
Задание B8:
Использование баг-трекеров. Какими баг-трекерами Вы пользовались? В чем плюсы использования?
Категория S
Задание S1:
Расскажите, в каких случаях лучше использовать Apache, в каких nginx, а в каких lighttpd сервера.
Задание S2:
Расскажите о использовании Memcached. Какие сложности возникают при его использования? Что бы Вы хотели в нем улучшить?
Задание S3:
В каких случаях Вы бы использовали MyISAM таблицы, а в каких InnoDB, кроме случаев с транзакциями?
Задание S4:
Есть 3 таблицы InnoDB, в двух из них по 200,000 записей (строки примерно по 100 символов) и одна с 20 записями. Как лучше получить взаимосвязанные данные - используя один JOIN или несколько SELECT запросов? Объясните ваше решение.
Задание S5:
Напишите SQL Stored Procedure для MySQL 5.1 базы данных, для заполнения базы тестовыми данными:
id:INT
name:VARCHAR (blabla + id)
desc:LONGTEXT (Is desc + name)
uid:INT (рандомное значение)
Задание S6:
Нужно разарботать систему организовывающаую работу между почтовым сервером и front-end приложением (Flash AS3 Application). Опишите следующие моменты:
Какой формат обмена данными, Вы бы использовали, для минимального трафико-обмена?
В чем плюсы выбранного Вами формата?
Категория 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. На Вас ложится задача разработки первой версии архитектуры проекта. По умолчанию считаем, что заказчик готов предоставить неограниченные средства. Опишите следующие моменты:
Какую конфигурацию программной части Вы бы составили для проекта (Операционная система, языки программирования, база данных, фреймворки или сторонние разработки)? Опишите в чем плюсы вашей конфигурации.
Какие слабые стороны возможны у данного проекта? Какие решения Вы можете предложить?
Опишите схему внутренней работы проекта.
Задания разделены на 3 категории. Категория B позволяет оценить базовые знания, насколько Вы, знаете базовые основы языка, основы программирования и насколько хорошо владеете программами необходимыми для разработки продуктов. В категории S расположены вопросы, позволяющие оценить глубину Ваших знаний в той или иной части языка программирования, а так же узнать о знании смежных технологий. Ну и последняя категория, это категория Q в ней собранны вопросы по разработке масштабируемых высоконагруженных систем.
Категория B
Задание B1:
Опишите плюсы PHP версии 5 по сравнению с версией 4.Какие новые возможности Вы считаете бесполезными?
Задание B2:
Опишите ситуаци, когда функциональное программирование лучше объектно-ориентированного.
Задание B3:
Расскажите о плюсах использования паттерна MVC. В каких случаях не стоит его использовать? Какие в нем минусы?
Задание B4:
Расскажите об используемых Вами фреймворках (программных каркасах). В чем их плюсы? Для каких задач лучше использовать существующий фреймворк, а когда лучше все написать самому?
Задание B5:
В чем плюсы и минусы шаблонизации? С какими трудностями Вы сталкивались в работе с шаблонами?
Задание B6:
В чем плюсы использования систем контроля версий? Какие сложности при работе с ним у Вас возникали?
Задание B7:
При работе в команде, каким бы местам в разработке, Вы бы удилили большее внимание? Какие бы соглашения (Coding Conventions) Вам бы помогли в командной разработке?
Задание B8:
Использование баг-трекеров. Какими баг-трекерами Вы пользовались? В чем плюсы использования?
Категория S
Задание S1:
Расскажите, в каких случаях лучше использовать Apache, в каких nginx, а в каких lighttpd сервера.
Задание S2:
Расскажите о использовании Memcached. Какие сложности возникают при его использования? Что бы Вы хотели в нем улучшить?
Задание S3:
В каких случаях Вы бы использовали MyISAM таблицы, а в каких InnoDB, кроме случаев с транзакциями?
Задание S4:
Есть 3 таблицы InnoDB, в двух из них по 200,000 записей (строки примерно по 100 символов) и одна с 20 записями. Как лучше получить взаимосвязанные данные - используя один JOIN или несколько SELECT запросов? Объясните ваше решение.
Задание S5:
Напишите SQL Stored Procedure для MySQL 5.1 базы данных, для заполнения базы тестовыми данными:
id:INT
name:VARCHAR (blabla + id)
desc:LONGTEXT (Is desc + name)
uid:INT (рандомное значение)
Задание S6:
Нужно разарботать систему организовывающаую работу между почтовым сервером и front-end приложением (Flash AS3 Application). Опишите следующие моменты:
Какой формат обмена данными, Вы бы использовали, для минимального трафико-обмена?
В чем плюсы выбранного Вами формата?
Категория 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. На Вас ложится задача разработки первой версии архитектуры проекта. По умолчанию считаем, что заказчик готов предоставить неограниченные средства. Опишите следующие моменты:
Какую конфигурацию программной части Вы бы составили для проекта (Операционная система, языки программирования, база данных, фреймворки или сторонние разработки)? Опишите в чем плюсы вашей конфигурации.
Какие слабые стороны возможны у данного проекта? Какие решения Вы можете предложить?
Опишите схему внутренней работы проекта.