Skip to content

Instantly share code, notes, and snippets.

@alexflav23
Last active June 19, 2018 14:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save alexflav23/fcce77f591d2bd6c137b7354bd5b1274 to your computer and use it in GitHub Desktop.
Save alexflav23/fcce77f591d2bd6c137b7354bd5b1274 to your computer and use it in GitHub Desktop.
Interview rating

Interview score card

Part 1. Basic knowledge

  1. (2 points) Easy: What is the difference beteen var, val and def? [x] 2
  2. (3 points) Easy: How does pattern matching work in Scala? [x] 3
  3. (3 points) Easy: What are right associative methods in Scala? [x] 0
  4. (3 points) Easy: What is the difference between a trait and an abstract class in Scala? [x] 3
  5. (2 points) Medium: What is scala.util.control.NonFatal? [x] 2
  6. (3 points) Medium: How does Scala solve the diamond resolution problem with traits? [x] 3
  7. (4 points) Advanced: What is the type hierarchy of supertypes in Scala? [x] 4

Part 2. Case classes

  1. (3 points) Easy: What is a Scala case class and what methods does it pre-define? [x] 3
  2. (3 points) Easy: What was the primary design goal of case classes? [x] 2
  3. (4 points) Medium: Why is case to case inheritance prohibited in Scala? [-] 1
  4. (3 points) Advanced: Are there ways you could implement generic operations on case classes? [x] 0
  5. (3 points) Advanced: What are Optics and how are they usually used with Scala case classes? [x] 3

Part 3. Scala collections

  1. (3 points) Easy: What is a List in Scala? [x] 3
  2. (3 points) Easy: What are the performance characteristics of a List? [x] 1.5
  3. (3 points) Medium: What is the variance of List and why? [x] 0
  4. (4 points) Medium: How are immutable operations optimised in Scala? What happens in the case of prepending to a List for example, using the default ::? [x] 4
  5. (4 points) Advanced: What is scala.collection.generic.CanBuildFrom and how is it used by the collections library? [x] 1.5
  6. (3 points) Advanced: How is foldLeft implemented inside scala.collection.immutable.List? [x] 3

Part 4: Concurrency in Scala

  1. (4 points) Easy: What is scala.concurrent.Future? [x] 3
  2. (4 points) Easy: How is Future.successful different than Future.apply? [x] 1
  3. (4 points) Easy: What is scala.concurrent.ExecutionContext? [x] 1.5
  4. (4 points) Easy: What is the difference between Future.sequence and Future.traverse? [x] 0
  5. (2 points) Medium: What is kind context is the scala.concurrent.ExecutionContext.Implicits.global? [x] 0
  6. (2 points) Advanced: What is a good ThreadPool to use? [x] 0

Part 5: Part 5: Generic programming

  1. (3 points) Easy: Where does Scala look for implicits? [x] 1
  2. (3 points): Easy: What are type bounds in Scala? [x] 0
  3. (3 points) Medium: What is a context bound in Scala? [x] 0
  4. (3 points) Advanced: What are higher kinded types? [x] 0
  5. (3 points) Advanced: What is f-bounded type polymorhphism? [x] 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment