Scala levels: beginner to expert, application programmer to library designer