ScalaCourses.com is dedicated to providing online courses for people who want to learn how to program in Scala and related technology.
The Scala programming language is rapidly growing in popularity. There are many reasons for this, including tremendous scalability, a natural melding of object-oriented and functional capabilities, and the ability of Scala programs to interoperate with legacy Java code. Even though Scala presents a significant learning curve, benefits accrue almost as soon as programmers start to work with Scala. Machine learning / big data programmers have embraced Scala, and ScalaCourses.com teaches language basics in a practical manner.
Both instructor-led and self-study options are offered. The course materials proceed methodically, so beginners through experienced Scala programmers alike will quickly learn valuable techniques, useful information, and gain practical experience. The material is introduced through many short lectures with working examples and self-discovery techniques. Just enough theory is introduced to gain an intuitive understanding of how to work with the concepts presented.
In addition to self-paced online learning, ScalaCourses.com offers on-site and remote delivery and/or tutoring for this course. A combination of online training with videoconferencing (which we call office hours) is available. Please contact us for further details.
ScalaCourses.com provides a more effective learning experience than reading books or taking in-person courses. The GetScala.com site describes the advantages in detail.
You can learn more about the courses by clicking on them.
These are a hands-on courses. Please don't just read the notes, try every code example yourself so you type along with the material.
If you are enrolled in a course you will see the following tabs on each course page:
gitcommand to clone the course project as a git repository. The project home contains information about the course notes, and the issue tracker.
If you encounter a problem or have a question, and you are taking a live class, please talk with the instructor right away. If you are studying on your own and need to communicate with an instructor, email help and live TA sessions are available. If you find a error in the course material or wish to offer a suggestion, please use the Issue Tracker. We are also available via @ScalaCourses.
We would appreciate you taking the time to fill out the evaluation at the end of the course.
Scala allows you to write clean and powerful code in a brief and concise manner. ScalaCourses.com provides the best learning experience, and is also the best value for learning Scala. Be proactive – get the edge with our self-study and instructor-led training. Please contact us for information about instructor-led training. Learn Scala today!
Want to purchase a course for someone else, or don't want to use PayPal? Ask
email@example.com to email you an invoice.
We offer instructor-led and onsite training for groups. Please contact
firstname.lastname@example.org for more information.
There is a lot to know when one wants to learn how to program Scala or Play Framework 2. We have organized the information into separate courses, shown to the right, with prerequisites. For example, the Scala Introduction course is the logical beginning course for new Scala programmers.
The material is introduced through many short lectures with working examples and self-discovery techniques. Just enough theory is introduced to gain an intuitive understanding of how to work with the concepts presented. The material is broken into short segments so you can get right to your most important issues. Quick reviews of fundamental concepts are provided in case you need a refresher before being introduced to concepts built on the review material.
Logged-in students can download course notes. We update transcripts and videos frequently, and provide release notes for each course and lecture. Enrollment is for 365 days, and students automatically get updates as they are released. Students can renew their enrollment for a fraction of the original price.
"ScalaCourses.com is a tremendous resource for developers looking to leverage Scala to and from Java, and presents useful information for maximizing productivity."
– Jamie Allen, Sr. Director of Consulting, Typesafe, San Francisco, CA, USA.
"I love your videos. I've bought 3 courses so far."
– Andrew Rubalcaba, Plano, TX USA.
"I like the pace (fast) and the content (deep). I’m glad I made the investment."
– Kirk Sullivan, Orlando, FL, USA.
"This course is way more practical than other ones I have tried. Excellent!"
– Riku Karjalainen, Helskini, Finland.
"The amount of Scala syntax you have to learn before you can code a Play Framework app is significant. That's why Intermediate Scala makes sense as a prerequisite for the Introduction to Play course."
– Eric Torreborre, author of the Specs2 unit testing library for Scala.
"I encourage everyone interested in learning about Scala to enroll in ScalaCourses.com online courses."
– Scott Clasen, principal engineer, Heroku, San Francisco, CA, USA.
"ScalaCourses.com is good stuff!"
– Debasish Ghosh, author of “DSLs In Action”, Kolkata, India.
"I've been looking between Scala and Clojure recently. Your videos and responsiveness are keeping me in Scala land."
– Marcos Trinidad, New York, NY, USA.
"The video production seems exceptionally painstaking."
– N. Sriram, Philadelphia, PA, USA.
"Your process of continuously improving and updating the course material is a very important differentiator. My interest is using Scala with Spark and other machine learning applications. Another very important feature of ScalaCourses.com is the ability for users to easily search the video transcripts."
– R. Sargeant, Birkdale, Queensland, Australia.
"One of the many things I like about these courses is that they are filled with explanations of reality. I've taken the Functional Programming and Reactive Programming courses at Coursera, read multiple books on Scala, attended Scala meetp-up groups, listened to video lectures and presentations on Scala and done lots of exercises on my own over the past two years. I still learn lots from ScalaCourses.com because the courses are filled with gems of practicality and reality that I've not found in books or other materials. The explanations are crisp and clear. The courses manage to keep a fine balance between not requiring a lot of prior knowledge, while still address the topic in a deep, meaningful way."
– Bill Bourne, Ottawa, Canada.
"These courses are what I wished for when I was learning Scala and Play Framework."
– Mike Slinn, Half Moon Bay, CA, USA.
This group of courses is the logical beginning for new Scala programmers, especially those who intend to work with big data/machine learning software such as Spark. We recommend that students who wish to take the Introduction to Play Framework for Scala course take both of these courses. You should already be a proficient programmer in another language, such as Java or Ruby.
Whether you want to learn Scala in order to work with Apache Spark, or an industrial-strength Scala program, or Play Framework 2, enrolling in this course is the logical starting point.
This Introduction to Scala course covers the fundamentals and is designed to give you a variety of hands-on experiences with Scala. The unique features of Scala are introduced, including object-oriented and functional aspects. Software tools are discussed in detail, including SBT, both leading IDEs (IntelliJ IDEA and Scala-IDE), and several options for programming Scala without an IDE. Exercises are provided throughout that reinforce the lecture material.
This Intermediate Scala course builds on the Introduction to Scala course. Many concepts and techniques are introduced, with lots of working code examples and exercises, including functional programming, implicits, process control, I/O, collections, pattern matching, combinators, partial functions, application configuration techniques, memoization, and multithreading (including parallel collections, Futures, Promises and Akka Actors). You can see a detailed outline from the Outline tab of this web page. We guarantee that taking this course will make you work hard; and as a result students gain a lot of practical, hands-on experience with Scala. The concepts taught allow you to feel comfortable with the code that you will find in Apache Spark and Play Framework 2 for Scala projects, and motivational Spark and Play examples are provided in the course.
As with the Introduction to Scala course, this course is based on code samples that can be pasted into the Scala REPL, and that code is also provided in the the
courseNotes directory. The course consists of 10 hours of video, over 450 pages of lecture notes (if printed as an O'Reilly-sized book), more than six-dozen sample programs and about a dozen exercises.
Play Framework 2 for Scala is a powerful web application framework, and is the most popular webapp framework for Scala. Although you can use Java with Play Framework, Scala is much more expressive and powerful. ScalaCourses.com is a Play Framework for Scala application.
The course, including all transcripts and code examples, has been updated to Play 2.5.4 and emphasizes dependency injection. Students should have prior experience with setting up a web server such as Apache, or programming a web application using a facility such as ASP, Tomcat, PHP, Ruby on Rails, etc.
This "Introduction to Play with Scala" course covers the fundamentals of Play Framework for Scala programmers. Exercises are provided throughout that reinforce the lecture material. The material builds from lecture to lecture, so be sure to go through the material from start to finish. Several complete working sample Play Framework projects are provided and discussed in detail. The course consists of 5.5 hours of video, over 300 pages of lecture notes (if printed as an O'Reilly-sized book), and about a dozen exercises. As you can see from the Revision History tab on this page, we continually keep this course up-to-date.
The universal drive to SSL-enable all web pages has reached the point where search engines now favor SSL-enabled web sites. You might have heard about free SSL certificates that are now available from LetsEncrypt.org. Those certificates work well for simple web sites which do not use cloud-based services such as content distribution networks (CDNs) for securely serving assets, however they do not provide any relief from cross-site scripting issues. CDNs are important for reducing latency and increasing scalability.
The old-school method of front-ending an application server like Tomcat or Play Framework with a web server like Apache httpd or nginx so static assets are served by the web server instead of a CDN provides poor latency. It is better to set up DNS entries for each cloud service so they can be addressed as subdomains of your main web site. This is the first step towards federating cloud services with your web site.
This group of courses is for programmers who need to interface Scala code with Java code.
This course is based on Scala 2.10 and Java 7, and has not been updated to Scala 2.11 or Java 8. Updating this course to a newer version of Java or Scala is currently a low priority.
This course focuses on Java/Scala interoperability. It provide students the knowledge and techniques to work with combined Scala/Java code bases in all their forms.
Micronautics Cadenza powers online sites such as ScalaCourses.com, and it provides an online course editor as well as a course delivery mechanism. The pages you can view and the contents visible on each page are determined by your role or roles. The currently visible roles are Publisher, Instructor, Student and Visitor. This group of courses shows new publishers and instructors how to create and manage online courses using Micronautics Cadenza.