Firstly, you'll want to select a first language to learn. Depending on your goals, I'd recommend Python, Java, or C++ (though Python is almost certainly correct if you're asking on here).
Python is extremely neat, easy to pick up, and lovely looking. However, it won't force you to learn the mid-level things (such as Polymorphism, and Object Oriented Programming) that are essential to modern programming, it's easier to make subtle errors that won't get picked up, and it runs roughly five times slower than C++ (which is much less important than it seems with modern PCs). I'd recommend Python if you want to pick up programming quickly, and don't care too much about the advanced concepts yet.
Java is what they teach first at almost every university across England right now. You can use it to learn almost all of the modern 'tricks' (such as Reflection, Lambda functions etc), and the well developed Exception system means that once you've learned how, finding and fixing errors in your code is almost trivial. However, it's around three times slower than C++ (again, which isn't a big deal), and likes to make you do things manually that really should be automated (like reading files, or loading web pages). It's good to learn if you want to have an almost complete understanding of programming after just one language.
C++ is the old aging workhorse of the programming world. It's probably one of the most powerful languages out there, at the cost of being obtuse, difficult to learn, and unfriendly if you make mistakes. I'd only recommend it if you really care about performance, or want to learn everything about programming at once, and are a *very* quick learner.
So, after deciding to use Python, you'll want to find a tutorial to teach you the absolute basics. Python has an excellent tutorial you can find here: https://docs.python.org/3/tutorial/ , and the other two languages on that list also have (significantly worse) tutorials that you can find by searching. The trick to understanding programming well is now to learn a very small amount, and practice it a lot, then repeat. Even now, having programmed for over twelve years of my life, about half of the code I write consists of 'if', 'for', 'while', basic maths and manipulating variables, and another 40% consists of function calls, regardless of which language I use. Having a good understanding of these is by far the most important part of programming, so take these bits slow, and be sure you completely get it.
Personally, I'd suggest playing about with the language every time you learn a new function. Set yourself challenges that involve that function, and solve them. Once you have the basics down (i.e. section 4, maybe 5, of the Python tutorial) you can start pushing through the Euler challenges at https://projecteuler.net/ for practice. Again, take it slow. Practice. Make sure you completely understand it.
Once you have the basics absolutely nailed, only then should you try to understand Classes, Inheritance, and good Object Oriented Programming practice. It'll revolutionise the way you program, but it requires a complete shift in the way you think, and it'll take a lot of puzzling to understand. Once you understand that, you should select a small project (like a small game, or an MP3 player), and make it using your new experience. The sky's the limit at this point.