Now there are a lot of CSS preprocessors, webdev frameworks, JS libraries, and software to convert designs into code out there. So, is it reasonable to learn HTML, CSS and JS? Or rather it is better to spend time and efforts on learning these tools?
As great as today’s pre-processors, frameworks and libraries are, understanding the fundamentals of HTML, CSS and JS is hugely important. Using something like a CSS pre-processor, for example, is far easier if you understand CSS itself. Same with JS libraries and frameworks.
That’s not to say you have to favor hand-coding over these resources. It’s just that starting with the basics and building from there makes the most sense. Ultimately, though, as long as you publish quality code, any approach that gets you there is perfectly acceptable.
Most front-end developers I know consider themselves “self-taught,” meaning they have no formal education or degree in their field. Instead, like you are doing now, they crafted their own unique educational path to professional status.
I learned by following tutorials on sites like Smashing Magazine, Nettuts and CSS-Tricks. These sites do a good job of mixing intermediate concepts with basic ones, so I was learning fundamentals and fun, fancy stuff like CSS3 drop shadows. Combining basics with more advanced information helped keep me interested and, therefore, learning. This, in itself, is critical to being a successful web professional. My suggestion for you is to investigate online learning tools like Treehouse and Codeschool.
To help you with your own educational path, here are some great resources I recommend: