Scala is a rapidly growing programming language, but it is the finance and FinTech sector that it has taken by storm. A significant percentage of financial development jobs now list Scala as a skill requirement. The trend itself is not surprising, but the suddenness of its growth is.
Scala is a very powerful language thanks to its constructs and functional programming concepts. Scala has an inherent compatibility with Java which is perhaps one reason for its rapid adoption. It does address many of thew annoyances and shortcomings of Java, so it is no wonder it is making serious inroads into that territory. Many of the worlds largest tech companies and banks have a lot of Scala projects underway.
Scala developers are in short supply though and that is one reason why you can command a higher premium in the job market if you bring enough expertise to the table. Here are the best courses handpicked to help you do just that.
1. Functional Programming in Scala from École Polytechnique Fédérale de Lausanne
Why take this course?
École Polytechnique Fédérale de Lausanne is a Swiss university and one of the world’s best. This certificate should add significant brand value to your CV and LinkedIn profile. If that is one of your goals, then I recommend this course over all others on this list.
This is an intermediate level specialisation that has been designed to provide learners with a through look at functional programming using the Scala programming language. The course does upon the foundational aspects of functional programming and takes you through the process of using the building blocks of functional programming to solve real problems.
The first part of the course touches upon functional programming principles in Scala. You will learn how to apply these principles for real-world programming tasks and the logic that goes into functional programs. There are plenty of small programming tasks that follow each lesson. You will also focus on learning the use of functional programming for designing larger applications. You should now be able to design functional libraries and their APIs, combine functions and state, write functional reactive applications and so on.
Eventually, you move on to parallel programming, including task parallelism and data parallelism. This should allow you to express common algorithms in functional style and solve them in parallel, write programs that use parallel collections to achieve performance gains and so on. This is high level stuff. Finally, big data analysis with Sala and Spark is explored. Manipulating large volumes of data is what functional programming is best at. And the last segment focuses exclusively on that.
There is also a capstone project that you must successfully complete to earn your certificate. The project involves building a large data-intensive application using real world data.
Summary
- Time to Complete: Should take around 150-200 hours depending on your prior experience with programming and skill level.
- Offered fully online and on-demand. Complete at your own pace.
- If you need serious brand value for your CV/ LinkedIn profile, then this is as good as it gets. Look no further.
2. Applied Scala on Udemy
Why take this course?
This is in fact a three-part course that covers almost everything you need to know become an authority on Scala. Some prior programming experience is recommended but Scala or functional programming experience is not required.
Part 1 covers the basics of Scala along with classes, objects, control structures, functions, closures, apps and custom control structures. You should be able to use REPL, create classes, objects, instances and understand the basics of Scala’s type interface.
Part 2 focuses on composition, inheritance, hierarchy, types, options, traits, packages, and testing in Scala. You should be better able to understand Scala’s composition and inheritance features and create abstract classes and primary/ auxiliary constructs.
The last part focuses on pattern matching, lists, collections, SBT, Java compatibility and SBT. This will give you a working knowledge of common library APIs that you would be expected to use on a daily basis.
Summary
- Time to Complete: The three parts combined contains 15+ hours of videos plus whatever time you would spend on exercises and quizzes.
- Offered fully online and on-demand. Complete at your own pace.
- Another comprehensive course that is broken down based on what you need.
3. Scala & Functional Programming for Beginners on Udemy
Why take this course?
This is beginner friendly course that should help you learn the basics of Scala programming in short order. It helps if you have some prior coding experience, but you don’t need any prior experience with Scala or functional programming.
Topic coverage includes the absolute basics like expressions, functions, type inference, recursion, named arguments, smart operations on stings. This is followed by object-oriented programming in Scala which contains the usual stuff like Scala objects, inheritance, generics, anonymous and case classes and so on.
This is when we move on to functional programming in Scala and all the juicy stuff. You cover all the basics like anonymous functions, higher 0rder functions and curries, lists, arrays, vector, tuples, maps, pattern matching and so on.
The last segment is where you learn to code a small file system in all its glory. This is practical exercise where you get the hands-on experience necessary to give you confidence to work on real world projects.
Summary
- Time to Complete: Contains 15+ hours of videos plus you will spend a lot of time on exercises and the projects.
- Offered fully online and on-demand. Complete at your own pace.
- Good option for beginners who need to learn the basics of Scala.