28 comments

[ 2.9 ms ] story [ 43.5 ms ] thread
Perhaps you can add something about ARIA tags (accessibility).

Much of the web could improve in terms of accessibility.

A subject not covered nearly enough!
Aria tags are useful, but properly used semantic HTML elements are better.
This is already quite dated. Most of the content is geared towards the state of JS in 2013-2015.
Can you write a quick list of missing concepts ?
I interview for front-end at a big company (actually a different title, but effectively front-end engineers) and we explicitly do not ask trivia questions, which is what this guide focuses on. I might ask warm-up questions like "a customer says they click a button on the page and nothing happens, how do you investigate?" and that's it. The entire rest of the interview (1hr) is spent on a coding problem where we both walk through and discuss solutions, and I let them code and we talk about their code.

I truly believe that experienced engineers can learn 1000x more about someone's skillset in the first 5 minutes of them coding than any amount of trivia questions.

it's more that obsolete concepts like var, AMD and Common.js are focused on.

These techniques are obsolete & lead to fragile code especially when blended with newer concepts like native js imports, let and const.

It really depends on the job - I'm interviewing jr. devs, and a lot of these questions are good for testing their basic knowledge. Not every front-end job is about cutting-edge javascript.
This just seems to be a list of answers to common "trivia" questions, which are becoming much less popular in interviews, and often are just one part of it, rather than a guide to a whole interview
The JS section isn't bad but I agree on most of the HTML and CSS sections.
This looks like a great checklist when you're implementing a multi-lingual site for example. But for a developer interview, this is just terrible.

This is not the way to find out if someone can and has experience to build complex shit that is easy to manage(also by others). This whole assessment model is totally deprecated (if it ever worked at all).

One thing I really miss out here: questions around behavior, especially motivation.

I conducted more than 200+ interviews as a department lead and for me the single most important skill in an ever changing frontend landscape is enthusiasm and motivation.

How do you keep up with the current trends? Name some? Ain't it tough to learn new stuff all the time? How do you deal with fatigue in this regard?

What blogs/authoers do you follow? Do you work on Open Source or private projects in your spare time? What is the current version of ECMA, Framework etc. and when does the next come out? Name 3 of the last things you learned this year as a developer.

These questions really make enthusiasts shine. If I had to choose motivation over knowledge, I would always opt for highly enthusiastic people over knowledge people. Former will easily surpass the later.

Besides that I like this idea. Very good!

> I conducted more than 200+ interviews as a department lead and for me the single most important skill in an ever changing frontend landscape is enthusiasm and motivation.

I'm sorry but enthusiasm and motivation can die pretty quickly. I mean I am just a contractor but when I see my manager hit a wall trying to do basic things like getting another co-worker's computer unlocked too a whole day of fighting IT and getting another 8 GB of RAM for our desktops which had 8GB RAM took well over four months, our request for SSD instead of 5400 rpm hard disk couldn't be accepted because the company has a contract with HP and is only allowed to buy from HP, and when IT changes a configuration that brings down your internal website application, it takes for plus hours of emails back and forth for them to revert their change of the config file, the enthusiasm and motivation will eventually die.

It is still possible to stay motivated. For example, I play with some web stuff in my spare time but I doubt it is possible to stay motivated at work for any length of time.

I used to think this way, but now I do front-end (mostly) interviews at a gigantic company and I don't give two shits about motivation. Can you write HTML, CSS, and Javascript effectively, manipulate the DOM, write styles, and dip into a Python/Java backend on a rare occasion? Hired.

Most front-enders I interview can't even add, remove, or edit a div without a framework helping them bind an object to the DOM.

Does your gigantic company require your frontenders to add/remove/edit a div without a framework though?

Or do you put them through your test only to have them use React as part of the day job?

No I’m not going to eat sleep and breathe development. It’s a job to me. I’m not going to work 40 hours a week in front of a screen and then come home and “contribute to open source.”

I will read blogs and listen to podcasts for whatever area that I choose to specialize, but I’m not going to spend time actually investigating it outside of work.

