Scala has many symbols, operators, and syntax elements that can be confusing for beginners. The underscore character in particular takes on many different meanings depending on context. Type erasure in Scala means that types are not always available at runtime. Initialization order of vals follows a defined rule where traits are initialized before subclasses. Having a deep understanding of Scala's semantics is important to explain unexpected behavior.