docs/
βββ tutorials/
βββ scala/
βββ index.mdx
βββ 01-introduction/
β βββ what-is-scala.mdx
β βββ why-learn-scala.mdx
β βββ scala-features.mdx
β βββ scala-vs-java.mdx
β βββ scala-2-vs-scala-3.mdx
β βββ scala-use-cases.mdx
βββ 02-installation-and-setup/
β βββ install-jdk.mdx
β βββ install-scala.mdx
β βββ install-scala-cli.mdx
β βββ install-intellij-idea.mdx
β βββ scala-repl.mdx
β βββ sbt-setup.mdx
β βββ first-scala-program.mdx
βββ 03-scala-fundamentals/
β βββ program-structure.mdx
β βββ variables-and-values.mdx
β βββ data-types.mdx
β βββ type-inference.mdx
β βββ operators.mdx
β βββ strings-and-interpolation.mdx
β βββ tuples.mdx
β βββ ranges.mdx
β βββ expressions-and-statements.mdx
βββ 04-control-flow/
β βββ if-expressions.mdx
β βββ match-expressions.mdx
β βββ for-expressions.mdx
β βββ while-loops.mdx
β βββ guards-and-patterns.mdx
β βββ indentation-and-braces.mdx
β βββ control-flow-best-practices.mdx
βββ 05-functions-and-methods/
β βββ defining-methods.mdx
β βββ parameters-and-return-types.mdx
β βββ default-and-named-arguments.mdx
β βββ multiple-parameter-lists.mdx
β βββ anonymous-functions.mdx
β βββ higher-order-functions.mdx
β βββ methods-vs-functions.mdx
β βββ recursion.mdx
βββ 06-collections/
β βββ collection-overview.mdx
β βββ lists-and-vectors.mdx
β βββ sets.mdx
β βββ maps.mdx
β βββ arrays.mdx
β βββ immutable-and-mutable-collections.mdx
β βββ map-filter-and-fold.mdx
β βββ collection-transformations.mdx
β βββ lazy-collections.mdx
βββ 07-object-oriented-programming/
β βββ classes-and-objects.mdx
β βββ constructors-and-parameters.mdx
β βββ fields-and-methods.mdx
β βββ inheritance.mdx
β βββ abstract-classes.mdx
β βββ traits.mdx
β βββ companion-objects.mdx
β βββ enums.mdx
β βββ object-composition.mdx
βββ 08-functional-programming/
β βββ functional-programming-overview.mdx
β βββ pure-functions.mdx
β βββ immutability.mdx
β βββ function-composition.mdx
β βββ currying-and-partial-application.mdx
β βββ map-flatmap-and-fold.mdx
β βββ options-and-null-handling.mdx
β βββ either-and-error-modeling.mdx
β βββ for-comprehensions.mdx
β βββ functional-design-principles.mdx
βββ 09-pattern-matching-and-algebraic-data-types/
β βββ pattern-matching.mdx
β βββ case-classes.mdx
β βββ enums-and-sum-types.mdx
β βββ sealed-traits.mdx
β βββ product-types.mdx
β βββ extractor-patterns.mdx
β βββ typed-patterns.mdx
β βββ exhaustive-matching.mdx
βββ 10-type-system/
β βββ static-typing.mdx
β βββ generic-types.mdx
β βββ variance.mdx
β βββ upper-and-lower-type-bounds.mdx
β βββ type-classes.mdx
β βββ givens-and-using.mdx
β βββ extension-methods.mdx
β βββ opaque-types.mdx
β βββ union-and-intersection-types.mdx
β βββ match-types.mdx
β βββ contextual-abstractions.mdx
βββ 11-error-handling/
β βββ exceptions.mdx
β βββ option-for-optional-values.mdx
β βββ either-for-errors.mdx
β βββ try-and-failure.mdx
β βββ custom-error-types.mdx
β βββ validation-patterns.mdx
β βββ error-handling-best-practices.mdx
βββ 12-implicits-and-scala-3-contexts/
β βββ scala-2-implicit-overview.mdx
β βββ scala-3-given-instances.mdx
β βββ using-clauses.mdx
β βββ contextual-functions.mdx
β βββ extension-methods.mdx
β βββ migration-notes.mdx
βββ 13-concurrency-and-asynchronous/
β βββ jvm-concurrency-overview.mdx
β βββ futures-and-promises.mdx
β βββ execution-contexts.mdx
β βββ parallel-collections.mdx
β βββ thread-safety.mdx
β βββ cats-effect-introduction.mdx
β βββ zio-introduction.mdx
β βββ asynchronous-design-patterns.mdx
βββ 14-files-and-serialization/
β βββ file-reading-and-writing.mdx
β βββ paths-and-directories.mdx
β βββ csv-processing.mdx
β βββ json-processing.mdx
β βββ json-library-comparison.mdx
β βββ configuration-files.mdx
β βββ environment-variables.mdx
βββ 15-build-tools-and-projects/
β βββ scala-cli-projects.mdx
β βββ sbt-project-structure.mdx
β βββ build-sbt-basics.mdx
β βββ dependencies-and-repositories.mdx
β βββ multi-module-projects.mdx
β βββ testing-and-build-tasks.mdx
β βββ publishing-libraries.mdx
β βββ cross-building-scala-versions.mdx
βββ 16-testing-and-code-quality/
β βββ testing-fundamentals.mdx
β βββ scala-test.mdx
β βββ munit.mdx
β βββ property-based-testing.mdx
β βββ mocking-and-test-doubles.mdx
β βββ integration-testing.mdx
β βββ formatting-and-scalafmt.mdx
β βββ static-analysis.mdx
β βββ continuous-integration.mdx
βββ 17-java-interoperability/
β βββ scala-on-the-jvm.mdx
β βββ calling-java-from-scala.mdx
β βββ calling-scala-from-java.mdx
β βββ java-collections-interop.mdx
β βββ jvm-annotations.mdx
β βββ java-library-integration.mdx
βββ 18-backend-development/
β βββ scala-backend-overview.mdx
β βββ http-api-fundamentals.mdx
β βββ http4s-introduction.mdx
β βββ akka-and-pekko-overview.mdx
β βββ database-access.mdx
β βββ doobie-introduction.mdx
β βββ authentication-and-authorization.mdx
β βββ logging-and-monitoring.mdx
β βββ backend-deployment.mdx
βββ 19-data-engineering/
β βββ scala-for-data-engineering.mdx
β βββ spark-introduction.mdx
β βββ spark-dataframes.mdx
β βββ spark-sql.mdx
β βββ transformations-and-aggregations.mdx
β βββ batch-processing.mdx
β βββ data-pipeline-project.mdx
βββ 20-performance-and-advanced-topics/
β βββ jvm-memory-basics.mdx
β βββ profiling-and-benchmarking.mdx
β βββ allocation-and-collections.mdx
β βββ inline-and-erased-definitions.mdx
β βββ macros-overview.mdx
β βββ compile-time-metaprogramming.mdx
β βββ performance-best-practices.mdx
βββ 21-projects/
β βββ command-line-calculator.mdx
β βββ expense-tracker.mdx
β βββ file-processing-tool.mdx
β βββ rest-api-service.mdx
β βββ concurrent-web-client.mdx
β βββ spark-data-pipeline.mdx
β βββ capstone-project.mdx
βββ reference/
β βββ scala-cheatsheet.mdx
β βββ syntax-reference.mdx
β βββ collections-reference.mdx
β βββ type-system-reference.mdx
β βββ scala-cli-commands.mdx
β βββ sbt-command-reference.mdx
β βββ common-errors.mdx
β βββ glossary.mdx
β βββ official-resources.mdx
βββ assets/
βββ images/
βββ diagrams/
βββ examples/