Одно могу сказать точно: если человек, после полутора лет штудирования С++ (кстати, не самое простое, но - по моему мнению - самое верное начало) пишет по сути - "хочу не только кодить, ни и уметь действительно разрабатывать программные системы" - это отлично. Потому как многие - а сегодня, увы, можно сказать и большинство - останавливаються именно не кодинге, и мнят себя при этом курутыми разработчиками.
Если обратить внимание на то, что автору всего 17 лет - то тем более - респект, так держать!
Теперь по сути. Вы абсолютно правы, кодирование на любом языке, даже виртуозное, это еще не программирование. Что-бы стать хорошим программистом надо основательно изучить основы Теории Алгоритмов и Структур данных, теорию и практику работы с базами данных, особенности построения распределенных, мобильных и веб-приложений (даже если завтра вы не собираетесь писать под веб или Андроид), понять хотя-бы в общих чертах, как работают сети, и "полирнуться" основами архитектуры современных информационных систем и паттернами проектирования. Ну и надо понимать, для квалифицированного программиста знание одного языка - этого абсолютно недостаточно.
В каком порядке и по каким источникам двигаться к цели - тут мнений много и разных. Вот несколько ссылок - только не воспринимайте их буквально, подходите творчески. Смотрите, что лучше вам ложиться на душу, что легче "заходит". И не комплексуйте, не бейтесь головой об стену если чего не поймете сразу - потом, через определенное время вернетесь и с высоты приобретенных знаний разберетесь. Главное - не отступать от цели, как в спорте - хоть по часу-два, но каждый день.
Итак, для начала:
https://proglib.io/p/cs-learning/
https://teachyourselfcs.com/
https://tproger.ru/curriculum/computer-science-ste...
Удачи!
P.S. И еще забыл - главное :-). English!!!! Без него в этой профессии сегодня - никак!
P.P.S. И да - умение самостоятельно Гууглить, искать нужную информацию, отсекать информационный шлак. Ключевое слово - "самостоятельно"! Но это, как бы, вообще на "нулевом" месте.