По моему есть всего две пути, и оба включают в себя много практики.
Вариант #1. Работать в сфере ИТ (разработка, тестирование, тех.поддержка), и изучать необходимые инструменты и языки программирования под рабочие задачи. И стараться быть в тонусе, изучая ежедневно что-то новое. За это вам оплачивают компенсацию.
Вариант #2. Взять вашу текущую сферу деятельности, она может быть любая. В нем попытаться решить какую то рутинную проблему, обычно подобная задача находится на повестке дня. Например сделать автоматизацию чего либо, по средством выбранного вами языка программирования или инструмента. За это вам оплачивают компенсацию.
В любом случае, вам нужно будет потратить немало времени на практику. "Практика" бывает довольно увлекательным, но иногда вам придется пострадать, конечно утрированно написал, но как есть. На каждую задачу нужна концентрация, иногда многочасовая. Самое важное нельзя сдаваться и всегда достигать нужного вам результата. Страдание должно компенсироваться, иначе для достижения результата вам не будет хватать одного интереса.
Другие варианты, типа я сейчас дочитаю книжку с теорией, и после начну что-то пилить - не работает. Как только вы начнете достигать результата по средством своих навыков, вы сможете объективно оценивать свои возможности и изучать то, что вам интересно. Главное, нужно быть максимально уверенным в том, что вы знаете, как именно работает ваш код.
P.S. не бойтесь пилить велосипед