✏️ 4.1.4.1 Technical Interview Preparation: Functional Programming
Technical Interview Questions
- What are some of the key differences between functional and object-oriented programming?
- What are some of the advantages of using functional programming over object-oriented programming?
- What is immutability and why is it important?
- What is the difference between imperative and declarative programming?
- What are pure functions and why are they important to functional programming?
- What does it mean when a function is a first-class citizen? Why is it useful for a language like JS to offer this functionality?
- What is a closure? What are some of their use cases?
- Demonstrate the differences between writing a loop and using recursion to solve a problem. What are the advantages of using recursion? What are potential disadvantages?
- What is the difference between composition and classical inheritance? What are some of the advantages of composition?
- What does it mean to mutate state? Why do we want to avoid this in functional programming?
Stories and Examples
Offering a tangible story or example that highlights your skills usually goes much further in an interview than simply telling your interviewer you're good at something. For example, it's better to tell a story about a time you tracked down a tricky bug versus simply saying "I'm good at problem-solving!"
Review the STAR method discussed in this lesson on non-technical interviews. Use the STAR method to practice answering non-technical questions with your partner.
Again, if you come up with a story or example you feel good about, jot it down somewhere. It's tough to come up with stories like this in an interview on the spot. Having a few tucked away to review before an interview will be a huge benefit to you later.