Какой выбрать?

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

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

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

Существует множество веб-сайтов, которые расскажут вам о технических аспектах каждого языка, поэтому мы не будем вдаваться в подробности здесь (вы всегда можете это сделать в Google), но давайте сосредоточимся на других аспектах, которые необходимо учитывать.

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

Здесь эффективное ключевое слово и требует максимального внимания. Вы должны найти решение, которое решало бы различные сценарии (тестовые примеры) в рамках установленных ограничений (время и память). Мало кто может утверждать, что выбор языка здесь не имеет значения, и это правда, но только до определенной степени. Исходя из своего личного опыта, я могу заверить вас, что какой бы язык вы ни выбрали, это приведет вас к совершенно иному пути. Проблемы, с которыми вы столкнетесь, будут зависеть от вашего выбора языка. Я не утверждаю, что возникающие проблемы будут совсем другими, но ваш выбор определенно повлияет на некоторые из них.

Возьмем пример. В Java есть класс BigInteger, который теоретически не имеет ограничений на размер числа, которое он может хранить. Так что в некоторых вопросах, когда вам нужно хранить очень большой объем данных, это пригодится. C ++ не поддерживает ничего подобного, поэтому ребята, работающие с C ++, вынуждены реализовывать это с нуля или использовать google какое-нибудь подходящее решение. С другой стороны, Java очень медленно принимает входные данные с помощью класса Scanner. Это настолько медленно, что иногда вы можете обнаружить превышение временного лимита (TLE, термин, который раздражает почти каждого конкурентоспособного программиста). Поэтому вам нужно реализовать класс с нуля, чтобы быстрее принимать входные данные.

Итак, какой язык мы должны выбрать? я

Если вы сосредоточены исключительно на конкурентном кодировании и не планируете заниматься разработкой, переходите на C ++. Почему? На то есть ряд причин. Во-первых, размер сообщества. C ++ может похвастаться очень большим сообществом, посвященным конкурентному программированию. Итак, ›99% проблем, с которыми вы сталкиваетесь, уже были бы решены, вам просто нужно понять решение, а не проводить исследовательскую работу и проводить мозговой штурм. В дополнение к этому, C ++ намного быстрее, чем Java и Python. Вы можете посетить любой конкурентный веб-сайт по программированию, например Codeforces или Codechef, выбрать любой вопрос и отсортировать решение по времени выполнения, и вы поймете, о чем я говорю :)

Это не означает, что нельзя выбирать другие языки. Как упоминалось ранее, Java пригодится при ответе на вопросы, требующие работы с очень большими числами (превышающими предел long). Что касается скорости, Java медленнее, чем C ++, но быстрее, чем Python. Его сообщество также имеет значительный размер, хотя и не близко к C ++ (только в случае конкурентного кодирования). На сегодняшний день у меня не возникло серьезных проблем (да, я парень :)).

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

Так что, если вы из тех, кто хотел бы попробовать на практике CP для улучшения своего логического мышления и навыков DSA, вам, вероятно, следует перейти на Java или Python.

Это никоим образом не означает, что вы должны ограничивать свой выбор только этими тремя языками. Начните изучать, и вы обнаружите, что вашего внимания ждут сотни языков. Каждый из них предлагает набор уникальных возможностей из своего арсенала. Есть Java Script (ничего общего с Java), C, Ruby, C #. Список длинный. Так что исследуйте те, которые вам нравятся, но убедитесь, что вы используете только один язык. Как только вы почувствуете себя комфортно с DSA, вы можете переключиться на любой язык, который хотите.

PS- Оставьте, пожалуйста, свой отзыв. Это действительно помогло бы мне улучшить мои блоги.