We may earn an affiliate commission when you visit our partners.
Dick Wall

After taking Scala Applied part 1, you will be able to:

Read more

After taking Scala Applied part 1, you will be able to:

  • Use the REPL (the Scala Interactive Shell) for experimentation and fun

  • Understand the basics of Scala syntax, including val, var, def, if, while, try, for and more

  • Create classes, objects and instances

  • Define and use function literals and higher order functions

  • Understand the basics of Scala's type inference and how to use it

  • Write custom control structures to augment those built into the language

  • Start down the path of a more functional style of programming

  • Be ready for Part 2 of Stairway to Scala Applied, which will dig into some of the differences between Scala and other languages

The course is half theory, half practice with hands on coding exercises built around test driven development examples. If you complete all three parts, with all the exercises, you will find that in addition to a strong grounding in the language theory, you will have the practical skills and comfort to code in Scala, as well as having the tools necessary to do so.

Unlike many other courses that teach a specific aspect of the Scala language, for example reactive programming or functional concepts, Stairway to Scala Applied provides a balanced and thorough introduction to the whole language and its concepts, including libraries like Actors and Collections. It is intended to accelerate your Scala learning curve and make you able to use Scala productively by the end of the course.

The course is taught by two highly experienced Scala developers who use Scala on a daily basis for real world commercial projects, and have done so for several years each.

Most of the lectures are practical demonstrations accompanied by a slide. You can download the slide deck and follow along on your computer, but the lectures are also presented using Udemy mashups, so the slide and practical demo can be switched between at will. If you hear typing, it's best to bring up the practical demo screencast instead of the slide in order to follow along.

Enroll now

What's inside

Syllabus

Understand the goals of Part 1 of this course, and have the coding exercises downloaded

Please download the exercises attached to this lecture and unzip them somewhere on your machine where you can find them later. Also if you have not already done so, please follow the free course instructions at https://www.udemy.com/stairway-to-scala-setup-instructions/learn/#/ so that you are ready to run both the Scala REPL and the exercises when the time comes.

Thanks and enjoy the course. This is only part one of three, the second and third parts go further into using Scala on a daily basis for your programming.

Read more

Let's see how you did on your first steps in Scala module.

Impress us with your retention of the Next Steps material!

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Provides hands-on coding exercises built around test-driven development examples, which is a common practice in professional software development
Taught by experienced Scala developers who use Scala daily for real-world commercial projects, offering practical insights
Covers Scala's type inference, which is essential for writing concise and maintainable code in functional programming
Requires learners to download and set up Scala REPL and SBT, which may require some initial configuration and setup
Focuses on Scala 2.x, which may not cover the latest features and improvements introduced in Scala 3

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Foundational scala for developers

According to learners who have engaged with this introductory course, it provides a solid foundation covering the fundamentals of Scala programming, including syntax, classes, objects, collections, and basic functional concepts. Many appreciate the hands-on approach featuring practical exercises and coding demonstrations that help solidify understanding. However, some note that the pace can feel challenging, particularly for those without prior programming experience, and it's important to recognize this is Part 1 of a series, providing only the initial steps towards applied Scala development.
It's the first step, not a complete package.
"Understand that this is Part 1 and you'll need subsequent parts for more depth."
"Provides a good starting point, but doesn't make you productive immediately."
"Looking forward to Part 2 to build on this foundation."
Introduces essential Scala tools.
"Useful guidance on using the REPL and SBT."
"Learning to use IntelliJ worksheets was helpful."
"Covered setting up the necessary development environment."
Instructors explain concepts clearly.
"The instructors are experienced and explain things well."
"Lectures were mostly easy to follow and well-structured."
"Good explanations of topics like type inference and implicits basics."
Covers a wide range of basic Scala features.
"This course covered all the basic syntax and core language features I needed."
"A great introduction to Scala, touching on OOP and functional basics."
"It provides a thorough overview of vals, vars, methods, classes, and collections."
"Learned about important concepts like match expressions and control structures."
Practical coding exercises enhance learning.
"I really benefited from the hands-on coding and the TDD examples."
"The exercises attached to each module helped me apply what I learned immediately."
"Appreciated the practical demonstrations alongside the slides."
"Doing the coding assignments made the concepts much clearer."
May be challenging for absolute beginners.
"Found the pace a bit fast at times, especially with newer concepts."
"Might be difficult for someone new to programming paradigms like functional style."
"Assumes some basic coding familiarity, which could be a challenge if you lack it."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Scala Applied, Part 1 with these activities:
Review Java Fundamentals
Solidify your understanding of Java fundamentals, as Scala builds upon many of the same concepts. Refreshing your knowledge will make the transition to Scala smoother.
Show steps
  • Review basic syntax and data types in Java.
  • Practice writing simple Java programs.
  • Study object-oriented programming principles in Java.
