How to understand the differences of Web Frameworks, Databases, and Libraries?

I apologize ahead of time for seeming ignorant (which I am, for the most part), but I feel like I am swimming in a vast ocean with no way to tell where land is.

Where I stand: I am a junior in college. I have a solid background in Java and C++. I've been coding websites in Javascript, HTML, CSS, and PHP (using MySql databases) since middle school. I have only just uncovered the magical box filled with these mysterious "frameworks."

My Predicament: After reading in my spare time wikis, blogs, and StackOverflow questions week after week for the past few months, I feel that I am no closer to understanding the items in this ominous list and how they relate to one another.

  1. Yeoman, Grunt, Linemanjs, Bower
  2. Nodejs, Go, PHP
  3. Mongodb, Couchdb, MySql
  4. Angularjs, Ember, Backbone
  5. Terms like: boilerplate, scaffolding, frameworks, etc...

What I am Asking: I understand that explaining any one of the above would be a question too big for a single StackOverflow question, but that's not what I'm looking for. What I am looking for is a guide that explains in-depth what each of these groups are used for and if/how they can be combined (ex: using Angularjs with Nodejs). I am happy with a link if an article already exists, but I have yet to find an article that covers all of the above.

El Fin: I love learning new languages (especially for the web), but right now I feel like I'm blinded, running around in circles like a chicken with its head cut off. A shove in the right direction would be great :) If any part of this question is inappropriate or needs clarification, please let me know before you downvote it. Thanks for taking the time to help :)

I'll put this in as an answer to help clarify why this is too broad.

I think that the GREAT BIG point you are missing is that there are specific reasons someone chooses a particular framework or server environment when they start a project.

This is all dependant of a boatload of things that like budget, knowledge, availability, expected scope of the project, etc... It also may come down to, "I'm starting this new project, what is available in this work environment for me to use?" Then you don't really get to choose. You get what you get.

So what's the best package of technologies to use? That SO depends on what you're doing.

Example: If you are building a simple site for a local store that just needs a few pages, and you want to keep your costs low. A simple LAMP solution would work fine. But if you want to design the next Facebook, even though the core of the system could be build using all LAMP (and it in fact IS), you will need MUCH more powerful servers, and MUCH better and more efficient coding. Not to mention a boatload of server space for both the site AND the database.

In many cases, when you see people pooling together what might be considered obscure technologies, all they really break down to are collections of libraries. It's like choosing JQuerry over some other JS library that essentially does the same thing. One may be better than the other. But you go with what you are comfortable with.

So, when you are asking about how, why, and in which way, do people combine technologies together, there is no way to answer that at all. Other than to say, it's specific to their needs. And that's about it.

Reading articles that compare all these different things together will only give you an idea of what they are capable of, and what their limitations are. In the end, it's always a matter of opinion what is better. Otherwise we would all be coding with the same thing.

For my part, I prefer PHP over ASP. I prefer working straight out of a text editor than using an IDE or any MVC framework. I use JQuerry where it's needed, but don't over use it. But that's just me.

And I'm sure this still didn't answer your question.