On the other hand, front-end engineers not only have a decent grasp of the language itself, but also an understanding of software architecture principles, and put those principles into practice when writing their code. This can mean any number of things: organizing functions into object namespaces; using closures to encapsulate and separate code; writing smaller, more cohesive modules that are bundled together to create more complex patterns; using object prototypes to minimize your code’s resource footprint in the browser; exposing all functions for automated testability; DRY principles; event delegation; MVVM/MVP patterns; literally too many to list here.
When we interview job candidates, one of the first questions I typically ask is for them to rate themselves on a scale of 1 to 10 in a variety of categories, with 1 meaning “I think I heard that word once before” and 10 meaning “I could write the spec from memory right now if you asked me to.” Most people realistically fall somewhere right in the middle. Even I wouldn’t rate myself higher than an 8 in any given category. However, even explicitly stating the extreme ends of the scale to our candidates doesn’t stop some of them from rating themselves a 10, even if they’re more like a 3 by the end of the interview.
This highlights a concerning disconnect, or a misguided sense of bravado, on the part of a lot of job candidates. Some probably just think they’re a lot better than they actually are. This typically stems from a person just not knowing what they don’t know. As I myself get better and better, it becomes easy for me to recognize things that others may not know, but is still every bit as difficult to figure out what I still don’t know. The only way to combat this in myself is to read as much as I can (books, blogs, articles, other people’s code), and to continue to work and collaborate with other people in this industry. Never underestimate what you can learn from other people, even people you may think you’re smarter than. Nobody is truly smarter than anybody else, it all comes down to differing skill sets, areas of expertise, and perspectives. I’ve had plenty of “Aha!” moments from people under me at work, just by listening to them talk about something I hadn’t considered previously, or spinning something in a different way than I’m used to seeing it.