1. Для начала нужно освоить азы и алгоритмы. Тебе это предстоит делать на уроках информатики в школе и на том языке, который там будут преподавать. Узнай, что это будет (скорее всего, Pascal или C++, в редких случаях Java), купи книжку и начинай потихоньку осваивать.
2. Забудь про программы. Когда ты закончишь школу и вуз, всё уже будет в web/облаках, скорее всего, и ОС будут представлять собой один большой браузер. Учись сразу делать свои "программы" так, чтобы ими можно было пользоваться из любого браузера и с любого смартфона/планшета.
3. На что бы ни упал твой выбор, попутно изучай JavaScript. Или сосредоточься сразу исключительно на нём (вместе со школьным паскалем). Это самый популярный и востребованный язык на сегодня (как минимум, здесь тег JS самый топовый), самая развивающаяся и современная платформа, без него сегодня ну никак. К тому же, он покрывает большинство современных задач:
- на web-фронтенде JS царь/бог/монополист;
- пишешь web-бэкенд? В помощь node.js;
- нужно мобильное приложение, да еще и одновременно под все платформы? К твоим услугам react-native;
- нужна современная десктопная программа? Поможет electron/nw.js;
- ближайшее будущее за форматом progressive web app (о чем писал во 2 пункте), и он тоже обеспечивается средствами JS;
- видишь, что мир сходит с ума по блокчейну и хочешь приложить руку? Смарт-контракты для Etherium, к примеру, пишутся на языке Solidity, который построен на синтаксисе JS;
- нужен скрипт автоматизации/парсер и пр.? Node.js вполне справляется с этими задачами не хуже, к примеру, Python.
Что немаловажно - через пару лет активного практического изучения ты уже сможешь оттачивать навыки на реальных задачах за реальные деньги на том же фрилансе. Чего не скажешь про всякий enterprise (java/c#/c++), которого нет на фрилансе, и к которому тебя вряд ли подпустят без профильной вышки.