erichartline / tiger-slackbot

Node.js Slackbot to help with technical interviews
0 stars 0 forks source link

Create initial list of technical interview questions #3

Closed asteed21 closed 7 years ago

erichartline commented 7 years ago

Haven't had a chance to compile individual questions yet but here are some useful pages I have starred:

https://github.com/h5bp/Front-end-Developer-Interview-Questions https://github.com/MaximAbramchuck/awesome-interview-questions https://github.com/bmorelli25/Become-A-Full-Stack-Web-Developer#get-the-job https://github.com/jwasham/coding-interview-university

erichartline commented 7 years ago

Be able to clearly explain these in words (no coding):

What is Big O notation, and why is it useful? What is the DOM? What is the event loop? What is a closure? How does prototypal inheritance work, and how is it different from classical inheritance? (this is not a useful question IMO, but a lot of people like to ask it) How does this work? What is event bubbling and how does it work? (this is also a bad question IMO, but a lot of people like to ask it too) Describe a few ways to communicate between a server and a client. Describe how a few network protocols work at a high level (IP, TCP, HTTP/S/2, UDP, RTC, DNS, etc.) What is REST, and why do people use it? My website is slow. Walk me through diagnosing and fixing it. What are some performance optimizations people use, and when should they be used? What frameworks have you used? What are the pros and cons of each? Why do people use frameworks? What kinds of problems do frameworks solve?

from https://performancejs.com/post/hde6d32/The-Best-Frontend-JavaScript-Interview-Questions-%28written-by-a-Frontend-Engineer%29

erichartline commented 7 years ago

Explain event delegation Explain how this works in JavaScript Explain how prototypal inheritance works What do you think of AMD vs CommonJS? Explain why the following doesn't work as an IIFE: function foo(){ }();. What needs to be changed to properly make it an IIFE? What's the difference between a variable that is: null, undefined or undeclared? How would you go about checking for any of these states? What is a closure, and how/why would you use one? What's a typical use case for anonymous functions? How do you organize your code? (module pattern, classical inheritance?) What's the difference between host objects and native objects? Difference between: function Person(){}, var person = Person(), and var person = new Person()? What's the difference between .call and .apply? Explain Function.prototype.bind. When would you use document.write()? What's the difference between feature detection, feature inference, and using the UA string? Explain Ajax in as much detail as possible. What are the advantages and disadvantages of using Ajax? Explain how JSONP works (and how it's not really Ajax). Have you ever used JavaScript templating? If so, what libraries have you used? Explain "hoisting". Describe event bubbling. What's the difference between an "attribute" and a "property"? Why is extending built-in JavaScript objects not a good idea? Difference between document load event and document DOMContentLoaded event? What is the difference between == and ===? Explain the same-origin policy with regards to JavaScript. Make this work: duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5] Why is it called a Ternary expression, what does the word "Ternary" indicate? What is "use strict";? what are the advantages and disadvantages to using it? Create a for loop that iterates up to 100 while outputting "fizz" at multiples of 3, "buzz" at multiples of 5 and "fizzbuzz" at multiples of 3 and 5 Why is it, in general, a good idea to leave the global scope of a website as-is and never touch it? Why would you use something like the load event? Does this event have disadvantages? Do you know any alternatives, and why would you use those? Explain what a single page app is and how to make one SEO-friendly. What is the extent of your experience with Promises and/or their polyfills? What are the pros and cons of using Promises instead of callbacks? What are some of the advantages/disadvantages of writing JavaScript code in a language that compiles to JavaScript? What tools and techniques do you use debugging JavaScript code? What language constructions do you use for iterating over object properties and array items? Explain the difference between mutable and immutable objects. What is an example of an immutable object in JavaScript? What are the pros and cons of immutability? How can you achieve immutability in your own code? Explain the difference between synchronous and asynchronous functions. What is event loop? What is the difference between call stack and task queue? Explain the differences on the usage of foo between function foo() {} and var foo = function() {}

from https://github.com/h5bp/Front-end-Developer-Interview-Questions

asteed21 commented 7 years ago

This is all great, I was going to throw up two of the same links but you beet me to it. The thing I like about the first link you shared is the categorization.

Do we want to consider having categories for the questions that people can pick from? Could be a later feature consideration as well, but wouldn't be too hard I think if the grouping is already there.

erichartline commented 7 years ago

Yeah, we could split up our question database into different sections. I mainly copied the JS questions from these pages, but we could definitely add in CSS, algorithms, etc

erichartline commented 7 years ago

Closing this since the tech questions are now implemented.