In software development interviews have different stages and go beyond the usual “where do you see yourself in five years?” cliche. In order to know if someone is right for the job you need to know how they think, not just what they know. Software development is a fickle business and you need to get all the insights you can from the person standing in front of you: how they think, how they approach problems, how they deal under pressure. In order to get there you need questions, good and, often enough, weird questions, to determine not only character but technique as well.
PART I: GENERAL QUESTIONS
- What is JavaScript?
- How do you organize your code?
- What’s event bubbling?
- What’s functional programming?
- What is this in JavaScript?
- When should you use classical inheritance?
- What does unobtrusive mean in JavaScript?
- Should a great JavaScript developer use frameworks?
- What’s your biggest weakness as a developer?
PART II: CURVEBALL QUESTIONS
- Why is Math.max() smaller than Math.min()?
- Why does 0.1 + 0.2 === 0.3 return false?
- Why Does 018 Minus 017 Equal 3?
PART III: COMMON QUESTIONS
- How Does a Function Expression Differ from a Function Declaration?
// Function Declaration function sum(x, y) { return x + y; }; // Function Expression: ES5 var sum = function(x, y) { return x + y; }; // Function Expression: ES6+ const sum = (x, y) => { return x + y };
- What are the differences between var, let and const?
- What happens if you assign a variable without a keyword?
- What’s the difference between Object Oriented Programming (OOP) and Functional Programming (FP)?
- What’s the difference between imperative and declarative programming?
- What is Prototype-Based Inheritance?