Skip to content

gopal-fp/Scala-Interview-Questions

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

#Scala Job Interview Questions

This file contains a number of Scala interview questions that can be used when vetting potential candidates. It is by no means recommended to use every single question here on the same candidate (that would take hours). Choosing a few items from this list should help you vet the intended skills you require.

Note: Keep in mind that many of these questions are open-ended and could lead to interesting discussions that tell you more about the person's capabilities than a straight answer would.

Table of Contents

  1. General Questions
  2. Language Questions
  3. Functional Questions
  4. Reactive Programming Questions
  5. Coding Questions
  6. Fun Questions

Getting Involved

  1. Contributors
  2. How to Contribute
  3. License

General Questions:

  • What did you learn yesterday/this week?
  • Why and How do you started learning Scala?
  • What excites or interests you about coding in Scala?
  • What is a recent technical challenge you experienced and how did you solve it?
  • Talk about your preferred development environment. (OS, Editor or IDE, Tools, etc.)
  • What are you thoughts about the other JVM languages in compared to Scala?
  • Do you think that the Scala language and community it's mature enough?

Language Questions:

  • What is the difference between a var, a val and def?
  • What is the difference between a trait and an abstract class?
  • What is the difference between an object and a class?
  • What is case class?
  • What is the difference between a Java future and a Scala future?
  • What is the difference between unapply and apply, when would you use them?
  • What is a companion object?
  • What’s the difference between the following terms and types in Scala: Nil, Null, None, Nothing?
  • What is Unit?

Functional Questions:

  • What is Monad?
    • Which are the Monad laws?
    • Which Scala data types are or it behave like Monads?
    • Which are the basic requirement/s, and the optionals, to conform a Monad?
  • Explain higher order functions.
  • What is gained using immutable objects?
  • What operations is a for comprehension syntactic sugar for?
  • What is recursion tail?
    • What issue do you have with the tail recursive function in the JVM?
    • How the Scala compiler optimised a tail recursive function?
    • How do you ensure that compiler optimises the tail recursive function?
  • What is function currying?
  • What are implicit parameters?

Reactive Programming Questions:

  • Explain the actor model.
  • Explain the Reactive Manifesto.
  • Which are benefits of non-blocking (asynchronous I/O) over blocking (synchronous I/O).
  • Do you think that Scala have the same async spirit than NodeJS?
  • Explain the difference between ‘concurrency’ and ‘parallelism,’ and name some constructs you can use in Scala to leverage both.
  • What is the global ExecutionContext?
    • What does the global ExecutionContext underlies?

Coding Questions:

  • How can you make a List[String] from a List[List[String]]?
  • What is the difference (if any) between these 2 statements?
  var x = immutable.set[Int]
  val y = mutable.set[Int]

Fun Questions:

  • What's a cool project that you've recently worked on?

About

A list of helpful Scala related questions you can use to interview potential candidates.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published