Соревновательное программирование (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.
Итак, краткий ответ: это не обязательно, но мы определенно рекомендуем вам попробовать и посмотреть, понравится ли вам это.
Присоединяйтесь к нашему слабому сообществу, чтобы вести полезные дискуссии о программировании, собеседованиях и поиске работы.
Дальнейшее чтение:
- Как подготовиться к раунду «Решение задач и структуры данных?»
- Как пройти этап решения проблем и структур данных?
- Распространенные ошибки, которых следует избегать в соревновательном программировании
- Подготовка к интервью SDE I: Полное руководство
- Как пройти собеседование в продуктовых компаниях?
- Какие языки/технологии программирования мне стоит изучить?