Scala is a powerful, expressive language built on top of the JVM. This means that it can interoperate and take advantage of many existing Java APIs. It is also considered an object-functional language as it prefers the functional paradigm, but is also object-oriented. This allows for an easy transition into the functional world. Last, it is a statically typed language without the typical type ceremony, which allows for less runtime errors with minimal code. This course will teach enough of the basics of Scala to enable you to start writing less boiler-plate code and focus more on business problems. It will get you started from the ground up and quickly familiarize you with some of the most powerful features of this modern language. Topics covered include the REPL, pattern matching, for comprehensions, recursion, (im)mutability, interoperability, and much more. If you're looking for something new, exciting, and most importantly, concise, then Scala is the language for you.
Play! 2 for Scala aims to allow developers to build modern web applications that allow them to take full advantage of commodity cloud infrastructure to produce highly scalable, fault-tolerant applications. This course will act as a high level introduction to the various features of Play! 2 that will allow you to take full advantage of this modern web framework.
This course teaches you how to use Scalding (a domain specific language) built on Scala and Cascading to build distributed applications on Hadoop. The course also focuses on the data science aspect using Algebird, an abstract algebra library for Scala, to solve real-world sketching/streaming problems on distributed systems. You will learn how to reason about a variety of problems, how to build and test locally, and how to deploy on Hadoop. You will also learn the algorithms used to solve problems at scale where performance, compute and memory resources, and the window of time you have to process streaming data are all challenges you'll have to overcome, and how you can use Scalding and Algebird to solve for these constraints. This course also covers some Scala basics to get you up to speed and looks into how you can monitor, visualize, and troubleshoot your application's workflow and performance problems. Watch this course if you were considering, or already know how to use Pig, Hive, or any other DSL for Hadoop and not only wanted more power over your workflows, but also a DSL that is actively being developed to support up and coming execution frameworks like Apache Tez and Apache Spark with all the flexibility that a full functional programming language like Scala has to offer. If you're serious about learning how to build enterprise-grade applications on Hadoop, data science, and Lambda architectures, then this course is for you.