Introducción
Este test está diseñado para ayudarte a medir tus conocimientos actuales de Kotlin. No importa si eres un principiante o si ya tienes experiencia; lo importante es que aproveches esta oportunidad para identificar tus puntos fuertes y las áreas donde puedes mejorar.
Temas a evaluar
Introducción a Kotlin:
- Historia y filosofía de Kotlin
- Usos de Kotlin en la actualidad
- Kotlin vs Java
Instalación y primer programa de Kotlin:
- Estructura básica de un proyecto Kotlin
- Hola mundo en Kotlin
- Compilación y ejecución
- Paquetes e importaciones
Tipos de datos, variables y constantes:
- Declaración y asignación de variables
- Tipos de datos primitivos
- Uso de constantes
Operadores y expresiones:
- Operadores aritméticos, lógicos y relacionales
- Precedencia y asociatividad de operadores
- Conversión y casting de tipos
Cadenas de texto y manipulación:
- Operaciones básicas con cadenas
- Formateo de cadenas
Estructuras de control:
- Estructuras condicionales (if,else,when)
- Bucles (for,while,do-while)
- Expresiones de control (break,continue,return)
- Expresiones de control con try-catch
Funciones y llamada de funciones:
- Definición y sintaxis de funciones
- Parámetros y argumentos (por defecto, nombrados)
- Sobrecarga de funciones
- Funciones locales y anidadas
Clases y objetos:
- Definición de clases y creación de objetos
- Propiedades y métodos de las clases
- Inicialización de objetos y constructores
- Clases anidadas e internas
Herencia y polimorfismo:
- Concepto de herencia en Kotlin
- Uso de openyoverride
- Polimorfismo y clases derivadas
- Sobreescritura de métodos
Interfaces y clases abstractas:
- Definición y uso de interfaces
- Definición y uso de clases abstractas
- Diferencias entre interfaces y clases abstractas
- Implementación múltiple de interfaces
Data classes y destructuring:
- Definición y uso de data class
- Métodos generados automáticamente (toString,equals,hashCode,copy)
- Uso de destructuring para extraer datos
- Comparación entre data classy clases regulares
Tipos genéricos y varianza:
- Definición y uso de tipos genéricos
- Variancia: inyout
- Restricciones en tipos genéricos
- Funciones y clases genéricas
Listas, Conjuntos y Mapas:
- Definición y uso de listas (List,MutableList)
- Definición y uso de conjuntos (Set,MutableSet)
- Definición y uso de mapas (Map,MutableMap)
- Operaciones comunes sobre colecciones (filtrar, mapear, agrupar)
Introducción a la programación funcional en Kotlin:
- Qué es la programación funcional
- Explicación de funciones puras y efectos secundarios
- Ventajas y limitaciones del paradigma funcional sobre el paradigma imperativo
- Evaluación perezosa (lazy)
Funciones de primera clase y de orden superior:
- Funciones de primera clase y de orden superior
- Expresiones Lambda
- Lambdas con funciones de orden superior
- Cláusulas inline y no-inline
- Uso de funciones anónimas
Inmutabilidad y datos inmutables:
- Qué es la inmutabilidad
- Ventajas de usar datos inmutables
- valy- data classen Kotlin
- Cómo aplicar inmutabilidad en estructuras de datos
- Colecciones inmutables vs mutables
- Evitar estados compartidos
Composición de funciones:
- Qué es la composición de funciones
- Composición con lambdas
- Aplicación de funciones como argumentos
- Creación de pipelines funcionales
Monads y manejo funcional de errores:
- Introducción a Monads en programación funcional
- Uso y diferencias de Either y Result para manejo de errores
- Uso y diferencias de Optional y Option para valores opcionales
- Manejo de errores con Monads anidados
Operaciones en colecciones:
- Operaciones map,filteryreduceen colecciones
- Uso de folden colecciones
- Procesamiento perezoso con secuencias en colecciones
- Ejemplos prácticos de transformaciones en colecciones
Transformaciones en Monads y Functors:
- Introducción a Monads y Functors
- Uso de mapyflatMapen Monads (Option,Result)
- Composición de Functors y Monads
- Ejemplos prácticos de transformaciones en estructuras encapsuladas
Funciones parciales y currificación:
- Definición de funciones parciales
- Currificación de funciones
- Aplicaciones prácticas de funciones parciales
- Currificación con funciones de orden superior
Introducción a las corutinas:
- Qué son las corutinas y qué ventajas tienen
- Creación y uso de corutinas
- Scopes y contextos de corutinas
Asincronía con suspend, async y await:
- Funciones suspendidas suspend
- Uso de async
- Operador await
- Composición de funciones suspendidas
Concurrencia funcional:
- Manejo de concurrencia en corutinas
- Estructuras de sincronización en corutinas: Uso de Mutex,Channel
- Paralelismo con corutinas
 
                Alan Sastre
Ingeniero de Software y formador, CEO en CertiDevs
Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, Kotlin es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.
Más tutoriales de Kotlin
Explora más contenido relacionado con Kotlin y continúa aprendiendo con nuestros tutoriales gratuitos.