Fundamentos de Scala
Aprendé Scala 3 desde cero con ejemplos bancarios: las bases del lenguaje, operadores, estructuras de control, funciones, colecciones, clases, herencia, traits, strings, archivos y expresiones regulares, y un proyecto final con sbt.
Basado en el curso que armé para· 2023
Empezar el cursoQué vas a aprender
- Instalar Java, Scala y sbt, usar el intérprete y compilar proyectos con sbt o con Maven.
- Las bases del lenguaje: valores y variables, tipos, bloques, operadores (que en Scala son métodos) y estructuras de control.
- Funciones a fondo: argumentos por defecto y con nombre, recursión, funciones de orden superior, lambdas, aplicación parcial, currying, valores perezosos y excepciones.
- Trabajar con arrays, matrices, listas, mapas, tuplas y sets, y transformarlos con
map,filter,foldLeftygroupBy. - Programación orientada a objetos en Scala: clases, objetos singleton, companion objects, case classes, herencia, clases abstractas y traits.
- Procesar texto: strings, lectura y escritura de archivos y expresiones regulares.
- Integrar todo en un proyecto final: un sistema bancario con clientes, cuentas, transacciones y un banco.
Para quién es
- Desarrolladores que vienen de Java, C++, Python u otro lenguaje y quieren sumarse a un equipo que programa en Scala.
- Data engineers que necesitan leer y escribir Scala con soltura.
Requisitos
- Saber programar en algún lenguaje: variables, funciones, condicionales y bucles. Si venís de Java, vas a reconocer muchas cosas.
- Estar cómodo con la línea de comandos de tu sistema operativo.
- Para casi todo alcanza con el navegador (Scastie). Para las lecciones de entrada por teclado, archivos y el proyecto final, Java 11, Scala y sbt instalados: la lección 1 explica cómo.
Cómo está armado
El curso usa las versiones del momento en que se armó el material original, octubre de 2023: Scala 3.3.1 (la primera versión LTS de Scala 3), sbt 1.9.6 y Java 11. Donde la sintaxis de Scala 2 que vas a encontrar en código existente cambia en Scala 3, hay una nota que lo aclara.
- Módulo 1 · Las bases — instalación, intérprete, valores, tipos, operadores y estructuras de control.
- Módulo 2 · Funciones y colecciones — funciones, programación funcional y excepciones; arrays y matrices; listas, mapas, tuplas y sets.
- Módulo 3 · Programación orientada a objetos — clases, objetos y case classes, y herencia.
- Módulo 4 · Strings, archivos y traits — strings, archivos, expresiones regulares y traits.
- Módulo 5 · Proyecto final — un sistema bancario en Scala 3 con sbt: recorrido por el código, mejoras y ejercicios para extenderlo.
El curso trae dos proyectos para descargar: un proyecto de ejemplo con Maven (Scala 2.13.8), en la lección 1, y el proyecto final con sbt, en la lección 14.
Casi todos los ejemplos y ejercicios giran alrededor del mismo dominio: cuentas, tarjetas, transacciones y préstamos. Cada lección cierra con ejercicios ("Practicá") y sus soluciones. La idea es que escribas el código vos antes de mirar la respuesta.