
Explore Scala fundamentals on the Java-based JVM, highlighting Java and JavaScript familiarity, and follow a course structure from language basics to advanced topics with practice exercises and hands-on projects.
Learn how the Udemy review system works and how five-star ratings influence course visibility. Provide feedback if you dislike something so the instructor can improve and earn your five-star review.
Create a project, write and run basic Scala code, and test outputs while iterating with small changes. Learn about comments and the ripple loop to test code before integration.
Install the JDK and Scala, then set up IntelliJ IDEA Community Edition with the Scala plugin. Create a new Scala project and configure Scala 3, version 3.2.1, for the course.
Learn to write and run your first Scala 3 program that prints hello world, using def main and print, with simple explanations of comments, annotations, and IDE error highlights.
Learn to write a hello world program in scala 2 using an object and a main method, compare its structure to scala 3, and explore running both.
learn how to run a Scala program in the IDE and view console output, printing hello world, noting exit code zero, and managing run configurations for Scala 3 and 2.
Change the code in Scala 3 to print a custom greeting, replacing hello world with your name. Run it, and later make the message more dynamic.
Build a Scala 3 project from scratch, create a main method, and print a message to your mom with print line method, then run to view it in the console.
Learn how comments describe code behavior, provide documentation, and can comment out code to remove it from execution, including single-line, inline, and multi-line styles and Scala doc.
Learn how to use the Scala REPL (read-evaluate-print loop) to test small code snippets, define functions, and verify results, complementing IntelliJ usage.
Explore the expanded function format in scala 3 by defining a main function with curly braces, returning unit, and using multi-line code instead of the single-line equals form.
Build foundational Scala skills by creating projects, writing and running basic code, and comparing Scala 3 with Scala 2. Use comments and Ripple to test small snippets as you progress.
Explore core concepts of strings and variables in Scala, including defining variables, variable naming, string functions, and string interpolation, with practical exercises.
Define strings as sequences of characters in double quotes and explain escaping with backslashes for quotes and backslashes. Demonstrate printing with print versus println, empty strings, and special characters.
Understand variables in scala as containers for data, using var for mutable values and val for immutable ones, with examples of strings, numbers, and reassignment.
Learn how to name variables in Scala with descriptive, readable identifiers, starting with a letter or underscore, using only letters, numbers, and underscores, and avoid Scala keywords, applying camel case.
Practice immutable variables and strings in Scala by creating a val, printing a quoted cat name, and escaping quotes. Print backslash and forward slash and a url string.
Learn to draw a bunny in Scala using variables and strings by building lines with escapes and printing the output to the console.
Discover common string functions in Scala, including length, capitalize, lowercase, uppercase, trim, and substring, with zero-based indexing and character access. See chaining and immutability in practical examples.
Learn how to retrieve all available string functions for a variable using my text dot and the IDE's suggestion list, including ends with that returns a boolean.
Learn how string interpolation in scala inserts variables and expressions into strings using the S, F, and raw interpolators, including the dollar sign, with practical examples.
Practice string operations in Scala by computing a string length, extracting a substring, printing personalized messages, and using dollar expressions to display the total of apples and oranges.
Solve a Scala 3 strings exercise by multiplying the number of products by the price per product and printing a message that includes the client name and total amount.
Explore constructing multiline strings in Scala 3 using backslash-n and the triple-quote syntax, with stripMargin and an optional pipe delimiter to control indentation.
Master the essentials of strings and variables in Scala by exploring types, valid variable names, string manipulation functions, lengths, indexing, and string templates, with hands-on practice.
Receive user input in Scala 3 with two lines of code, convert it to a number, and generate a random number, previewing data type transformations.
Explore how to get user input in scala from various sources, including console via scala.io.StdIn.readLine, which pauses execution, and consider how forms and mobile tapping qualify as input.
Read input as a string, convert it to an integer with toInt, and print the result doubled, noting that non-numeric strings raise a number format exception.
Generate random numbers in Scala with scala.util.random, using nextInt with an upper limit. Explore strings and printable characters with nextPrintableChar and a 20-character string approach.
Practice receiving user input in Scala by writing a program that asks for your name and prints a greeting. Read a number from standard input and print it times five.
Ask the user for their birth year, read it as an integer from standard input, and compute the approximate age as 2023 minus birth year. Print the approximate age.
Recap of the practical section on getting user input by reading strings from the console, converting to numbers with caveats, and generating random integers, plus an intro to packages.
Explore numbers and variable types in Scala, review basic operations, learn implicit and explicit number definitions, convert between numbers and strings, and print data types to the console.
Explore numbers in Scala as in math, including integers and whole numbers, assignable to variables, with operations like addition. See a price example computing total price by multiplication.
Explore Scala number types by memory, from byte to long and from float to double. Use default inference for integers and doubles, and L for long and F for float.
Practice exercises declare an int and a float in scala 3, print their values and classes, and show how to use explicit type hints to manage default types.
Learn how Scala handles mixing int and double by reading a number, converting it to int, multiplying by a double multiplier (2.75), and printing the resulting double type.
Explore how memory stores numbers with bits and bytes, from byte to int sizes. Learn to convert bit patterns to decimals and understand the sign bit and the 127/-128 limit.
Explore how Scala implicitly assigns data types and how to explicitly annotate variables with int, byte, short, long, double, and float, then verify types with get class.
Explore numeric type conversions in Scala, using toLong, toInt, and other to-type methods to create values of different types while the original remains unchanged, and note data loss when downcasting.
Explore how strings function as class-based data types in scala, and convert values to strings with toString, while noting that only numeric strings convert to int or double.
Practice converting user input to byte, short, int, long, float, and double in Scala 3, then inspect results with getClass and explore conversions from pi to float, int, and string.
Read user input as a double, multiply it by pi (3.14159), and print the result and its type in a Scala 3 data types exercise.
Summarize the section on numbers and variable types in Scala, covering bytes, shorts, integers, longs, floats, doubles, and strings, with implicit and explicit typing, conversions, and memory and bits.
Explore arithmetic operators, result types, assignment operators, booleans, and logical operators, with hands-on exercises to apply these foundational concepts in Scala 3 development.
Explore arithmetic operators in Scala, including addition, subtraction, multiplication, and division, with integers and doubles, plus modulus for remainders and string concatenation using plus.
Learn that an operation’s result type matches the largest operand, from byte to double, with examples using short and int, long and float, and float and double.
Explore assignment operators in Scala 3, including equals and the reference operator, and learn how to interpolate variables in strings and escape the dollar sign.
Explore augmented assignment operators as a concise shorthand that combines arithmetic with assignment to update variables, using plus equals, minus equals, multiply equals, divide equals, and modulus equals in practice.
Practice arithmetic operators in Scala using A and B to compute addition, subtraction, multiplication, division, and modulus, printing results. Print a third-of-a-kilo example at 29.99 and triple a console-read amount.
Show a Scala operators challenge solution by reading an amount from the console and applying 5.5 percent annual interest for five years. Print the final balance.
Master boolean logic by using and (&&), or (||), and not (!), to form expressions that decide output, handle API results, and drive control flow.
Explore how comparison operators evaluate boolean expressions using greater than, less than, equals (double equals), not equals, and their inclusive forms, and assign results with brackets and or.
Practice evaluating logical and comparison expressions with true and false, including greater than, less than, and negation, using a toy example about broken and not broken toys.
Explore logical and comparison operators in Scala by modeling a farmer's cows, milk production, and family size to determine funding eligibility.
Apply arithmetic operators (multiplication, division, addition, subtraction, and modulus) alongside assignment and augmented assignment to form expressions, determine outcome types, and evaluate booleans with logical operators.
Explore exceptions in programming, learn how they crash programs, and implement handling with try catch and finally blocks, and use throw to raise exceptions when needed.
Understand that exceptions are unexpected events that crash programs if not mitigated. Learn to view messages and traces, and implement handling to log errors or show messages while continuing execution.
Learn to handle exceptions in Scala 3 using try catch to catch specific and generic errors, continue execution, and log stack traces for debugging.
Discover how the finally block runs code after a try-catch, ensuring resource cleanup like freeing database connections to prevent memory leaks.
Learn how to throw and generate exceptions in Scala 3, and when to use try-catch-finally to manage errors without crashing, especially in library code.
Practice try catch finally by reading console input, converting to numbers, and printing results, including a number times five and kilometers to miles, with stack traces for errors.
Read the product name and quantity, compute the total at price 9.99, and handle invalid input with a number format exception catch and a finally block.
Learn to understand exceptions, avoid them when possible, and manage them with try-catch and finally to keep programs running and resources released, including optionally throwing custom exceptions.
Explore Scala collections, focusing on lists, sets, maps, and tuples, with an introduction to iterators and a high-level overview of when each collection is useful.
Explore why collections are useful by modeling an online store sending emails to a growing list of clients. Use for loops and lists to process each client efficiently.
Explore Scala collections, from immutable lists to mutable arrays, and understand iterable, sequence, sets, maps, and tuples, with a practical, beginner-friendly overview.
Explore lists as ordered collections of elements you access by position, with zero-based indices and duplicates allowed, and preview many list functions in Scala.
Explore sets as a collection of unique elements with no defined order, using a deck of cards analogy, and iterate while keeping the set immutable.
Explore maps in Scala as key–value collections where each key uniquely maps to one value. Observe that keys are unordered and values may duplicate, as shown by country capitals.
Learn how tuples are fixed-size, immutable groupings of mixed data types, allow duplicates, and are identified by their element count, with examples of tuple1, tuple2, and tuple3.
Learn how iterators let you loop through a collection, access each element once, and apply the same operation, such as emailing clients, with for loops discussed later.
Explore the concept of collections in Scala, including lists, sets, maps, tuples, and iterators. Preview practical practice in upcoming sections as we cover each collection type in detail.
Explore list and array concepts in depth, compare arrays with array buffers, and learn the most common functions for lists and arrays to build practical scala code.
Learn how Scala lists are immutable, ordered collections that can contain duplicates and multiple data types, including empty lists and nil, with examples of creation, indexing, and heads and tails.
Explore arrays and array buffers in Scala 3, comparing mutability, indexing, and printing, while learning how to resize with array buffers and efficiently add, remove, and concatenate elements.
Practice lists and arrays in Scala by creating a favorite animals list, printing its length and second element, then using an array buffer to add and remove customers by index.
Demonstrate removing items from an array buffer in Scala 3 using the minus minus equals operator, and print the remaining items (laptop, mouse, pen, paper, mug, phone).
Explore list functions in this lesson, including is empty, length, contains, index of, and last index of, using a colors list to show duplicates and 0-based indexing.
Explore array and array buffer operations in Scala 3, including updating elements, adding and removing items, inserting at positions, using add all, and clearing buffers.
Practice list and array functions in Scala 3 by locating an element's position, checking containment, replacing items, and appending new ones across lists, arrays, and array buffers.
Explore list functions in scala 3 by managing a mutable animal list with an array buffer: add panda, remove lion by index, and check for elephants and giraffes.
Explore lists and arrays in Scala, their key properties, and common functions; discover mutable arrays and array buffers for adding and removing elements.
Explore the concept of sets and hash sets, focusing on unique elements and unordered storage, then learn set operations and mutable variants through practice and challenges.
Explore Scala sets: they store unique elements in undefined order and are immutable. Duplicates vanish, order isn’t guaranteed, and element types may be restricted.
Explore mutable hash sets in scala 3 by adding, removing, and combining elements with add, remove, add all, plus equals, minus equals, and set operations, with non-guaranteed order.
Learn how to manage a customer list with a hash set in Scala 3, adding and removing customers, and printing the updated lists.
Explore common set functions in Scala 3, including size, contains, isEmpty and nonEmpty, and use head and tail for elements while noting head isn’t guaranteed to be a specific element.
Explore hash set functions in Scala 3, including add, add all, remove, and subtract one, plus intersection, union, and difference, showing new sets are produced without mutating the original.
Explore set and hashset operations by testing containment in a prime numbers set and computing the intersection of two drink sets to find shared choices.
Use hash sets and set operations in Scala to determine wearable colors by intersecting with accepted colors and using the difference to see what you cannot wear, then add red.
Recap the end of this section by reviewing sets, assets similar to sets with add and remove elements, and set-specific functions, preparing you for maps through practice exercises and challenges.
This course is a unique experience on Udemy.
While there are a lot of Scala 3 resources online to choose from, this is the only course that takes you from a complete beginner in software development, teaches you the fundamentals, advanced topics, and makes you an expert in this field.
In addition, you have loads of practice exercises, challenges and projects to work on. I didn't just add a bunch of exercises at the end. Instead, each concept is put in code and practiced so that we make sure you apply and learn everything through action.
Scala 3 is an excellent language for building highly data intensive, distributed applications and systems. It is used by many high profile companies like Uber, LinkedIn and Netflix to handle their backend functionality. It is constantly growing in popularity, and with the introductions of Scala 3, we see more and more developers and companies start to use it for their projects.
With this course you get on-demand videos, exercises and most importantly projects to apply the knowledge we talk about.
I've spent years building projects in Scala, and years again teaching people how to build code for themselves.
We will cover many topics such as
language fundamentals
collections
flow control
loops
handling errors and exceptions
functions
packages
And we will put everything in practice through examples and projects.
If you want to take ONE COURSE to master Scala 3 take this course.