Elige tu idioma
Curso de Programación en C/C++
Más de 2 millones de estudiantes en todo el mundo

Curso de Programación en C/C++

Domina C y C++ desde cero, cubriendo desde memoria en bruto y punteros hasta características modernas de C++20, patrones de diseño y sistemas concurrentes. Este curso te brinda la profundidad técnica que los desarrolladores profesionales e ingenieros de sistemas realmente usan en el trabajo. Ya sea que te enfoques en firmware embebido, aplicaciones de alto rendimiento o entrevistas técnicas, saldrás con habilidades reales y listas para producción.

Dedika para empresas

Lo que vas a aprender:

Construirás una base completa en sintaxis de C y C++, gestión de memoria y programación orientada a objetos antes de avanzar a plantillas, la Biblioteca de Plantillas Estándar y características modernas de C++17/20. El curso cubre estructuras de datos y algoritmos implementados desde cero, brindándote las habilidades de resolución de problemas necesarias para entrevistas técnicas y trabajo de sistemas. También aprenderás a usar herramientas estándar de la industria como CMake, GDB, Google Test y analizadores estáticos. Los temas de programación embebida y a nivel de sistemas te preparan para firmware y desarrollo de bajo nivel. Al finalizar, estarás capacitado para diseñar, construir y entregar software robusto en C++ en entornos profesionales.

Cómo estudias de forma práctica Curso de Programación en C/C++

Cómo practicas Curso de Programación en C/C++

Para ti que eres empresa y quieres capacitar a tu equipo

En Dedika para empresas, el curso incluye ejercicios y ejemplos adaptados a tu propio negocio y a las necesidades de tu empresa.

Haz clic aquí

Contenido del curso

8 Capítulos • 40 LeccionesDuración entre 4 y 360 horas (tú decides)

Capítulo 1Ver detalles

Fundamentos del entorno y sintaxis de C/C++

  • Lección 1 • Variables, tipos y literales

    Introduce los tipos de datos primitivos, la declaración de variables y los valores literales. El dominio aquí permite una representación correcta de datos a lo largo del curso.

  • Lección 2 • Fundamentos de entrada y salida

    Enseña la E/S por consola usando printf/scanf en C y cin/cout en C++. Permite crear programas interactivos requeridos en cada ejercicio práctico.

  • Lección 3 • Operadores y expresiones

    Cubre operadores aritméticos, relacionales, lógicos y bit a bit con reglas de precedencia. Desarrolla la habilidad de escritura de expresiones necesaria para todo el flujo de control y algoritmos.

  • Lección 4 • Sintaxis básica y estructura del programa

    Cubre tokens, sentencias, bloques y la anatomía de un archivo fuente de C/C++. Se conecta directamente con la escritura de cualquier programa válido en capítulos posteriores.

  • Lección 5 • Configuración del entorno de desarrollo

    Instala y configura compiladores, editores y herramientas de compilación para C/C++. Proporciona la base técnica de la que depende cada capítulo posterior.

Capítulo 2Ver detalles

Flujo de control y funciones

  • Lección 1 • Declaración y definición de funciones

    Introduce los prototipos de función, las definiciones y la mecánica de llamada en C/C++. Establece los principios de diseño modular que se usan a lo largo del curso.

  • Lección 2 • Ámbito, tiempo de vida y clases de almacenamiento

    Explica las variables locales, globales y estáticas y sus tiempos de vida. Previene errores comunes relacionados con variables no inicializadas o con ámbito incorrecto.

  • Lección 3 • Fundamentos de recursión

    Cubre el diseño de funciones recursivas, casos base y el comportamiento de la pila. Prepara para los algoritmos y estructuras de datos recursivos en capítulos posteriores.

  • Lección 4 • Sentencias condicionales

    Cubre las construcciones if, else-if y switch para la toma de decisiones. Permite directamente los programas basados en lógica que se desarrollan en cada capítulo posterior.

  • Lección 5 • Bucles e iteración

    Enseña bucles for, while y do-while junto con sentencias de control de bucle. La iteración es la columna vertebral de los algoritmos y el procesamiento de datos que se cubren más adelante.

Capítulo 3Ver detalles

