I don't know of any good online tutorials, unfortunately, and I've tried looking once for someone. I mean, there's lots of good tutorials but often, they don't have any practical exercises so you never really learn to use the stuff they teach. Unless you have a good imagination or lots of passion so you can come up with your own exercises, it's probably going to be hard to learn without someone providing you exercises. In this light, finding a good MOOC would probably be the best way to learn programming. For example, this MIT course seems pretty decent (at a first glance). In case you end up with a MOOC but not that one, you might want to know what some have a schedule, some don't. Pick one that suits you.
It seems social learning platforms, such as freeCodeCamp, are also a big thing thing these days, but I don't really have experience with them so I don't know how good they are. Still, it's an option you might want to be aware of.
You might have noticed I haven't talked anything about languages or stuff like that. That's because it doesn't matter. Pick the one with the materials that best support your learning. Most programming languages ought to be pretty easy enough to learn with any half-decent materials, unlike what some people here have been telling. Also, most programming languages work a lot like C, so once you learn one language, switching to another one is pretty easy.
Personally, I learned Java first because that what was used to teach us programming in university, and I can't say I had any trouble because of the language choice. There's some parts you always need but probably won't understand at first (i.e. the boilerplate needed for methods) , but that's not really a problem for learning. Of course you'll probably end up starting with Python because it's really simple to use and there's probably lots of great learning materials for it (including the MOOC I linked earlier), so this part about Java doesn't matter. Still, I want to emphasize that most languages are more or less equally difficult (or easy) to learn. If you go with C (or C++) though, prepare to spend some extra effort to learn about memory management and pointers. It's not hard, but that's some mandatory extra learning you don't see in most more modern languages.







