для старта наверно сейчас лучше Паскаль
азы алгоритмизации и аккуратности через него понять можно
а дальше зависит от того в какую сторону копать
(я, в моих задачах, предпочитаю опираться на С и С++)
---
но в целом:
инструмент подбирается под задачу -- нормальный проггер смотрит что надо сделать, потом как надо и потом на чём это удобнее оформить.
вполне нормальны ситуации когда разные смысловые куски одной большой задачи написаны на разных языках
Думаю Python для начал, легкий и простой для понимания. Если не хочешь, то можешь изучать C++. Это самый популярный язык программирования для олимпиад. Для других целей возможно подойдет Java или Java Script, но я с этими языками не особо знаком.
Паскаль. Ненавижу этот язык за его низкую выразительность и бюрократическую систему типов, но через это надо пройти. Как тренажёр он вполне годится. К счастью, далеко идти не придётся, т.к. ничего серьёзного на Паскале не напишешь. Пару-тройку алгоритмов обработки массива в цикле - и довольно.
Потом - Хаскель (Haskell). Он научит правильно мыслить о программах.
А потом - любой ремесленный язык из текущего менйстрима. Но в этот момент уже лучше иметь представление о предметной области, в которой собираешься работать, и изучать соответствующий ей язык.