If you as an employer deem it important for your employees to keep up with the latest trends and contribute to open source, allocate some time during the day.

But, I guess this is also the reason I abandoned the clusterf%%% of modern front end development almost 10 years ago and just try to stay somewhat current with JS.

I definitely agree with this sentiment. However, if there is any development job where enthusiasm would be of a benefit, I would think the front end is a good candidate. I imagine it also depends on the culture of the workplace, too. Some may favor the "trends" that are associated with the web, while others may just want somebody as you describe.

I do not hire developers, but I can imagine that with the lower barrier to entry for front end jobs in 2020, companies have a difficult time differentiating all the new grads/bootcampers/self taught developers. It's almost teetering towards the same conversation as the leetcode problem -- merely finding a way to cut the pool of candidates given the vast amount to begin with.

not mutually exclusive! a hard worked and productive 8 hours is rare as it is.
That's fine, but FWIW if I had to strictly choose between the two, I too would also optimize for passion over expertise (of course it's never a binary choice in the real world).

Though I think it has more to do with the kind of developer I am and the kinds of developers I've enjoyed working with in the past than anything intrinsic about how much value they might be able to provide to the company.

Luckily for me, I've noticed that frontend developers (especially those who like to work for startups) tends to be a very self-selecting group that biases towards passion. Those who don't have at least some amount of passion for frontend development would probably very soon realize they'd be happier specializing in some other ecosystem and migrate away (as you yourself did).

(comment deleted)
Lets be honest: if you can copy and paste from w3 schools you can probably be a front end web developer.
Are you talking about building a 90s-style website or something like Figma?
I wish people would only build 90's style sites.

The way things are going is bad, here are some example sites that I find particularly difficult to use:

    - new reddit (old reddit is much, much better)
    - parley (yes, the "free speech" twitter) has a terrible UI. it takes like a year to post a tweet and you wait like 30 seconds for some dynamic spinning progress dialog to go away
The web was not invented as an application development platform. I think we have gone too far with web applications. Good web apps are simple and have low complexity. Once you start trying to make it really "modern" and fancy you're shooting yourself in the foot because of all the browser quirks. The more you use heavyweight frameworks, the more complex and crufty your work becomes.

With that said I do see the appeal because there aren't many good desktop UI frameworks either. I've worked with Qt enough to know it's plenty frustrating. On the other hand, if it's so easy to make a portable web app, why do we have things like Electron that ship a browser with your web-app, aside from native experience? Wait, did I dare say: native experience, is valuable?

We are well past peak web app, we are even past peak mobile app. What even makes an app, an app? Is it that it's tailored to a smaller purpose than more general applications? Would you call Microsoft Visual Studio an app? Probably not. Is it good software, yes. Is Vim an app? I don't think I'd call it that. How about 'cat'? Nah... Apps are tailored to a specific business purpose rather than a more general use case.

Apps are a fad, but good software tools are not a fad. Build good tools, don't build apps (unless you're paying the bills)

  > Would you call Microsoft Visual Studio an app? Probably not.
Yes. Visual Studio Code is a good example of a high-quality web app built by front-end developers.

'App' is a shortening of 'Application' popularised by iOS.

The state of the art in UI Engineering, is everything that used to be done in C++, but on the web/cross-platform using a mixture of JavaScript and WebAssembly.

Anyway, my point is that you are shitting on front-end development, yet there are front-end engineers out there developing high-quality software, and it is difficult: it requires a lot more ability than just copy-pasting from W3 Schools.

I don’t agree. But, there is no way that I would go through the trouble of keeping up with modern front end development and the $cool_kids framework of the day.

A front end developer is the easiest thing to contract out and have them code to spec. There is a lot of demand, but since it’s the easiest to train for, salaries have stagnated for years as their more supply.

You get the worse of both worlds. It’s harder to keep up with the changing landscape and you get paid less for your trouble.

(comment deleted)
I think that it would be good for this to have questions about HTTP as well, such as status codes, caching, and content negotiation.