paint-brush
Эти вопросы на собеседовании по программированию отделят профессионалов от любителейк@shcheglov
6,245 чтения
6,245 чтения

Эти вопросы на собеседовании по программированию отделят профессионалов от любителей

к Viktor Shcheglov3m2024/04/18
Read on Terminal Reader

Слишком долго; Читать

Вопросы для собеседования по программированию предназначены для того, чтобы выйти за рамки технических навыков. Они глубже погружаются в мыслительный процесс разработчика, подход к решению проблем, способности к командной работе и другие важные качества. Эти вопросы не для слабонервных. Вопросы составлены командой Coder.com по составлению анкет для собеседований по программированию.
featured image - Эти вопросы на собеседовании по программированию отделят профессионалов от любителей
Viktor Shcheglov HackerNoon profile picture
0-item

Вопросы для собеседования по программированию


Приветствую вас, коллеги-разработчики!

За свою карьеру я провел более 100 собеседований с разработчиками всех уровней, от младших разработчиков до опытных ветеранов. И знаешь, что? За это время я составил набор из 10 каверзных вопросов, которые задаю каждому новому кандидату.

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

Готовы ли вы к этой интеллектуальной битве? Тогда приготовьтесь, ведь эти вопросы не для слабонервных!


  1. Предотвращение одновременного редактирования статей

Предположим, вы реализуете систему редактирования журнала, где редакторы могут редактировать статьи в панели администратора. Как бы вы не позволили двум редакторам одновременно редактировать одну и ту же статью и перезаписывать изменения друг друга?


  1. Принципы развертывания с нулевым временем простоя

Каковы принципы развертывания с нулевым временем простоя — подхода, при котором приложение развертывается без простоя службы? Как это достигается?


  1. Критика предпочитаемой вами структуры

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

4. Обработка длительных заданий Cron

Что может случиться, если ваше задание cron, которое выполняется каждую минуту, начнет выполняться более одной минуты? Как это можно предотвратить?

5. Денормализация данных в базах данных

Сталкивались ли вы когда-нибудь с необходимостью денормализовать данные в базе данных? Если да, то какую проблему вы пытались решить, с какими трудностями столкнулись и как можно было бы сделать это лучше?

6. Имитация внешних вызовов в тестах

Если вы пишете тесты, как обойти проблему внешних вызовов, выполняемых тестируемым кодом? Рассмотрим сценарий, в котором внешние вызовы запрещены в CI (непрерывной интеграции). Почему это хорошая практика?

7. Синхронизация изменений электронной почты с внешними системами

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


  1. Обнаружение производственных ошибок

Как узнать об ошибках, возникающих на производстве? Полагаетесь ли вы на отчеты пользователей или используете автоматизированные механизмы?


  1. Проектирование простого приложения чата

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

10. Изолирующие тесты в многопользовательской среде

Как обеспечивается изоляция тестов, когда несколько тестов выполняются одновременно и обращаются к базе данных, потенциально изменяя ее? Если ваша платформа не обеспечивает изоляцию, как бы вы ее реализовали или улучшили?



Дополнительные советы:

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

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

Оцените их навыки общения и сотрудничества на протяжении всего собеседования.