Соревновательное программирование (CP), которое представляет собой интеллектуальный спорт, часто сравнивают с решением задач, структурами данных и алгоритмами (PS/DS) во время интервью.

Цель этой статьи – развеять некоторые заблуждения относительно соревновательного программирования в контексте подготовки к собеседованию.

Что происходит во время интервью?

Раунд PS/DS, также известный как раунд кодирования, является самым популярным раундом собеседований для вакансий в области разработки программного обеспечения. Основная цель этого раунда — проверить способности кандидата кодировать и решать проблемы. В ходе собеседования вам необходимо сопоставить проблемы с основными приложениями структур данных и алгоритмов.

Хорошее знание структур данных и алгоритмов, их приложений и компромиссов (+ практика) должно быть достаточно хорошим, чтобы преуспеть в раунде решения проблем. LeetCode, CareerCup, InterviewBit и GeeksForGeeks — популярные платформы для подготовки к собеседованию, связанному с раундом PS/DS.

Разве это не то же самое, что соревновательное программирование?

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

Как и в любом другом виде спорта, он требует от вас хорошей физической формы (в данном случае умственной), и с практикой вы можете стать намного лучше. CodeChef, Codeforces, TopCoder — популярные площадки для соревновательного программирования, а ACM ICPC, Google CodeJam, Fb HackerCup — самые популярные конкурсы CP.

Нужен ли спринт, чтобы стать хорошим игроком с битой?

Допустим, есть человек Болт, который действительно хороший спринтер, так как любит бегать и регулярно много бегает. Теперь, если он хочет стать хорошим игроком с битой, будет ли он выступать лучше, чем его подруга Гейл, которая провела много времени, тренируясь в игре. Определенно нет, верно?

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

Итак, нужно ли соревновательное программирование, чтобы хорошо пройти собеседование?

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

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

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

Дальнейшее чтение: