Руководство для начинающих по конкурсному кодированию


Самрат Чакраборти

Соревновательное программирование учит искусству разбивать проблему на мелкие части и находить для них работающие решения. Кроме того, для разработки необходимо изучить совершенно новый язык или фреймворк (JS, CSS, Django и т.д.).

Начать заниматься соревновательным программированием можно с базовых языков, изучаемых в школе, таких как C++, JAVA и Python.

Начало:

1) Изучите язык программирования:

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

  • C++
  • Java
  • Python

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

Некоторые предпочитают Java, но его коды пишутся дольше. Кроме того, в некоторых случаях вы можете получить TLE (Time Limit Exceeded) из-за медлительности.

C++ — самый быстрый среди Python и Java и сопоставим с C. Он предлагает вам очень мощную библиотеку (стандартную библиотеку шаблонов), которая упрощает многие вещи для конкурентоспособных программистов. (Например: предопределенные функции для сортировки, поиска, векторов, множеств, карт, пар и т.д.)

2) Начните практиковаться и участвовать в конкурсах:

Как новичок, начните решать раздел «Решение проблем» на Hacker rank. Охватите такие темы, как:

  • Реализация
  • Строки
  • Сортировка
  • Поиск
  • Жадный
  • Манипулирование битами

Выполняйте задания в порядке Easy-Medium-Hard.

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

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

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

3) Изучайте структуры данных и алгоритмы:

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

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

Некоторые правила и запреты, о которых вам следует помнить:

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

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

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

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

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

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

  • Не демотивируйтесь и не расстраивайтесь, если вы не можете хорошо выступить в конкурсе или не можете решить проблему. Такое случается, просто учитесь на своих ошибках и старайтесь их не повторять.

  • Конкурсное кодирование — это в большей степени практика. Чтобы стать мастером в этом деле, требуется время. Поэтому никогда не сдавайтесь, если вам не нравится это делать, и никогда не сомневайтесь в себе.

Подведение итогов:

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

Кроме того, если вы новичок в мире кодинга, вы можете присоединиться к сообществу Crazy Codigo, поскольку его еженедельные соревнования COW (Coder Of the Week) помогут вам получить много знаний и опыта и помогут вам начать свой путь.

Для любой дальнейшей помощи вы можете присоединиться к нашему Discord-серверу, и мы сможем расти вместе как сообщество!

Пока 🙂

~ Сэм

Оцените статью
devanswers.ru
Добавить комментарий