» » Вопросы для собеседования бэкенд-разработчика

 

Вопросы для собеседования бэкенд-разработчика

Автор: admin от 19-02-2018, 13:50, посмотрело: 299

Вопросы для собеседования бэкенд-разработчикаЭтот список появился как личная памятка по темам, которые я обсуждал с коллегами и друзьями и в которых хотел разобраться поглубже…



Я не большой любитель задавать технические вопросы на собеседованиях: по мне так лучше посидеть с кандидатом (или кандидаткой) за клавиатурой над каким-то реальным кодом, реальной проблемой — и целый день заниматься парным программированием, желательно поочерёдно с остальными членами команды. Но я считаю, что некоторые технические вопросы могут быть хорошей отправной точкой для начала увлекательного и приятного разговора и позволят глубже узнать друг друга.



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

«Вопросов для собеседования на работу фронтендера» от @darcyclarke.



Где ответы?



Рано или поздно я дополню статью соответствующими ответами. Буду благодарен за любую помощь!



Содержание



Вопросы по шаблонам проектированияВопросы по организации кода (code design)Вопросы по языкам программированияВопросы по веб-разработкеВопросы по базам данныхВопросы по NoSQLВопросы по версионности кодаВопросы о параллелизмеВопросы по распределённым системамВопросы о жизненном цикле ПО и руководстве командойВопросы по логике и алгоритмамВопросы по архитектуре ПОВопросы о сервис-ориентированной архитектуре и микросервисахВопросы по безопасностиОбщие вопросыОткрытые вопросыВопросы с фрагментами кодаВопросы в стиле Билла ГейтсаGOF, или опциональные типы?



• Почему композиция зачастую лучше, чем наследование?



• Что такое предохранительный уровень (Anti-corruption Layer)?



• Одиночка (Singleton) — это шаблон проектирования, который создаёт один экземпляр класса для одиночного объекта. Написать Правильного Одиночку (Thread-Safe Singleton) не так просто. Попробуете?



• Возможность менять реализацию без влияния на клиентскую часть называется абстрактным представлением данных (Data Abstraction). Напишите пример, который нарушает это свойство, затем исправьте его.



• Напишите фрагмент кода, нарушающий принцип Don't Repeat Yourself (DRY). Затем исправьте его.



• Как вы будете бороться с адом зависимостей (Dependency Hell)?



• Почему goto — это зло?



• Принцип надёжности — общее правило организации кода, которое рекомендует «быть консервативным в том, что отправляешь, и либеральным в том, что принимаешь». Его часто формулируют как «быть терпимым читателем и осторожным писателем». Хотите обсудить смысл этого принципа?



• Разделение ответственностей — принцип проектирования для разделения компьютерной программы на отдельные области, каждая из которых отвечает за свою задачу. Есть много разных механизмов для разделение ответственностей (использование объектов, функций, модулей или шаблонов, таких как MVC и тому подобные). Хотите обсудить эту тему?



Тони Хоар однажды сказал «Могу назвать это своей ошибкой на миллиард долларов», поскольку она влечёт «бесчисленные ошибки, уязвимости и системные сбои, которые, вероятно, причинили страданий и ущерба на миллиард долларов за последние сорок лет». Допустим, вы хотите устранить возможность использования нулевых указателей в своём языке программирования: как вы решите такую задачу? Какие последствия это может иметь?



Что произойдёт, когда вы наберёте google.com в адресной строке браузера и нажмёте Enter?



• Что делает операционная система, когда нет команды на выполнение конкретного кода и она выглядит незанятой? Хотелось бы начать разговор о прерываниях, демонах, фоновых сервисах, опросах, обработке событий и т. д.



• Объясните Юникод или транзакции в СУБД пятилетнему ребёнку.



• Приведите доводы в пользу монолитной архитектуры.



• Что значит быть «профессиональным разработчиком»?



• Программирование — это искусство, ремесло или инженерное дело? Ваше мнение.



• Как вы реализуете систему рекомендаций в магазине электронной коммерции?



• Почему корпорации хуже внедряют инновации, чем стартапы?



• Ваше последнее достижение, которым вы гордитесь?



почему крышки канализационных люков во многих странах имеют круглую форму стали известными из собеседований Microsoft).



• Что случится, если я отсканирую зеркало?



• Представьте своего идеального клона. Представьте, что этот клон — ваш начальник. Вы бы хотели работать на него/неё?



• Проведите собеседование со мной.



• Почему ответы Quora лучше, чем Yahoo Answers?



• Сыграем в игру: защитите Cobol против современных языков и попробуйте найти как можно больше разумных аргументов.



• Где вы будете через 10 лет?



• Вы мой начальник, а я уволен. Сообщите мне.



• Я хочу провести рефакторинг старой системы. Вы хотите переписать её с нуля. Аргументируйте. Затем меняемся ролями.



• Ваш начальник просит вас соврать компании. Ваши действия?



• Если бы вы могли вернуться в прошлое, какой совет дали бы молодому себе?

Источник: Хабрахабр

Категория: Программирование

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

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите два слова, показанных на изображении: *