Review 'Programming in Scala'
Supplement your learning with a comprehensive guide to the Scala language. This book provides a deeper understanding of the concepts covered in the course.
View Programming in Scala on Amazon
Show steps
  • Obtain a copy of 'Programming in Scala'.
  • Read the chapters relevant to the course topics.
  • Work through the examples and exercises in the book.
REPL Exercises
Practice using the Scala REPL to experiment with different language features. This will help you become more comfortable with the syntax and quickly test out ideas.
Show steps
  • Start the Scala REPL.
  • Experiment with variable declarations (val and var).
  • Define simple functions and call them.
  • Try out different control structures (if, while, for).
Four other activities
Expand to see all activities and additional details
Show all seven activities
Review 'Scala Cookbook'
Explore practical solutions to common Scala programming problems. This cookbook provides a wealth of code examples and explanations.
Show steps
  • Obtain a copy of 'Scala Cookbook'.
  • Browse the table of contents to find relevant recipes.
  • Study the code examples and explanations.
Pair Programming Session
Collaborate with a classmate on coding exercises. This will help you learn from each other and improve your problem-solving skills.
Show steps
  • Find a classmate to pair program with.
  • Choose a coding exercise from the course.
  • Take turns writing code and reviewing each other's work.
  • Discuss different approaches to solving the problem.
Blog Post: Scala vs. Java
Write a blog post comparing and contrasting Scala with Java. This will help you solidify your understanding of the differences between the two languages and their respective strengths and weaknesses.
Show steps
  • Research the key differences between Scala and Java.
  • Outline the structure of your blog post.
  • Write the blog post, providing clear examples.
  • Edit and proofread your post.
Simple Calculator in Scala
Build a simple calculator application in Scala to apply the concepts learned in the course. This project will reinforce your understanding of classes, objects, methods, and control structures.
Show steps
  • Define a class for calculator operations.
  • Implement methods for addition, subtraction, multiplication, and division.
  • Create a main method to take user input and perform calculations.
  • Add error handling for invalid input.

Career center

