I started with no knowledge of JS whatsoever - the code barely made sense to me - so I took some of the more formal lessons in it, like CodeAcademy's course on JS, to start me off.
And then... basically, I wanted to make games, so I had an idea in mind and went from there: "how do I do that?". I looked through the MDN on details of what certain types can do (did you know that at certain point, you could observe changes in an object natively? they scrapped that, for some reason, but there was what you now do with auxiliary libraries) and tried my hand in crappy first designs.
Most of the projects never saw daylight because I was frankly ashamed of the results: it wasn't pretty or effective and sometimes, it didn't even do what I wanted it to. I look at some of them now and think: "Dear Heaven, did I actually write that?". However, it was those projects that made me observe and learn, and because of them I'm now a better programmer.
There were also these cool things that I wanted to do, and they mandated usage of something different from the usual JS experience. Enter the frameworks. The first one I used was AngularJS. ngJS was complicated to design as backbone for a small project and took a lot of figuring out for the JS part; HTML templating, however, was fairly simple. I have also used others briefly, perhaps just to try them out.
The most used library for me remains jQuery, simply because it makes DOM manipulation so much simpler and easier to read - and even that, I tend to exclude where it isn't mandated. I cut away everything I don't need in a project because size (and, therefore, load time) is a major concern of mine: I want to design things that are comfortable to use, and the 20+ kB of minified jQuery I'd rather replace with JS' native methods if I only need two lines of DOM change/observation.
At some point it turned that I've been following some of the stardard guides (there are several, oddly enough) inherently, because it seemed like good taste to me. I'd recommend you code the way that seems natural to you for a while, then read a few of them; take the good stuff in and leave the rest. That way, you make sure what you write makes sense to you but also follows certain common ground if you're ever to give command of your code away to another coder.
CSS came about for similar reasons: I wanted to try something - but mostly, because I can't stand a bland design. I even design my MS Word documents before any significant amount of work, whether they're to be released to public or used for personal goals. As you can see from our discussion with rezzeJ, I design every project by hand these days. I've tried Bootstrap and some others and just got confused; personally, I'd rather know what's been put into the palette because I was the one to build it. This may or may not apply to you; I'm telling you that to say that it's alright to write your own stylesheet.
Basically... do your own stuff and see what sticks. Don't be ashamed by not being able to do something: what I've done with my web dev skills in a couple of years is amazing to me, even if it's not up to the corporate standard. As with everything, strive to learn: search, ask or, if need be, develop your own. I made a timer library for a few games of mine just because I didn't see anything good on the market - and it was also a good exercise. You'll get there, just like I got where I am now. I'm actually learning PHP now, which feels exactly the same as JS did back in the day: mysterious and vague. I'm sure I'll make sense of it with rigorous enough study.
Feel free to ask any questions you might have. Also, feel free to message me if you want some designing done for your projects: I enjoy doing it, and for you, I'll do it free of charge. By the time you message me with something like that, I'll probably have a portfolio lying around.