Первым стоит изучать качественный учебник программирования. А язык будет тем, который используется в этом учебнике для объяснения алгоритмов. Потому как язык - не цель обучения, а всего лишь инструмент для записи алгоритмов.
Но есть инструменты, удобные для обучения, а есть годящиеся только для профессионалов. С++ для начального обучения не годится категорически, С# - с очень большими оговорками.