Saltar al contenido
Logotipo de Trainontech Trainontech

Lenguajes y Fundamentos de Programación · LNG-200

Scala desde cero

Objetos y funciones en el mismo lenguaje, con el kernel Almond para practicar sin montar un proyecto.

Bajo demanda Iniciación 8 módulos · 39 clases

Formato asíncrono Desarrollo, Ingeniería / Industria Scala, JupyterLab

Lo que aprenderás

  • Declarar valores inmutables y funciones, y aprovechar la inferencia de tipos de Scala.
  • Modelar datos con case classes, objetos y traits, y recorrerlos con coincidencia de patrones.
  • Transformar colecciones inmutables con map, flatMap, filter y fold.
  • Representar la ausencia y el fallo con Option, Either y Try en lugar de nulos.
  • Definir clases genéricas y funciones de orden superior con parámetros de tipo.
  • Compilar y ejecutar un proyecto con sbt y organizar el código en paquetes.
  • Escribir comprensiones for como forma legible de encadenar transformaciones.

Contenido del curso

8 módulos · 39 clases en vídeo · práctica guiada en cada módulo

Módulo 1 · Presentación y entorno 4 clases
  • Qué es Scala y dónde se usa hoy
  • Primera celda en JupyterLab con Almond
  • Expresiones frente a instrucciones
  • sbt y la estructura de un proyecto
Módulo 2 · Valores, tipos y funciones 5 clases
  • val, var e inmutabilidad por defecto
  • Tipos básicos e inferencia
  • Definir funciones y funciones anónimas
  • Parámetros con nombre y valores por defecto
  • Funciones de orden superior
Módulo 3 · Clases, objetos y traits 5 clases
  • Clases y constructores
  • case classes e igualdad estructural
  • object, companion object y apply
  • Traits y composición de comportamiento
  • Herencia y clases selladas
Módulo 4 · Coincidencia de patrones 5 clases
  • match sobre valores y tipos
  • Desestructurar case classes
  • Guardas y patrones anidados
  • Extractores con unapply
  • Exhaustividad con jerarquías selladas
Módulo 5 · Colecciones 5 clases
  • List, Vector, Set y Map inmutables
  • map, flatMap y filter
  • fold, reduce y agregaciones
  • Comprensiones for y su traducción
  • Colecciones mutables: cuándo se justifican
Módulo 6 · Ausencia y error 5 clases
  • Option en lugar de null
  • Either para resultados con causa
  • Try y excepciones encapsuladas
  • Encadenar operaciones que pueden fallar
  • Validación de datos de entrada
Módulo 7 · Genéricos y del cuaderno al proyecto 5 clases
  • Parámetros de tipo en clases y métodos
  • Restricciones de tipo básicas
  • Implícitos y parámetros dados: primera aproximación
  • Proyecto sbt: compilar y ejecutar
  • Pruebas con ScalaTest o MUnit
Módulo 8 · Caso práctico: procesado de un fichero de datos 5 clases
  • Modelo de datos con case classes
  • Lectura y validación línea a línea
  • Transformaciones y agregados
  • Informe de errores acumulados
  • Entrega: proyecto sbt con pruebas

Requisitos

  • Haber programado antes en algún lenguaje, preferiblemente Java o Python.
  • Basta con un navegador: se practica en JupyterLab con el kernel Almond.
  • Para el bloque de proyectos conviene un JDK y sbt instalados en el equipo.

Descripción

Scala reúne en un solo lenguaje la orientación a objetos y la programación funcional, y esa mezcla es su fuerza y también la causa de que asuste al principio: el mismo problema se puede resolver de varias maneras y no está claro cuál es la idiomática. Además, montar un proyecto con sbt antes de escribir la primera línea desanima a cualquiera.

Aquí se empieza en cuaderno con el kernel Almond, escribiendo expresiones y viendo el resultado sin configurar nada. El recorrido cubre valores inmutables, case classes, traits, coincidencia de patrones, colecciones y el tratamiento del fallo con Option y Either, siempre con el criterio idiomático explicado. El bloque final traslada el trabajo a un proyecto sbt con pruebas.

Al terminar se puede leer código Scala de proyectos reales y escribir el propio con un estilo coherente. Es el paso previo al curso de Scala funcional y para ingeniería de datos, donde entra Spark, y también una buena preparación para cualquier trabajo con procesamiento distribuido, donde Scala sigue siendo el lenguaje de referencia.

¿Para quién es este curso?

  • Desarrolladores Java que se incorporan a un proyecto de datos escrito en Scala.
  • Ingeniería de datos que trabajará con Spark y necesita el lenguaje antes que el framework.
  • Programadores que quieren aprender programación funcional sin abandonar la máquina virtual de Java.
Bajo demanda

Curso diseñado con la ficha cerrada. Se produce al confirmarse un grupo o un contrato.

Código
LNG-200
Nivel
Iniciación
Público
Desarrollo, Ingeniería / Industria
Entorno
Scala, JupyterLab

Este curso incluye

  • 39 clases en vídeo bajo demanda
  • Práctica íntegramente en JupyterLab, solo con un navegador
  • Tutorización en el campus
  • Acceso desde móvil, tableta y ordenador
  • Actualizaciones cuando cambia la versión de la herramienta
  • Certificado de finalización

Sigue aprendiendo

Cursos relacionados

PY-101Lenguajes y Fundamentos de Programación

Python desde cero

Variables, tipos, operadores, condicionales, bucles y funciones con práctica continua en cuaderno.

PythonGoogle Colab

Iniciación 42 clases

PY-102Lenguajes y Fundamentos de Programación

Estructuras de datos en Python

Listas, tuplas, diccionarios y conjuntos: cuándo usa cada una un programador con oficio.

Python

Iniciación 33 clases

Bajo demanda

DEV-101Lenguajes y Fundamentos de Programación

Git y GitHub para equipos técnicos

Ramas, revisiones y resolución de conflictos con un flujo de trabajo que un equipo puede sostener.

Git

Iniciación 34 clases