Arreglos, cadenas y punteros

  • Lección 1 • Cadenas estilo C y funciones de cadena

    Enseña los arreglos de caracteres terminados en nulo y las funciones estándar de la biblioteca de cadenas. Proporciona la base de cadenas C necesaria antes de introducir std::string de C++.

  • Lección 2 • Asignación dinámica de memoria

    Enseña malloc/free en C y new/delete en C++ para la gestión del heap. Sienta las bases para las estructuras de datos dinámicas que se cubren en el próximo capítulo.

  • Lección 3 • Arreglos unidimensionales y multidimensionales

    Cubre la declaración de arreglos, la inicialización y los patrones de acceso a elementos. Los arreglos sustentan casi todas las estructuras de datos que se introducen más adelante en el curso.

  • Lección 4 • Punteros y funciones

    Cubre el paso de punteros a funciones y el retorno seguro de punteros. Permite la manipulación eficiente de datos sin copias innecesarias.

  • Lección 5 • Fundamentos de punteros y aritmética de direcciones

    Introduce la declaración de punteros, desreferencia y aritmética de punteros. Los punteros son fundamentales para la memoria dinámica y la programación de bajo nivel en capítulos posteriores.

Capítulo 4Ver detalles

Estructuras, uniones y enumeraciones

  • Lección 1 • Enumeraciones y alias de tipo

    Cubre enums de C, enum class de C++ y declaraciones typedef/using. Mejora la claridad del código y la seguridad de tipos en todos los proyectos posteriores.

  • Lección 2 • Campos de bits y datos empaquetados

    Introduce miembros struct de campo de bits para una representación compacta de datos. Relevante para el análisis de protocolos y el mapeo de registros de hardware en temas avanzados.

  • Lección 3 • Punteros a estructuras

    Enseña el acceso a estructuras basado en punteros y la asignación dinámica de estructuras. Permite las estructuras de datos enlazadas que se construyen en el capítulo de algoritmos.

  • Lección 4 • Uniones y compartición de memoria

    Explica la semántica de uniones, almacenamiento superpuesto y casos de uso válidos. Proporciona información de memoria de bajo nivel relevante para programación embebida y de sistemas.

  • Lección 5 • Definición y uso de estructuras

    Cubre la declaración de structs, el acceso a miembros y structs anidados. Las estructuras son el precursor directo de las clases de C++ que se introducen en el próximo capítulo.

Capítulo 5Ver detalles

Programación orientada a objetos en C++

  • Lección 1 • Polimorfismo y funciones virtuales

    Introduce funciones virtuales, funciones virtuales puras y clases abstractas. Permite patrones de despacho en tiempo de ejecución centrales para el diseño de software extensible.

  • Lección 2 • Herencia y jerarquías de clases

    Cubre herencia simple y múltiple, acceso a clase base y encadenamiento de constructores. Desarrolla las habilidades de diseño de jerarquías necesarias para el polimorfismo.

  • Lección 3 • Encapsulación y principios de diseño

    Aplica principios SOLID y estrategias de encapsulación al diseño de clases. Prepara para escribir código C++ mantenible y comprobable en capítulos avanzados.

  • Lección 4 • Sobrecarga de operadores

    Enseña la sobrecarga de operadores aritméticos, de comparación y de flujo para tipos personalizados. Permite una sintaxis intuitiva para clases definidas por el usuario que se usan en proyectos posteriores.

  • Lección 5 • Clases y objetos

    Cubre la declaración de clases, especificadores de acceso e instanciación de objetos. Establece el modelo de clase que extienden todas las características de POO en este capítulo.

Capítulo 6Ver detalles

Plantillas, STL y programación genérica

  • Lección 1 • Algoritmos STL

    Cubre sort, find, transform, accumulate y otros algoritmos estándar. La aplicación de algoritmos STL reemplaza los bucles manuales propensos a errores en código de producción.

  • Lección 2 • Plantillas de función y clase

    Cubre la sintaxis de plantillas, parámetros de tipo y creación de instancias de plantillas. Las funciones y clases genéricas reducen la duplicación de código en todos los proyectos futuros.

  • Lección 3 • Contenedores STL

    Introduce vector, list, deque, map, set y variantes no ordenadas. Elegir el contenedor correcto es crítico para el rendimiento en el diseño de algoritmos.

  • Lección 4 • Expresiones lambda y functores

    Introduce la sintaxis lambda, capturas y objetos functor para usar con STL. Permite la personalización de algoritmos concisa y expresiva en C++ moderno.

  • Lección 5 • Iteradores y rangos

    Enseña categorías de iteradores, aritmética de iteradores y bucles for basados en rango. Los iteradores son la interfaz universal entre contenedores y algoritmos.

Capítulo 7Ver detalles

