If you are considering diving into Scala, having Java experience will obviously help and you will have no trouble finding learning resources online. However, if you have no Java experience, you will need to learn the basics. Familiarity with functional programming languages will also help. Companies that have started using Scala are also contributing to the recent growth of Scala as a mainstream language.
According to StackOverflow's survey, Scala is among the top 5 most loved programming languages. Scala offers clean code, advanced features, functional and object-oriented programming in an open source package that leverages the Java environment. With the superior functional programming idioms available to take advantage of multi-core CPU architectures, Scala has the right mix of the popular object-oriented paradigm. With a growing Scala community on the forums, it is not difficult to find an answer to any Scala question, which adds to your learning experience.
Companies implementing Scala are posting best practices and samples online, where other companies are learning to appreciate Scala's flexible infrastructure. But at the same time, going on the Scala subreddit to ask if Scala is worth learning is a bit like asking the Corvette Appreciation Association if a Corvette is a great car - not necessarily the most unbiased of opinions. This combination of features makes it possible to write Scala programs that are quite concise and elegant. This makes it possible for a Scala developer to use Java libraries within the Scala code structure.
Learning Scala offers developers the opportunity to broaden their programming skills because it combines logical, imperative, functional and object-oriented programming methodologies. Given Scala's marketing as a scalable language, the days are not far off when large investment banks and financial organisations will start looking to Scala for their low-latency solutions. But did you know that Scala comes with a mix of OOP and FP, which help you write better code and solve sophisticated problems at higher levels of abstraction? That makes Scala worth learning. Scala unifies OOP and FP, which is unique - no other programming language has done it before.