I spent most of my free time in middle and high school programming. My parents would threaten to take away the internet when I did poorly in classes, and routinely encouraged me to spend more time playing guitar instead of "wasting so much time on the computer." They meant well, but essentially discouraged me from pursuing programming.
Last month I launched a startup, which I built during my free time while working as a senior full stack web developer.
What it comes down to, like any other pursuit, is that you have to spend a LOT of time programming. But the great thing is that every 6-12 months, you'll look back and think "wow, I sucked at programming compared to now." And as soon as you know enough to build a blog from scratch, you'll be able to start taking small contract jobs. After two or three years, charging $50/hr++ is absolutely easy.
One small tip to get started: For each project, create todo.txt and todo_future.txt. The first file is a scratch pad to keep track of what you're working on this week. The second file is for keeping track of ideas you want to work on in the future. It's a great way to prevent "scope creep" or giving yourself too much work to handle.