Learners who complete Scala Applied, Part 1 will develop knowledge and skills that may be useful to these careers:
Software Engineer
A software engineer designs, develops, tests, and maintains software applications. This Scala course helps build a foundation in Scala syntax, classes, objects, and functional programming concepts. Software engineers use these skills to write efficient, maintainable Scala code. The course's practical, hands-on coding exercises, built around test-driven development, prove invaluable for success in software engineering projects. By learning to use Scala productively, a software engineer can implement and understand key language libraries, like Actors and Collections.
Data Engineer
A data engineer designs, builds, and maintains data pipelines and infrastructure that transform data into a usable format for analysis. This Scala course helps build a foundation in the language, which is often used for big data processing frameworks such as Apache Spark. Knowing Scala syntax equips data engineers to write efficient data transformation jobs and custom control structures. Hands-on exercises enable them to use Scala effectively for real-world data engineering tasks. It is an acceleration of the Scala learning curve.
Backend Developer
A backend developer is responsible for server-side logic, databases, and application programming interfaces that power web and mobile applications. This Scala course helps build a foundation in Scala, offering practical, hands-on coding exercises that translate directly to backend development tasks. Understanding Scala syntax, classes, and objects helps developers build robust, scalable backend systems. The course delves into functional programming concepts, which are increasingly relevant in modern backend architectures. It helps accelerate your Scala learning curve.
Application Developer
An application developer creates software applications for various platforms, including desktop, web, and mobile. This Scala course helps build a foundation in Scala, which can be used to develop efficient and scalable applications. Understanding Scala syntax, classes, and objects enables application developers to write clean, maintainable code. The course's coverage of function literals and higher-order functions helps craft sophisticated application logic. You will be ready to use Scala productively.
Machine Learning Engineer
A machine learning engineer develops and deploys machine learning models. This Scala course helps build a foundation for machine learning engineers who want to use Scala for building and deploying scalable machine learning systems. Scala is frequently used with Apache Spark. Understanding Scala helps you implement custom machine learning algorithms and data preprocessing pipelines. This can accelerate your learning curve and enables you to use Scala productively.
Technical Lead
A technical lead guides a team of developers, providing technical expertise and direction on software projects. This Scala course helps build a foundation in Scala, which can be beneficial for technical leads who oversee Scala-based projects. A technical lead understands Scala syntax, classes, and objects and is able to guide team members in writing clean, maintainable code. The course accelerates your Scala learning curve.
Data Scientist
A data scientist analyzes data to extract meaningful insights and build predictive models. This Scala course helps build a foundation for data scientists who want to leverage Scala for data processing and analysis tasks. Scala is often used with big data tools like Apache Spark. Knowing Scala syntax, classes, and objects may be helpful as it allows data scientists to write custom data transformation functions and analysis pipelines. The course accelerates your Scala learning curve.
Software Architect
A software architect designs the high-level structure of software systems. A software architect uses Scala to define custom control structures and augment those already built into the language. Understanding Scala's type inference and functional programming concepts help ensure robustness and maintainability. This Scala course provides a balanced and thorough introduction to the whole language and its concepts, including libraries like Actors and Collections.
Full-Stack Developer
A full stack developer works on both the front end and back end of web applications. This Scala course helps build a foundation for full stack developers who want to use Scala for backend development. A full stack developer understands Scala syntax, classes, and objects and is able to write server-side logic and APIs. This course accelerates your Scala learning curve, and enables you to use Scala productively, making it a valuable asset for building scalable web applications.
Systems Architect
A systems architect designs and oversees the implementation of complex software systems. This Scala course helps build a foundation in understanding the Scala language and its underlying concepts, which may be useful when designing systems that incorporate Scala-based components. The ability to define custom control structures helps architects tailor systems to specific performance requirements. Understanding Scala's type inference helps ensure the robustness and maintainability of the overall system architecture. This course provides a balanced and thorough introduction to the whole language and its concepts.
Data Analyst
A data analyst analyzes data to identify trends, patterns, and insights that help organizations make better decisions. This Scala course may be useful for data analysts who want to leverage Scala for data manipulation and analysis tasks. Scala is often used with big data tools like Apache Spark, and understanding Scala syntax enables data analysts to write custom data transformation and analysis scripts. In particular, this course gives learners a more functional style of programming.
Cloud Engineer
A cloud engineer designs, implements, and manages cloud computing infrastructure and services. This Scala course may be useful for cloud engineers who work with Scala-based cloud applications and services. A cloud engineer understands Scala syntax and is able to write custom control structures to automate cloud management tasks. The course can accelerate your Scala learning curve, and it enables you to implement cloud tasks more quickly and efficiently.
DevOps Engineer
A DevOps engineer automates and streamlines software development and deployment processes. This Scala course may be useful for DevOps engineers because it provides a foundation in Scala. Scala is used in some configuration management and automation tools. Understanding Scala syntax and being able to write custom control structures may help DevOps engineers customize and extend these tools. The use of implicit conversions is also an element of DevOps work when automating software processes.
Quality Assurance Engineer
A quality assurance engineer tests software to ensure it meets quality standards and functional requirements. This Scala course may be useful because it provides a foundation in Scala, which can be used to write automated tests and test frameworks. Understanding Scala syntax and control structures helps quality assurance engineers create comprehensive and effective test suites. In particular, the fact that the exercises are built around test driven development examples is of particular help.
Database Administrator
A database administrator manages and maintains databases, ensuring their performance, security, and availability. This Scala course may be useful because it provides a foundation in Scala, which can be used to develop tools and scripts for database management tasks. Understanding Scala syntax and being able to write custom control structures can assist in automating database administration tasks. This course provides a balanced and thorough introduction to the whole language and its concepts.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Scala Applied, Part 1.
Comprehensive guide to the Scala language, written by the creator of Scala, Martin Odersky, and others. It covers all aspects of the language in detail, from basic syntax to advanced features. It is commonly used as a textbook in academic institutions and by industry professionals. This book provides additional depth to the course material and useful reference tool.
Offers practical solutions to common programming problems in Scala. It provides a wealth of code examples and explanations that can help you quickly learn how to use Scala in real-world projects. It is more valuable as additional reading than as a current reference. The book adds breadth to the existing course by covering a wide range of practical topics.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser