Programming is incredibly broad. You would have to start by deciding what it is you want to learn, same as how math and physics courses will have well defined goals
Finding a tutorial that's tailored for what you know right now, with the knowledge you want to know .. makes for so many combinations that the closest you're likely to get is by getting good at searching and sifting through information.
If you want to learn Python I recommend their reference. It is well written and for what it's saying it's easy to understand. It is also very short for how much it says. It may or may not be targeting your current level of understanding, again, very difficult to match.
When it comes to teaching reasoning about code, that's even worse than the language itself. You would need a personal tutor. Recorded university lectures for topics you're ready to digest may be close enough - they pretty much assume you know nothing from previous education, they just go fast.
When it comes to technologies, some have very good documentation, learn those, ignore the rest.