h5bp / Front-end-Developer-Interview-Questions

A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore.
https://h5bp.org/Front-end-Developer-Interview-Questions/
MIT License
59.55k stars 11.05k forks source link

Overall improvements list #435

Closed cezaraugusto closed 4 years ago

cezaraugusto commented 6 years ago

So at the time of this writing, this project counts 31.661 stars which indicate how popular it is -- hanking in 60th in number of stars, just 2 positions behind Angular.

However, the web evolves fast and while most questions here remain relevant, I guess we're in a good time for an update -- there are lots of improvements we can do to help more developers. I tried to list some:

Better guidelines: what questions do we want? what makes a good question? (related: #307, #331, #335, #361, #421, #433)

We should describe more fully what questions we want to be added. Plus, in this project standards, what makes a good question? Being crystal clear here reduces stale PRs and encourage more contributors. Even a small addition such as a descriptive issue/PR template is helpful.

Also, I think questions regarding performance, http(s) and some front-end security best practices are valid and should be included too.

Re-organize questions (#257)

The web evolved a lot since this project was created -- specially JavaScript. Breaking down questions and dividing into sub-groups seems to be a necessity. How can we make it in a nice way?

Indicate resources with good answers (#338)

I like the idea of a "questions only" project but if we really want to help interviewers/candidates the best we can, having an area with some resources is a nice to have. While some searching might give the answer users are looking for, they might be misleading. The side effect of this might be that resources can potentially be oppinionated but I'd like to open discussion for this.

Create a new website

While GitHub is popular, there are developers that rarely use source control at all, or just prefer other platform, so the website should be the go-to place for interview questions. Ours is kind of old and would be cool to have a better website.

I spoke to a friend (@edkf) who's interested in making a design mockup to make it look cooler. I thought about using Docusaurus just because it's easy and designed for docs but if overkill I'm open for any other tool to make it.

Automate translations

As far as I know, the electron-i18n project was very successful using Crowdin as a tool for translating the project. Accepting translation PRs means that we rely 100% on maintainers which usually do not speak the translated language. Having it open for live edits might have better eyes to review translations. I'm not familiar with the tool but this might take some work to automate things, but would be nice.

Dedicate a -- very special area -- for contributors.

I really like the All Contributors specification and we should definitely use it. The website has some early contributors and a link to show all the other 100 ones. While this is cool this can be better with a cool link/avatar exposed for each contributor so maybe some of them might use this project's popularity to land a good opportunity, who knows? that's why we're doing this!

cc @h5bp/frontend-interview team. This is just a tracking list of nice's-to-have, we can break it down in smaller issues and address each idea separately as we define things.

By the way this is not tied to maintainers only and all feedback is welcome.

jestann commented 6 years ago

I'd be willing to help collect resources. I'm going to be researching this stuff anyway and I would be glad to collect some good articles on these topics.

I'd also be glad to help with putting together or maintaining a site.

Is this reference going to be framework- and tool- independent? For instance, no questions on babel, webpack, state management in React, etc...

blackfalcon commented 6 years ago

@cezaraugusto 100% agree. While I think that the maintainers have dine a great job keeping this project from going off the rails, there are some cracks and there are many questions that show age.

I have recently submitted a series of PRs that either update old/vague questions or suggest removing them all together (XHTML anyone?).

That being said, I also agree that a large part of this project that has been missing for some time is a good answer resource. To that end, I have taken up the responsibility myself to fill that gap and would welcome help with this project http://fedevinterview.masteruidev.com/

My intent here was to go through these questions with an objective eye on the questions and document what was relevant and update what is not.

In regards to i18n, I am unsure as to what this project's process is for supporting that, but I feel that some more information and firmer guidelines around that would help.

I think you make a lot of great points so in the spirit of open-source, I would suggest you too propose pull requests of changes specifics can be discussed.

roblarsen commented 6 years ago

General thoughts:

I think getting rid of stale questions is a good, high value area to focus on. I want to continue to see new, modern questions added, but as @blackfalcon has shown with his audit of the questions over the past few weeks there are some dated questions on the list.

That would also free up some space to beef up some more modern questions.

@jestann I think the decision to shy away from framework and tool specific questions is a good one. It would just be a rolling purge here as the front-end development hype cycle is a tough to keep on top of. OTOH, JavaScript is still just JavaScript, CSS is still just CSS, Some of the details might change, but good core questions are still valuable.

I also believe that reorganizing the questions would be great. How do people feel about multiple files for subjects? The original goal was for just the big readme in the project root to be the content, but I find the individual file to be unwieldy to work with and having one huge file creates a lot of conflicts (half the open PRs can't be merged without manual intervention.) If, as suggested, we had a well-designed site which was the primary way to ingest the questions, then the structure here on Github could be a little more user friendly from an authoring perspective.

I think the idea of breaking out some issues to refine directionand soliciting help would be a great starting point.

I'll continue to help out as I'm able-- which won't be a ton for the next month or two as I've got a book to finish. Although once I'm done, I'll be uniquely qualified to add some SVG questions....

blackfalcon commented 6 years ago

@roblarsen @jestann I agree, JS is JS, CSS is CSS. Having held, coached and attended a number of front-end interviews, there is always a focus on the pillars of tech. While i'd also ague that many interviewers are asking framework specific questions, but those are usually in light of evaluating familiarity. Maybe a compromise could be made that there are front-end dev questions and then there would be typescript-dev, angular-dev and react-dev questions and those would be separate repos in regards to this one, not mixed in.

I am all in favor for a project re-org. Prior to addressing this, I'd suggest that we address all the existing PRs in the repo, some dating as far back as June of 2016. @roblarsen, sounds like you are very busy at the moment. I'd like to offer assistance in going through these PRs. In reviewing some of the PRs we have a mix of PRs that need to be rebased and some where there are just lingering open questions.

I think having a dedicated site to this repo would be a great idea, but I don't think it's wise to put that cart before the re-org horse. At the very least I think that it would be worth the effort to re-list the questions from easy to difficult.

billyjov commented 6 years ago

I think the idea of breaking out some issues to refine directionand soliciting help would be a great starting point.

@roblarsen i agree.

@cezaraugusto would you like to create some issues about this ?

pfreema1 commented 6 years ago

I'd love to help out with the site. This is an awesome resource!

cezaraugusto commented 6 years ago

thanks all for the feedback, I created an issue for each idea above. Feel free to jump in and help to make this even better.

Nkdiaz commented 4 years ago

One thing I would suggest is a separate section for JS framework-specific interview questions. At least the top 3 (angular, react, and vue).

kaleb commented 4 years ago

I think that there should be a section about HTTP as well such as status codes, caching, and content negotiation.

roblarsen commented 4 years ago

Housekeeping!