How to Become a Front-end Developer and Designer
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.