Что учить подростку в сфере программирования?
С#. И весь "стек" майкрософт. (Java лучше (по деньгам), но там всё сложнее, пока не потянешь на должном уровне.)

Я тоже учил pascal, delphi. Давно это было. Смысл? Устаревшие языки и технологии.
Python, PHP, JavaScript, HTML, CSS и далее по списку - полезно, но в плане перспективы печально.
Для себя учить можно всё что угодно. Но ты наверно хочешь стать хорошо оплачиваемым специалистом?

Почти все в банковской сфере работают на Java. Многие на C#. Гос компании аналогично. Крупные компании. А Python/PHP и Linux (холивар открыт) - это не серьезно.
Почему? No Warranty - нет гарантии. 
А бизнесу нужны гарантии. И у бизнеса есть деньги.

Майкрософт - это бизнес, это продукты для бизнеса. А где бизнес, там и деньги.
Хочешь денег - Java, С#. Хочешь что то другое - Python и прочее...

Вопрос языка не в том что хорошо - какой лучше, производительнее, красивее, а какой распространеннее и лучше оплачивается.
Вот С++ универсален. Есть Qt на котором написано куча популярного софта.
Но это язык не от крупной компании. И фреймворк который перекупали несколько раз.
Да есть вакансии по Qt но их мало, да и работа там..пробовали, не понравилось.

А есть Майкрософт, которая продвигает .NET и C#. Это просто крупная компания, которая кушает всё что ей нравится. Ням и скушала скайп. Оп и съела гитхаб. И на линукс смотрит, в плане пропихнуть .NET.

Поэтому изучая С# и .NET за твоей спиной будет не No Warranty или сообщество пусть умных и талантливых программистов, а крупнейший гигант с лучшими программистами (он их просто купит), менеджерами, рекламой и жаждой впихнуть С# и .NET в каждую кофеварку.

К тому же на C# (ASP) пишут и сайты, и игры (Unity) и т.д.
Майкрософт обо всем позаботился. Это бизнес, ничего личного.

Аналогично с Java.
Что учить подростку в сфере программирование?
Вопрос не корректный по своей сути, так как "учить программирование" можно до бесконечности, и так и не выйти на первую работу, как бывает у новичков.

Самый верный вариант стать хорошим специалистом\программистом - это решать задачи приближенные к боевым.

Но, вам 13 лет, и большинство что вы описали в посте, больше похоже на решение типовых задач с ютуба что бы просто было весело, задачи из "мира живых" - всегда сложнее, и растут в сложности по экспоненте.

Как развиваться(а не учить язык программирования): ставить задачи по алгоритму и решать их: 
Алгоритм - нравится сфера > выбираем отталкиваясь от сферы язык > пишем от простого к сложному.

Пример: берем новичка фронта > задача. Сделать фулл стек магазин используя самую банальную связку > React(Next) + Node(Express) + SQL на выбор. Что бы решить данную задачу - потребуется изучить тонны материала, и начинать с обычных тудушек, качая базу вроде работы с промисами, перформансом, версткой и умению работать с бэком(прибавить еще 90 пунктов).

Всё остальное тлен, и бессмысленность - т.к основная задача программиста, помогать бизнесу автоматизировать процессы и получать профит в виде денег(получая\не получая с этого удовольствие), а не заниматься бессмысленным изучением материала, которая забывается за месяц.