Как конкурентное программирование может помочь с техническими собеседованиями

Как конкурентное программирование может помочь с техническими собеседованиями

27 октября 2022 г.

В этом эссе мы постараемся понять значение соревновательного программирования (СР) и понять, будет ли оно полезно для вашего технического собеседования.

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

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

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

Какой-то парень из таблицы лидеров тем временем предложил решение менее чем за 30 секунд. Просто он смог придумать простое решение.

Как некоторые программисты становятся такими быстрыми?

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

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

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

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

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

  • Задавайте наводящие вопросы, чтобы лучше понять проблему.
  • Рассмотрите все возможные пограничные сценарии и обязательно учтите их.
  • Возможность изменить свое решение, чтобы оно лучше соответствовало критериям.
  • Создайте понятный и надежный код.

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

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

Как конкурентное программирование делает хороших компьютерных инженеров

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

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

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

Вышеупомянутые способности бесполезны в CP. Вам не нужно беспокоиться об изучении этих навыков, если ваша цель — стать богом CP.

Но это важные черты, если вы представляете себя инженером-программистом.

Стоит ли заниматься соревновательным программированием?

  1. Если вы студент

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

После выпуска работодатели, которые проводят с вами собеседование, не будут искать вышеупомянутые черты SDE. Этому вы научитесь по мере развития вашей профессии; было бы вишенкой на торте, если бы вы могли подобрать несколько из них.

Вы можете использовать содержание CP, чтобы привлечь потенциальных работодателей и даже побороться за прибыльные призы.

  1. Если вы работаете

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

Но так как вы уже профессионал, то не стоит посвящать все свое время и способности соревновательному программированию. Также потратьте некоторое время на совершенствование своих профессиональных навыков.

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

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

Где лучше всего заниматься соревновательным программированием?

Вы можете тренироваться и участвовать в нескольких известных соревнованиях по программированию:

  • Лучший программист
  • Hackerrank (личное предложение для начинающих)
  • Кодфорс
  • ХакерЗемля
  • Шеф-повар
  • Получить код
  • Google Codejam
  • Кубок хакеров Facebook

Заключение

Соревновательное программирование – это разновидность сетевой или локальной сетевой игры, в которой программисты должны писать код, соответствующий заранее установленным правилам. Используемый здесь термин «программисты» — это «конкурентоспособные кодеры».

Многие престижные корпорации, такие как Google и Facebook, спонсируют такие соревнования, как Codejam и Hackercup. Успешные участники получают признание этих компаний и получают предложения о работе от этих технологических гигантов.

Если вы не работаете над своими структурами данных и основами алгоритмов, CP может не гарантировать, что вы хорошо выступите в раунде PS/DS. CP может помочь вам лучше решать проблемы и кодировать.

Кроме того, если вы уже обладаете достаточными способностями к программированию и решению проблем, а также хорошо разбираетесь в DS и Algo, это не обязательно для собеседования. Тем не менее, если вы хорошо разбираетесь в CP, это, несомненно, поможет вам быстрее найти ответ и кодировать его быстрее.

Краткий ответ:

<цитата>

"Это не обязательно, но мы настоятельно рекомендуем вам попробовать и посмотреть, понравится ли вам это."


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE