I'm a little confused about this thread.
If you want to learn the science of programming, then you're going to need to learn how to program long before. By its very nature, programming is engineering and not science. The scientific aspect of computer programming is not in the learning how to program, it's the research and development of the language and its implementations & uses.
Some well known computer scientists include Bjarne Stroustrup and James Gosling. These men are computer programmers and computer scientists; there's a big difference. Bjarne Stroustrup is the man who created the C++ language, and James Gosling is the man who created Java. These were scientific endeavours because they involved research and development of new tools for engineers to use (languages); they were not learning how to program, they had done that many years before.
I don't have any recommendations on how you should learn; however, because we all learn our own way. Most people love books, but I hate them with conviction. I can't learn programming from a book. For me, I had to learn by trial and error, starting at the bottom and making mistakes. Finding web sites that I liked, whose tutorials I could easily understand. Much of the learning process is hindered by bad teaching.
My best advice is to start out with some basic resources like W3Schools and popular PHP introductory lessons and just write code. Failure is how you learn in this world. Writing code, reading error messages, asking for help, finding out what those errors mean and learning why your code failed. That's my advice.
Good luck, I think you're going about this the wrong way, but that's just me.