One day of my life, I realized that I want to become a Front-end Developer. I searched the internet for tips and advises on how to become one and I came across this very cool yet frank advise by Dillon Grove. I really had goosebumps upon reading this and it seemed he was directly talking to me. Thanks Dillon for being such a motivation!
Here it is:
Like you, I've found that there exist very little in the way front-end web development courses. And the courses that do exist leave a lot to be desired. As a result, it seems to me that most good front-end developers I've met are more or less self-taught. So if all we're trying to do is answer the question you posted ("How do people generally become front-end web developers?") we can stop right here. I tend to agree with your speculation that most of them are probably self-taught.
But I'm willing to bet that's not quite what you want to hear. By virtue of you asking this question, I'm guessing you're trying to find out how you can become a good front-end developer and if that's the case, simply saying "teach yourself" isn't useful.
Now, I could go on and on about what books you could purchase, or which technologies you should learn and in what order but to be honest, I've recently come to the conclusion that all of those things are pretty irrelevant. Sure, pick up a starter book if you want. I really don't think your specific choice of book will make much of a difference in the long run.
I could also start listing off what I think the qualities of a good front-end engineer are and hope that you might absorb some of those qualities. But I don't think that'll do much good either. If you're just starting out in the field, you probably have no idea how to apply those qualities to what you're doing.
Instead, I'm going to try to impart upon you a specific strategy for self-learning. This is the strategy I've used and I daresay it's worked pretty well for me. So here it is:
Stop trying to learn proactively and start doing things instead. Ask and answer your own questions.
Going out there and reading a book/blog about HTML/CSS/JS isn't going to do you much good if you don't know why you're reading it. If you're anything like me, you're going to retain maybe 10% of the material. You could read 20 books on the subject and you're not going to be much closer to being a good front-end developer.
Instead, just start a damn project. Set a goal of making something that you know you don't know how to do. Start writing code. At some point you'll run into a something you don't know how to do. Type what you want to know how to do into Google and figure it out. Then do it.
I should point out that this process can take hours even for the simplest thing. Especially if you don't know exactly what it is you even need to Google. But in 99% of cases, you'll learn something along the way. And the thing you learn will be relevant to what you're doingand because of that it will stick with you.
You might read about CSS Floats in a book and you're going to forget it within a week. Try to create a layout that requires floats and spend 2 hours on Google until you figure out how to make it work and you're not ever going to forget that shit.
Then keep setting the bar higher. Make loftier goals. Force yourself to meet those goals. Sometimes you'll find out that the thing you want to do isn't possible. Great, you've now learned the boundaries and limitations of the technology you're working with.
You literally cannot go wrong with this approach. No matter what you do, you're going to learn something.
This all sounds like an incredibly inefficient way of learning, I know. Why would you spend hours on the internet figuring out how to do things on your own when you could supposedly just read a book or two and learn everything you need to know? Because the latter doesn't really work, that's why. There isn't a shortcut to this stuff. You just have to do it. You have to bang your head against the wall until you figure it out. Keep chipping away.
Give it some time and you'll find that you have to consult the internet less and less. You'll run into a problem or a bug and remember experiencing the same bug in another project you've already done. You can then go back to that project, see how you fixed it, and apply the same fix to what you're doing right now. Eventually, you'll just know how to fix things. And then you'll begin to realize that you're getting pretty good at this stuff.
I'm not saying that you should never read a book. Often when you first start out it's good to read at least one introductory book to sort of get your bearings and learn some basic terminology. But don't expect books to do the learning for you. Ultimately, it's up to you.