"Computer programming" is a huge field. You're going to need to narrow it down. However, instead of asking "do you want to build websites, or do you want to build desktop applications," I propose a different question:
What kinds of problems do you want to solve?
Programming is first and foremost problem solving. This part is the foundation of everything else in the industry. Things get built, because someone saw a problem and thought of a solution.
What kind of stuff do you want to build?
Programming is as much a creative art as it is a science. While there's a lot of mundane stuff to do, too, we developers like to build cool stuff. So, what's your pipe dream thing you want to build? (This goes hand in hand with the problem solving aspect, by the way.)
Do you want to build a self-watering garden system? Then embedded systems with Raspberry Pi and Arduinos might be a good place to start.
Do you want to build a robot? Then robotics is the obvious choice.
Got an idea for a cool mobile or computer game?
Like data analysis and want to build some cool data modeling thing?
Want to be able to modify a Hue smart lighting system or rig up Christmas lights to "dance" to music, just because you can?
What you want to build will guide you on where to go, because each thing has its own problems to solve and existing solutions to build on. These will also dictate what foundational things you'll need to know, and what programming languages will be the most applicable.
Think Like A Programmer
While I was in college, I learned quickly that it takes a certain type of person to become a programmer. That kind of person has to be able to think in a particular way (whether they do so all the time is optional, but you need to be able to do it). In layman's terms, it's known as "thinking like a programmer." I liken it to the "teach someone to make a sandwich" or "teach someone to tie their shoes" exercises you may have done in elementary school.
Did you ever do that kind of exercise? You're tasked with instructing someone to do a particular task that you probably do all the time. Most initial responses look something like this:
Put peanut butter on bread, put jelly on bread, put bread together.
The teacher then proceeds to put the jar of peanut butter on the loaf of bread, quickly illustrating that several important steps are missing.
The final result looks more like:
Remove twistie from bread. Pull out two slices of bread and place on plate side-by-side. Unscrew peanut butter jar. Dip knife into jar and scoop out some peanut butter. Spread peanut butter on slice 1 with knife. (Repeat for jelly.) Place slices together so that peanut butter and jelly are between slices and touching each other.
This time, the teacher is able to successfully make a sandwich.
Being able to break actions down like this and look at things in terms similar to how a computer would see it (if-then conditions, loops, logic gates, etc), is integral to being able to program. The better you can do this, the better you'll succeed.
Now, not everyone knows how to do this by default. If this comes difficult to you, or you don't know how to do it at all, then this would be a good place to start. Start looking at different actions or things and break them down into their constituent parts, as though you're instructing someone to do them. Break down the movements of getting a book off a bookshelf, or can of tomato paste out of a cupboard.
From there, there are a number of books and interactive sites that can help you learn. Treehouse, Khan Academy, Code School, CTF365 (a hacking capture the flag type of game), and other such resources can be helpful in learning the more technical and specific aspects of programming.