Prior to taking up Scala, having sound knowledge of programming concepts is essential. Although contrary to popular belief Java is not necessary to learn Scala but it does help to know basic JVM properties which are helpful for example type erasure, how classes work etc.