Эх, вот буквально через пару недель на эту тему лекцию по введению в специальность для первокурсников читать пригласили :-)
Если вкратце, то иженер-программист учит те языки, которые нужны ему для решения задач. Понятно, что у каждого есть своя специализация, и кто-то разбирается в платформе .NET, кто-то в Java, а кто-то в Python, но условный enterprise - Java и C#, а нейросети - Python.
Если же говорить про то, что имеет смысл учить до входа в профессию, то тут очень многое зависит от трёх вопросов:
- С какого языка проще начать обучение? Лично мне больше нравится C#, на столько, что даже видео для новичков по нему выкладываю на youtube (см. ссылку в подписи), но вариантов, на самом деле, может быть масса. Сложность тех же C и C++ довольно сильно преувеличена, а Python последнее время всё активнее внедряют даже в школьную программу.
- Куда дальше есть желание развиваться?
- Железо: в первую очередь C и C++
- Игры: стоит начинать смотреть с популярных движков: Unity (C#) и Unreal engine (C++)
- Мобилки: Android (Java, Kotlin), iOS (Swift), или любые кросс-платформенные движки, например Xamarin (C#), или Apache Cordova (JavaScript)
- Программирование под web: Java или C# на стороне сервера, SQL для баз и JavaScript с библиотеками на клиенте. Причём JS всё большей популярностью начинает пользоваться и на серверной стороне (Node JS)
- Анализ данных, нейронные сети, анализ изображений: в первую очередь Python, но для высоконагруженных приложений активно используют C++.
- А какая есть перспектива трудоустройства там, где я собираюсь дальше жить и работать? Условно, если у вас в регионе все крупные игроки пишут на Java, то имеет смысл его рассматривать как приоритетное направление, а если активно внедряется Python - то его.