Giter VIP home page Giter VIP logo

frontend-job-interview-test's Introduction

Frontend job interview test

What we will cover

  • What is a code test?
  • What can you expect to face?
  • Why I think frontend code tests are hard to make.
  • What I believe to be a good code test.

Some thoughts

Frontend programming moves faster than any other programming which means that the tools you learn today will change within roughly 6 months.

Does this mean you have to learn them all? No, but it does mean that someone who doesn't know better can start adding "bad" libraries to your project.

11 years ago Sass became a thing and compiling css started to become popular.

10 years ago tools such as Jquery and Bootstrap became popular.

8 years ago tools such as Handelbars and Backbone came around, Javascript became a bigger part of frontend development.

6 years ago Single page applications became popular with tools such as Angular and Node started to get popular.

4 years ago bundlers became a big part of frontend and npm had all but made other package managers obsolete.

2 years ago flexbox became the next big thing to happen and serverside rendered React got popular.

1 year ago css grid came around

Today the tool list include things like Postcss, Gulp, Grunt, Npm, Node, Css modules, Babel, Webpack, Sass, Less, React, Angular, Vue, Redux, Jest, Mocha, Browserify, Next, Express, Karma, Ember, Meteor, Axios, Superagent, Sinon, Enzyme, Bacon, Lodash, Jquery, Bootstrap, Foundation, Material-ui, Ramda, Hapi, Sails and the list goes on and on.

In the last decade frontend has seen so big changes that it is no longer possible to keep track of all the tools and changes unless you breathe it.

Conclusion

A frontend developer is not only someone who needs to know how to write code but also a person who needs to be willing to keep up with the volatile ecosystem of tools and practices.

You can make the argument that a company does not need to change their stack with the trends and you are right, but consider the following:

Knowing the tools and the trends does not mean that you use them all but it means that you know what is a good idea and what is a bad idea.

If you hire the wrong person the user facing part of your system will be in the hands of someone who can cause more harm than most. If your frontend developer is bad your website will feel bad and adding features will take longer and longer.

If you hire the right person you will have the user facing part of your system in the hands of someone who can make your website feel high quality without adding tech debt that slows the development process down.

If you are really lucky a single frontend developer can make a UI that looks beautiful and simple feel the same way.

My interview questions

  1. What are the most important tools for you and why?
  2. What is your favourite feature in Node and why?
  3. What is your favourite feature in Css and why?
  4. What is your favourite feature in Javascript and why?
  5. What is the most difficult part of a frontend project and why?
  6. How would you fix a slow website?

What are the most important tools for you and why?

Bad answer: Bootstrap, jquery (unless you have a really good reason) Decent answer: Sass, Angular/React/Vue, Npm, Webpack Good answer: It depends on the application. (gives examples of different tools that suit the application)

What is your favourite feature in Node and why?

Bad answer: I don't know Decent answer: async/await, generators, es6 support Good answer: LTS support and motivate why

What is your favourite feature in css and why?

Bad answer: I don't know

Decent answer: flexbox, css variables

Good answer: css grid and motivate why

What is your favourite feature in Javascript and why?

Bad answer: I don't know

Decent answer: async/await, generators, es6 support, map/filter/reduce

Good answer: Object.freeze, fetch, guarding, modules and motivate why

What is the most difficult part of a frontend project and why?

Bad answer: To get the UI to look and feel good

Decent answer: To make everything consistent in every browser

Good answer: To keep up the test coverage, bet on the right tools, keep animations at 60 fps, avoid tech debt

How would you fix a slow website?

Bad answer: I don't know

Decent answer: Ship less code, improve the perceived load time, use lazy loading, reduce asset weight

Good answer: use the browser profiler to investigate, reduce the number of http calls, use vanilla Javascript

frontend-job-interview-test's People

Contributors

fchristenson avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.