2 min read.

If you actually want to be good at Front-end web development you have to learn critical thinking and be curious. Ideally you would start with a really good reason to learn it. And it isn’t like learning wood-working. It is more like learning to write fiction. The learning never stops, there is never a point as which you have completed and become a Front-End-Expert. And beware of being a http://www.w3fools.com​ As a seasoned front-end developer I’d say that 95%+ of developers have a shallow understanding of the web in all respects and are quite often wrong where it counts.

1) Try to develop a curiosity for understanding how things work underneath the glossy surface

2) Understand that everything has a history and is based on conflicting needs, so don’t expect perfect solutions

3) Learn the web fundamentals:

https://en.wikipedia.org/wiki/Representational_state_transfer​ http://www.w3.org/TR/html-design-principles/​ 4) Before you join the chorus wanting to do everything in JavaScript learn the notions of https://en.wikipedia.org/wiki/Declarative_programm...​

5) Don’t forget that the web was meant to be a web of documents and a forest of applications

6) Don’t get caught up “Programming in jQuery” unless you really just want a to know enough to make interactive prototypes(which is perfectly fine). That way lies trying to build a house with a swiss knife while complaining that your house looks a bit flimsy. When you get to it learn to make things with JavaScript from scratch in a modern browser without depending on frameworks. That way you can better choose when to use a framework or library

You don’t have to understand all this right away, but you should before calling yourself competent.

So first step is give yourself a project that you can do in a month. You learn by doing. Then go look at existing projects. Open Source has some great examples. Look for projects on GitHub with a good amount of contributors. That way you have a good community to ask and discuss with. These communities often have IRC or Gitter chat that might teach you things. Next make improvements to Open Source projects and submit pull requests. You can learn a ton from experienced people giving you feedback in pull requests. The hard bit is staying humble and making the changes they ask you to make, but it is worth it for the lessons.