Books have always helped me. From reading your initial post, it seems like you’re trying to master everything in 3 months. You didn’t say when you started PHP or Node, but if you’re rushing through trying to be an expert overnight, that won’t happen. What’s the rush, anyway?
My favorite books have been books on Computer Science using a various language to show the concepts. Two come to mind:
Starting Out With C++
Python Programming: An Introduction to Computer Science
The Starting Out With C++ book was the first book I read in school for my major. It was overwhelming, the first semester. I had dabbled in software, but hadn’t done much. By the second semester, it was a bit easier, and on and on. You just have to keep practicing. It took me a year and a half to understand C++.
The Python Programming book was the first time I appreciated Python. Learn Python the Hard Way, and the other terrible resources out there caused me to hate the language. I never used it. I learned Ruby just to spite Python users. However, that book changed my perspective and gave me an infatuation with the language. I also realized a lot of my problem was Python 2.x versus Python 3.x. Python 3 is vastly superior, in my opinion and experience.
I disagree with a lot of what is said here, about bouncing between languages while learning. No, pick one, and learn the concepts of software development. Make tools and applications, get someone else’s code in that language and fix it or alter it. Once you have a deep understanding of Computer Science, software development, and syntax and semantics, then move onto another language. It will come to you much faster, and you will able to apply what you’ve learned previously to your new project.
Flip flopping, and starting to learn JavaScript, and then stop and go into Python, you won’t be useful to anyone asking you to do JavaScript. You’ll spend more time reviewing what you “learned” before than doing anything productive. There isn’t a wrong language, just pick one and go for it.
Good luck.