Gestión de memoria y seguridad de recursos

  • Lección 1 • Manejo de excepciones y seguridad

    Cubre try/catch/throw, jerarquías de excepciones y garantías de seguridad ante excepciones. El manejo robusto de errores previene fugas de recursos en condiciones excepcionales.

  • Lección 2 • RAII y propiedad de recursos

    Explica el modismo RAII y cómo los constructores/destructores imponen la seguridad de recursos. RAII es la base de toda gestión segura de recursos en C++ moderno.

  • Lección 3 • Punteros inteligentes a fondo

    Cubre la semántica y patrones de uso de unique_ptr, shared_ptr y weak_ptr. Los punteros inteligentes eliminan las llamadas manuales a delete y previenen errores de propiedad.

  • Lección 4 • Semántica de copia y movimiento

    Enseña constructores de copia, asignación de copia, constructores de movimiento y asignación de movimiento. La Regla de Cinco gobierna el diseño correcto de clases propietarias de recursos.

  • Lección 5 • Depuración y perfilado de memoria

    Presenta herramientas para detectar fugas, accesos no válidos y corrupción del heap. Las habilidades de perfilado son esenciales para mantener código C++ de calidad de producción.

Capítulo 8Ver detalles

E/S de archivos, concurrencia y programación de sistemas

  • Lección 1 • Multiprocesamiento por hilos con std::thread

    Enseña la creación, unión y separación de hilos usando la biblioteca de hilos de C++11. Los fundamentos de concurrencia permiten el diseño de programas paralelos en este capítulo.

  • Lección 2 • Procesos e interfaces de sistema

    Introduce la creación de procesos, variables de entorno y llamadas al sistema. Proporciona el contexto a nivel de SO necesario para escribir programas C a nivel de sistemas.

  • Lección 3 • Fundamentos de redes y sockets

    Introduce la API de sockets BSD para comunicación TCP/UDP en C/C++. Las habilidades de redes extienden las aplicaciones C/C++ a contextos distribuidos y cliente-servidor.

  • Lección 4 • Sincronización y carreras de datos

    Cubre mutexes, variables de condición y operaciones atómicas para prevenir carreras de datos. La sincronización segura es obligatoria para programas concurrentes correctos.

  • Lección 5 • E/S de archivos en C y C++

    Cubre fopen/fclose en C y fstream en C++ para leer y escribir archivos. La E/S de archivos es necesaria para la persistencia de datos en todos los proyectos finales.

Certificación

Tu certificado válido de finalización

Este curso es para ti:

  • Estudiantes de ciencias de la computación: que buscan profundidad práctica más allá de lo que las aulas suelen ofrecer.

  • Desarrolladores de Python o JavaScript: listos para entender qué sucede debajo de la capa de abstracción.

  • Ingenieros eléctricos: que necesitan habilidades en C para escribir y mantener firmware para proyectos de hardware.

  • Personas en cambio de carrera: que apuntan a roles de sistemas o embebidos que requieren fluidez en programación de bajo nivel.

  • Desarrolladores de videojuegos: que desean optimizar código crítico de rendimiento escrito en C o C++.

  • Programadores autodidactas: que construyen la base rigurosa que demandan lenguajes estructurados como C.

Lo que dicen nuestros alumnos

Sus clases son perfectas. Adquirí el paquete de un año y, finalmente, tengo la oportunidad de seguir diversos temas de mi interés sin necesidad de cambiar de plataforma... agradezco todo lo que hacen, ya los he recomendado a otras personas...
Giulio Carlo
Giulio CarloEstudiante de Marketing Digital
Me gusta cómo las lecciones van directo al grano y cómo puedo cambiar capítulos y saltar contenidos que no necesito.
Mariana Ferres
Mariana FerresEstudiante de Fotografía
Me gusta el contenido y la forma de presentación y transcripción de videos, ¡lo que acelera el proceso!
Luciana Alvarenga
Luciana AlvarengaEstudiante de Diseño de Uñas
La plataforma es rápida, simple de usar. La diversidad de contenido y los videos complementarios ayudan mucho en el aprendizaje.
André Felipe
André FelipeEstudiante de Ingeniería de Prompt

Principales capacitaciones

Preguntas frecuentes

¿Quién es Dedika?

¿El certificado es válido en México?

¿Los cursos son gratuitos?

¿Cuál es la carga horaria del curso?

¿Cómo son los cursos?

¿Cómo funcionan los cursos?

¿Cuál es la duración de los cursos?

¿Cuál es el costo o precio de los cursos?

¿Qué es un curso EAD u online y cómo funciona?

Curso en PDF