Aprende programación en C
Un curso online de C, gratuito e interactivo. Escribes C en cada lección, con pistas de IA cuando algo te lanza un segfault, y un certificado gratis al terminar.
123,799+ codders inscritos
- Apto para principiantes
Ayuda de codificación con IA
Lecciones interactivas prácticas
Narración de audio en cada lección
Cuestionarios para poner a prueba tu conocimiento
Certificado gratuito de finalización
Programa
Sección 1
Fundamentals
Empezar secciónEmpezarExpandirContraerBuild a strong foundation with essential concepts and basic skillsIntroducción
4 lecciones326- 01Lenguaje CReto
- 02¡Hola Mundo!RetoQuiz
- 03ComentariosQuiz
- 04Estructura básica de un programaRetoQuiz
Variables
11 lecciones1485- 01Tipos de datosRetoQuiz
- 02EnterosRetoQuiz
- 03Float - DoubleRetoMaestríaQuiz
- 04CaracteresRetoQuiz
- 05BooleanosRetoMaestríaQuiz
- 06ConstantesRetoQuiz
- 07Conceptos básicos de printfRetoQuiz
- 08Reglas para nombrar variablesRetoQuiz
- 09Conversión de tipos Parte 1RetoMaestríaQuiz
- 10Conversión de tipos Parte 2RetoQuiz
- 11Desafío de repasoReto
Operadores
9 lecciones1161- 01Operadores aritméticosRetoQuiz
- 02Operador de móduloRetoMaestríaQuiz
- 03Incremento/DecrementoRetoQuiz
- 04Operadores de asignaciónRetoQuiz
- 05Operadores relacionalesRetoQuiz
- 06Operadores lógicos - Parte 1RetoQuiz
- 07Operadores lógicos - Parte 2RetoQuiz
- 08Operadores lógicos - Parte 3RetoMaestríaQuiz
- 09Desafío de repasoReto
Flujo de control
7 lecciones944- 01Sentencia IfRetoQuiz
- 02If - ElseRetoQuiz
- 03Else-IfRetoMaestríaQuiz
- 04Switch CaseRetoMaestríaQuiz
- 05Operador condicional ternarioRetoQuiz
- 06Desafío de repasoReto
- 07If - Else anidadosRetoQuiz
Entrada y salida
5 lecciones626- 01Especificadores de formatoRetoQuiz
- 02Fundamentos de scanfRetoMaestríaQuiz
- 03Desafío de repaso #1Reto
- 04Validación de entradaRetoQuiz
- 05Desafío de repaso #2Reto
Bucles
9 lecciones1053- 01Bucle ForRetoMaestríaQuiz
- 02Bucle WhileRetoQuiz
- 03Bucle Do WhileRetoQuiz
- 04BreakRetoQuiz
- 05ContinueRetoQuiz
- 06Desafío de repaso #1Reto
- 07Bucles anidadosRetoMaestríaQuiz
- 08Bucles infinitosQuiz
- 09Desafío de repaso #2Reto
Funciones
7 lecciones1039- 01Declarar una funciónRetoQuiz
- 02Tipos de retornoRetoMaestríaQuiz
- 03ParámetrosRetoMaestríaQuiz
- 04Desafío de repaso n.º 1Reto
- 05Fundamentos de recursividadRetoMaestríaQuiz
- 06Prototipos de funcionesRetoQuiz
- 07Desafío de repaso n.º 2Reto
Arreglos
8 lecciones1247- 01Declaración de arreglosRetoQuiz
- 02Acceso a elementosRetoQuiz
- 03Modificación de elementosRetoMaestríaQuiz
- 04Arreglos multidimensionalesRetoMaestríaQuiz
- 05Desafío de repaso #1Reto
- 06Arreglos como argumentos de funcionesRetoMaestríaQuiz
- 07Algoritmos de arreglosRetoMaestríaQuiz
- 08Desafío de repaso #2Reto
Desafíos finales
3 lecciones3- 01CalificacionesReto
- 02PicosReto
- 03TVReto
Sección 2
Logic & Flow
Empezar secciónEmpezarExpandirContraerMaster advanced C programming with a focus on data structures and flow control. Learn to work with complex arrays, collections, error handling, and time management.Fundamentos de Punteros
6 lecciones540- 01¿Qué es un puntero?Quiz
- 02Declaración de punterosRetoQuiz
- 03El operador de dirección (&)RetoQuiz
- 04El operador de desreferencia (*)RetoQuiz
- 05Punteros NULLRetoQuiz
- 06Resumen: Conceptos básicos de punterosReto
Punteros y Arrays
5 lecciones531- 01Nombres de Arrays como PunterosRetoQuiz
- 02Elementos de un Array - PunterosRetoQuiz
- 03Aritmética de PunterosRetoQuiz
- 04Comparación de PunterosRetoQuiz
- 05Resumen: Recorrido de Arrays con PunterosReto
Arreglos de caracteres y cadenas
8 lecciones858- 01Cadenas como arreglos de charRetoQuiz
- 02El terminador nuloRetoQuiz
- 03Entrada de cadenas con scanfRetoQuiz
- 04Uso de strlen()RetoQuiz
- 05Uso de strcpy()RetoQuiz
- 06Uso de strcat()RetoQuiz
- 07Uso de strcmp()RetoQuiz
- 08Resumen: Funciones básicas de cadenasReto
Proyecto: Utilidad de texto simple
Proyecto5 lecciones1- 01Descripción general del proyectoReto
- 02Contar caracteresProyecto
- 03Contar vocalesProyecto
- 04Convertir a mayúsculasProyecto
- 05Resultado finalProyecto
Punteros y funciones
6 lecciones641- 01Paso por valorRetoQuiz
- 02Pasar punteros a funcionesRetoQuiz
- 03Modificar variables mediante punterosRetoQuiz
- 04Un ejemplo clásico: Intercambio (Swap)RetoQuiz
- 05Pasar arrays a funcionesRetoQuiz
- 06Resumen: Argumentos de punteros a funcionesReto
Gestión de memoria
7 lecciones652- 01Memoria Stack vs. HeapQuiz
- 02Asignación dinámica - malloc()RetoQuiz
- 03Uso de sizeof() para la asignaciónRetoQuiz
- 04Comprobación de fallos de asignaciónRetoQuiz
- 05Liberación de memoria con free()RetoQuiz
- 06Asignación con calloc()RetoQuiz
- 07Resumen: Arrays dinámicosReto
Estructuras (structs)
6 lecciones540- 01¿Qué es un struct?Quiz
- 02Declaración de un structRetoQuiz
- 03Creación de variables de tipo structRetoQuiz
- 04Acceso a los miembros de un structRetoQuiz
- 05Inicialización de structsRetoQuiz
- 06Resumen: Struct de datos de estudiantesReto
Estructuras y Punteros
6 lecciones643- 01Punteros a estructurasRetoQuiz
- 02El operador flecha (->)RetoQuiz
- 03Pasar estructuras por valorRetoQuiz
- 04Pasar punteros a estructurasRetoQuiz
- 05Asignación dinámica de estructurasRetoQuiz
- 06Resumen: Modificar estructuras - PtrReto
Proyecto: Registro de contacto simple
Proyecto5 lecciones1- 01Proyecto: Definir la estructura ContactReto
- 02Función para crear un contactoProyecto
- 03Función para rellenar un contactoProyecto
- 04Función para mostrar un contactoProyecto
- 05Poniéndolo todo juntoProyecto
Enums y Typedef
6 lecciones640- 01enum para constantes con nombreRetoQuiz
- 02Declaración y uso de enumsRetoQuiz
- 03Enums en sentencias switchRetoQuiz
- 04Uso de typedef para alias de tiposRetoQuiz
- 05typedef con structsRetoQuiz
- 06Repaso: Práctica de typedef y enumsReto
Desafíos de repaso final
3 lecciones3- 01Repaso: Concatenación dinámica de stringsReto
- 02Repaso: Array de structsReto
- 03Repaso: Contador de frecuencia de palabrasReto
Sección 3
Object Oriented Programming
Empezar secciónEmpezarExpandirContraerDiscover how to organize code with classes, objects, and reusable structuresFundamentos de programación modular
5 lecciones433- 01Archivos de cabeceraQuiz
- 02Guardas de inclusiónRetoQuiz
- 03Archivos fuenteRetoQuiz
- 04Funciones estáticasRetoQuiz
- 05Repaso: Calculadora modularReto
Objetos y métodos
6 lecciones642- 01Structs como objetosRetoQuiz
- 02El puntero 'Self'RetoQuiz
- 03Const CorrectnessRetoQuiz
- 04Puntero vs. ValorRetoQuiz
- 05Métodos auxiliaresRetoQuiz
- 06Resumen: Point ManagerReto
Ciclo de vida de los objetos
5 lecciones533- 01Patrón ConstructorRetoQuiz
- 02Patrón DestructorRetoQuiz
- 03Inicialización en StackRetoQuiz
- 04Copia profundaRetoQuiz
- 05Resumen: String WrapperReto
Encapsulamiento
5 lecciones435- 01Concepto de punteros opacosQuiz
- 02Definición de structs opacosRetoQuiz
- 03Getters y SettersRetoQuiz
- 04Validación en settersRetoQuiz
- 05Resumen: Caja secretaReto
Proyecto: Cuenta bancaria simple
Proyecto6 lecciones1- 01Configuración del proyectoReto
- 02Implementación de la cuentaProyecto
- 03Lógica de depósitoProyecto
- 04Lógica de retiroProyecto
- 05Obtener saldoProyecto
- 06Final del proyecto: Bucle principalProyecto
Herencia mediante composición
5 lecciones531- 01Incrustación de StructsRetoQuiz
- 02La regla del primer miembroRetoQuiz
- 03Acceso a miembros padreRetoQuiz
- 04UpcastingRetoQuiz
- 05Resumen: Jerarquía de formasReto
Punteros a funciones
5 lecciones534- 01Declaración de punteros a funcionesRetoQuiz
- 02Llamada a punteros a funcionesRetoQuiz
- 03Typedef para punteros a funcionesRetoQuiz
- 04Pasar funciones como argumentosRetoQuiz
- 05Repaso: Dispatch de calculadoraReto
Polimorfismo
6 lecciones641- 01Punteros a funciones en estructurasRetoQuiz
- 02Simulando métodosRetoQuiz
- 03El concepto de interfazRetoQuiz
- 04Implementando interfacesRetoQuiz
- 05Iteración polimórficaRetoQuiz
- 06Resumen: GreeterReto
Proyecto: Dibujador de figuras
Proyecto5 lecciones1- 01Descripción general del proyectoReto
- 02Implementación del círculoProyecto
- 03Implementación del rectánguloProyecto
- 04Uso polimórficoProyecto
- 05Contenedor de figurasProyecto
Contenedores genéricos
5 lecciones534- 01Repaso de punteros voidRetoQuiz
- 02Wrapper genéricoRetoQuiz
- 03Swap genéricoRetoQuiz
- 04Comparación genéricaRetoQuiz
- 05Repaso: Array genéricoReto
Patrones de diseño en C
4 lecciones425- 01Patrón SingletonRetoQuiz
- 02Patrón FactoryRetoQuiz
- 03Patrón IteratorRetoQuiz
- 04Resumen: Logger FactoryReto
Desafíos finales
4 lecciones48- 01Personaje de RPGReto
- 02Constructor de strings dinámicoReto
- 03Pila genéricaReto
- 04Sistema de eventosRetoQuiz
Cursos de C
Cursos prácticos de C, gratis para empezar en tu navegador.
Desafíos para principiantes - Practica conceptos básicos
PopularPon a prueba tus conocimientos básicos de programación e intenta resolver estos desafíos; usa cualquier lenguaje que quieras. ¡Feliz programación!
Certificado al completar
- 20
- 20
Problemas de programación
PopularPon a prueba tus habilidades de resolución de problemas de programación con los ejercicios de diferentes niveles de dificultad de este curso. Diseñado para programadores con conocimientos previos de la sintaxis básica en cualquier lenguaje de programación.
Certificado al completar
- 32
- 31
Problemas de programación: Volumen 2
Pon a prueba tus habilidades de resolución de problemas de programación con los ejercicios de diferentes niveles de dificultad de este curso. Diseñado para programadores con conocimientos previos de la sintaxis básica en cualquier lenguaje de programación, este curso es una extensión del primer volumen de Problemas de programación.
Certificado al completar
- 25
- 24
Pila - Serie de Estructuras de Datos #1
En este curso, aprenderás sobre la estructura de datos Pila, crearás una Pila desde cero usando tu lenguaje preferido y practicarás desafíos de programación con ella.
- 13
- 6
- 1
Heaps y Colas de Prioridad - Serie de Estructuras de Datos #7
NuevoEn este curso, aprenderás sobre la estructura de datos Heap (la base de las colas de prioridad), crearás un MinHeap desde cero usando tu lenguaje preferido y practicarás desafíos de programación con él.
Certificado al completar
- 14
- 6
- 1
Bootcamp de patrones de estrellas
Pon a prueba tus habilidades de resolución de problemas de programación para aprender a imprimir patrones de estrellas que van desde lo simple hasta lo complejo, involucrando diferentes niveles de bucles anidados, sentencias condicionales y cálculos matemáticos.
- 30
- 28
Por qué aprender programación en C con Coddy
- Escribe y ejecuta código C real en tu navegador. Sin instalar GCC, sin Makefile, sin configurar toolchain. Cada ejercicio compila tu programa en C del lado del servidor y te muestra la salida al instante.
- C tal como se usa en la práctica: punteros y referencias, arrays, strings, structs, memoria dinámica con
mallocyfree, I/O de archivos. Las bases de C que todo programador de sistemas necesita. - Las pistas con IA te ayudan a leer y corregir errores del compilador de C y segfaults, para que el lenguaje se sienta accesible en vez de críptico desde el primer día.
- Certificado gratuito de programación en C al terminar el curso. Una señal creíble para puestos de sistemas, embebidos, OS y motores de juegos, donde se espera fluidez en C.