Учебник программирования выбрать - который не про написание кода на модном языке, а про способы решения программистских задач. А уже после него переходить к промышленным языкам.
Если же так хочется начать сразу с промышленного языка, то лучше выбрать Go, как наиболее подходящий для на начального обучения среди модных языков: предельно маленький, предельно жёсткий к любым неточностям в коде, содержащий минимум особых случаев, не содержащий необязательных служебных слов и произвольного порядка слов...
Языки программирования с динамической типизацией (Python, JavaScript, PHP, Ruby, Lua и т.д.) не годятся потому, что слишком много делают за программиста и никак не приучают думать о тех вещах, которые необходимы для написания качественного кода. Они провоцируют писать говнокод и при этом без каких-либо предупреждений пропускают даже самые идиотские ляпы, допущенные в коде. Ты будешь ошибаться и даже не поймёшь, что ошибся.
Язык C не годится потому, что он слишком низкоуровневый: надо очень хорошо понимать что делаешь и зачем делаешь именно это, чтобы не ошибиться. Прекрасный инструмент в руках профессионалов, но пулемёт для стрельбы по собственным ногам в руках новичка.
Язык C++ имеет все недостатки C, но при этом раз в 20 больше. Слишком сложный язык для новичка.
Java и C# просто намного сложнее, чем Go. ИМХО, C# хоть и побольше, чем Java, но подходит для обучения лучше. Java - он одновременно излишне большой в одних местах и абсолютно убогий в других. Слишком много костылей.