Completely cosign about spreading out too many languages/frameworks part.
I've used way too many different languages only to realize there's just no swiss-army knife for everything. After I learn Elixir and Elm to get some work with functional programming I'm going to run with those, Golang and React for the next few years barring anything MAJOR groundbreaking language that renders everything else obsolete. Just going to pick and choose which one would be best for a situation. Sticking with mySQL for the DB.
Yet another cosign. CSS Modules actually made me enjoy writing CSS along with Flexbox and @keyframes for animation. It really makes dealing with CSS so much easier. Went from making websites that look like they belong in the 90's to a more modern look with even less struggle than it took to design ugly looking websites. It just forces you to look at things one-by-one. It's almost just like normal code. I used to get major anxiety writing that CSS, it was tough.
I have a feeling a lot of people would that hated CSS would find it much more tolerable using those modules. www.css-tricks.com has awesome tutorials too, especially their flexbox one which is really robust and gets to the point with great diagrams.
Only thing to watch out for is applying element tags to those modules, I'm not sure if it's the same in Angular 2 but in React's CSS because from what I've seen writing CSS with an element selector in a module will affect all the other elements of the same type in other modules. Not 100% on this, but that was my observation.
Slowly, but surely, understanding the correct path of learning is coming to me. My problem before was I was spreading myself around, trying to learn all kinds of different languages. I've done projects in Ruby, Javascript, dabbled with C++, went through a book on Java, one on C#, dabbled with Python, etc. I don't regret that because I learned there are similarities between all those languages, and if need be, I could focus and work on projects in most of those languages given a bit of ramp-up time... but the point I'm at now is that I've just picked a few tools and I'm focusing on 'making things' as opposed to trying to know all the features this or that framework or language provides. I think it's important for people to just pick a few tools that vibe with them and run with it and make stuff. When you get to the job, if your job requires you to use some other framework, then use that, but don't waste time trying to be a master of several frameworks that essentially do the same thing. No need to try to master Angular 2, Ember and React. It'll just leave you being mediocre at all 3.
Right now I'm pretty much just operating within the JS/Typescript world, learning full stack development, and I'm also dabbling with game development in both C# and JS. The next few months, my focus is going to actually be on books that show me how to build actual projects with the occasional code style type book.