Многие начинающие программисты, особенно те, кто готовится к олимпиадам по спортивному программированию, сталкиваются с такой делемой: какой язык программирования выбрать? C++, Python, Pascal, Java … да, ведь языков программирования очень много! И каждый из них имеет свои сильные стороны. А некоторые из них, скажем так, равноценны, и это уже дело вкуса.
C++ или Python?
Если говорить об олимпиадном программировании, то чаще всего пишут на C++, Python, Java. Конечно, можно встретить и более экзотические языка для олимпиад, но мы говорим о большинстве.
Если вы школьник, то на мой взгляд, имеет смысл остановиться на языке С++. Почему?
- Очень распространен, а значит много информации и подсказок можно найти в интернете. Также на каждой олимпиаде этот язык обязательно будет присутствовать. Чаще всего вы можете найти даже несколько компиляторов и сред разработки на С++
- Имеет большой набор «встроенных» алгоритмов и контейнеров, что выгодно его отличает, например от Pascal. На олимпиаде вы не будете тратить много времени на написание структуры данных или, например, алгоритма сортировки. А также вы точно не допустите в этом ошибку
- Краткость кода по сравнению с Java
- Высокая скорость выполнения программ, например по сравнению с Python
Последний пункт особенно важен для олимпиадного программирования. Ведь обычно программа должна работать не более 1-3 секунд на каждом тесте. А во многих случаях, один и тот же алгоритм, написанный на Питоне, будет работать раз в 100 дольше, чем на С++. И это очень важно.
И хотя в удобстве Питон, конечно, выигрывает, но из-за скорости работы программ, я считаю, однозначно нужно выбирать С++. Это, разумеется, не означает, что про Python вообще нужно забыть. Это хороший и удобный язык. Но именно для олимпиад он может быть как дополнение, а не как основа. А учить два языка у школьников чаще всего просто нет времени.
Обучение программированию
Если вы решили заняться программированием, и получить диплом на одной из олимпиад по программированию (что сильно поможет при поступлении в ВУЗ), я могу вам в этом помочь. Многие из моих учеников уже прошли этот путь.