Programación profesional desde cero

Todo lo que un programador moderno debería saber y dominar

4.63 (1208 reviews)
Udemy
platform
Español
language
Other
category
Programación profesional desde cero
59,108
students
100 hours
content
Feb 2023
last update
$74.99
regular price

What you will learn

Programación de proyectos complejos: A lo largo del curso tendrás que implementar y desarrollar diferentes proyectos, que te permitirán entrenar lo aprendido.

Entorno de Desarrollo Integrado: Cómo utilizar un IDE moderno para comenzar a desempeñarte en cualquier tecnología de desarrollo de software.

Entrada y salida de datos: Aprenderás a mostrar información en pantalla, primero en consola y luego en ventanas, así como a capturarla y procesarla.

Variables y tipos de datos: Conocerás qué son las variables y cómo se vinculan con los tipos de datos, tanto los primitivos como los definidos manualmente..

Constantes: Aprenderás a definir valores que no cambiarán a lo largo de la ejecución de tu programa, siendo éstas muy útiles para sistematizar tareas.

Toma de decisiones: El uso de sentencias IF te permitirá lograr que tus programas tomen distintos caminos según lo que va ocurriendo.

Condiciones booleanas: Definir las formas en que tu programa evalúa cada situación es una tarea compleja e importante. Aprenderás a hacerlo de forma correcta.

Iteración FOR: Conocerás la sentencia FOR y su uso para repetir tareas dentro de un bloque de código, un número de veces específico.

Iteración condicional: Sabrás definir bloques de código que deben repetirse un número de veces indefinido, dependiendo esto de lo que va ocurriendo.

Funciones y procedimientos: Aprenderás a dividir tus programas en bloques de código que luego podrás invocar, dividiendo problemas en tareas más pequeñas.

Alcance de identificadores: Comprenderás cómo los nombres que usas tienen diferentes alcances según donde los defines, y cómo esto afecta a tu código.

Estructuras de datos lineales: Aprenderás a usar diferentes estructuras para solucionar tus problemas y crear proyectos.

Modularización: Aprenderás a dividir grandes programas en módulos independientes que luego encajarán en el lienzo final creando algo único.

Creación de librerías: Comprenderás cómo reutilizar código ya creado para no tener que reescribir cada cosa, creando tus propias librerías.

Archivos: Podrás hacer que tus programas creen archivos de texto plano (TXT), así como también definir tu propio tipo de archivos.

Punteros: Aprenderás a dominar el uso de la memoria, crear nuevos datos dinámicamente y liberarlos cuando ya no los necesitas.

Tipos Abstractos de Datos: Comprenderás que son los TADs, aprenderás a definir y crear los tuyos y te diferenciarás del resto de programadores.

Listas Enlazadas: Trabajarás con la estructura dinámica LinkedList, extremadamente habitual en todo lenguaje.

Colas y Pilas: Aprenderás a crear estructuras dinámicas utilizando el modelo de Cola (Queue) y Pila (Stack).

Árboles binarios de búsqueda y generales: Conocerás como crear estructuras arborescentes dinámicamente y usarlas para hacer que tus programas sean eficientes.

Definición y creación de Objetos: Aprenderás a definir clases (class) de objetos e instanciarlos, dando un salto cuántico en tu forma de programar.

Herencia y Polimorfismo: Conocerás cómo utilizar estas cualidades de la POO a tu favor para agilizar tu desarrollo y reutilizar mucho mejor tu código.

Casteo: Sabrás cambiar el tipo de datos de tus objetos de forma dinámica durante la ejecución de tu software.

Interfaces Gráficas de Usuario: Será en este punto en el que aprenderás a crear las tuyas propias y hacerlas funcionar.

Diseño de Software: Conocerás las bases para diseñar un software de porte pequeño o mediano (más de 10000 líneas), incluso grande, desde cero.

Bases de datos SQL: Aprenderás a usar, crear y gestionar bases de datos relacionales basadas en el lenguaje SQL. Nos basaremos en MySQL y SQLite.

Patrones de Diseño: Aprenderás, por ejemplo el patrón SINGLETON, MVC, Capas, entre otros.

Codificarás como si no hubiera un mañana: Tendrás que hacer funcionar muchos proyectos completos y entregar tu trabajo.

El doble de horas: La práctica del curso será intensiva, implicando horas y horas de trabajo y desarrollo de software, como debe ser.

Why take this course?

Este curso es un curso de Programación desde cero, y resaltamos la palabra programación porque no es un curso de un lenguaje concreto, sino que es un entrenamiento diseñado para forjar a un programador profesional desde la nada absoluta hasta la maestría.

Pasarás de forma progresiva por los distintos paradigmas de programación, aprendiendo:

  • Programación estructurada

  • Programación modular

  • Memoria dinámica

  • Programación Orientada a Objetos

  • Programación de Interfaces Gráficas de Usuario

  • Bases de Datos SQL

A través de este curso el estudiante desarrollará varios proyectos, diseñará sus propios programas, resolverá problemas complejos con pocas herramientas, aprenderá a pensar y a dividir grandes retos en pequeñas partes. Aprenderá también la teoría profunda que todo programador necesita hoy día y la pondrá en práctica inmediatamente a través de los ejercicios y proyectos planteados.

El curso se divide en 5 módulos extremadamente poderosos, cada uno de los cuales extiende y amplifica al módulo anterior. En concreto:

=== Módulo 1: Programación estructurada ===

Un curso de programación en sí mismo, ya que en él el estudiante conocerá todas las herramientas esenciales para crear programas en cualquier lenguaje. Los conceptos son dados de tal forma que el estudiante podrá aplicarlos en cualquier lenguaje moderno a su elección. Los temas que se darán son:

  1. Salida estándar de datos

  2. Entrada estándar

  3. Definición de variables

  4. Tipos primitivos de datos

  5. Tipos estructurados de datos

  6. Diagramas de flujo

  7. Secuencia y selección (IF)

  8. Repetición iterativa (FOR)

  9. Repetición condicional (WHLE y REPEAT - DO...WHILE)

  10. Subrangos

  11. Arreglos lineales estáticos

  12. Arreglos lineales dinámicos

  13. Arreglos bidimensionales

  14. Depurador y ejecución paso a paso

  15. Enumerados y registros

  16. Procedimientos y funciones

  17. Alcance de identificadores (locales y globales)

  18. Pasaje de parámetros por valor (copia) y por referencia (alias)

  19. Archivos de texto y archivos tipados

  20. Proyectos finales

=== Módulo 2: Memoria dinámica y Tipos Abstractos de datos===

Aquí el curso comienza a profundizar en conceptos que muchos programadores desconocen o no dominan (como quienes aprenden Java como primer lenguaje): los punteros. A través de esta herramienta el programador podrá comenzar a crear programas que gestionen la memoria RAM, enfrentándose a los problemas y complejidades que ésto conlleva.

Los Tipos Abstractos de Datos (TADs) introducen todo un concepto nuevo de programación: dividir el programa en módulos individuales y trabajar por separado con cada uno. De este modo el estudiante aprenderá a abstraer datos y a modularizar sus programas, todo lo cual es la base fundamental de la Programación Orientada a Objetos que posteriormente será tratada en profundidad.

  1. El tipo puntero

  2. Solicitud de memoria

  3. Liberación de memoria

  4. Alias

  5. Reprogramación de proyectos a memoria dinámica

  6. Modularización de programas

  7. Creación de unidades

  8. Definición de tipos abstractos

  9. Implementación de operaciones

  10. Uso de TADs en diferentes sistemas

  11. Linkedición

  12. Listas encadenadas simples

  13. Listas doblemente encadenadas

  14. Listas circulares

  15. Colas

  16. Pilas

  17. TADs personalizados

  18. Reprogramación de proyectos usando TADs

=== Módulo 3: Recursividad y el TAD Árbol binario===

Una herramienta muy poderosa y a la vez delicada. El estudiante aprenderá a utilizarla, conocerá sus ventajas y desventajas, entenderá su diferencia con la repetición iterativa, y comprenderá cómo resolver problemas complejos con ella.

El estudiante además conocerá cómo crear una estructura arborescente a través del uso de punteros, y cómo esta estructura resulta útil para ciertos casos. Es una herramienta muy poderosa que no todo programador domina. Siendo una estructura recursiva, se une perfectamente con la recursividad.

  1. Qué es la recursividad

  2. Diferencia entre recursividad e iteración

  3. Recursividad en listas lineales

  4. Recursividad en matrices

  5. Reprogramación de proyectos usando recursividad

  6. Árbol binario de búsqueda

  7. Árbol general

  8. Estructuras arborescentes

  9. Caso de estudio

  10. Proyecto

=== Módulo 4: Programación Orientada a Objetos ===

El estudiante aplicará ahora todos sus conocimientos para aprender este nuevo paradigma y comenzar a ver las estructuras de los programas como objetos. De este modo logrará modularizar aún más su código y comenzar a diseñar programas de forma más rápida y eficiente.

  1. Teoría de objetos

  2. Clases

  3. Creación y destrucción de objetos

  4. Herencia

  5. Polimorfismo

  6. Casteo

  7. Clases abstractas e interfaces

  8. Bloques try y lanzamiento de excepciones

  9. Beans

  10. Diseño básico de software

  11. Bases de UML

  12. Proyectos finales

=== Módulo 5: Interfaces gráficas de usuario ===

Todo lo aprendido en el curso le permitirá al estudiante comprender cómo crear interfaces gráficas de usuario y utilizarlas de forma inteligente, ya que éstas, en cualquier lenguaje moderno, están diseñadas con Objetos (POO). De esta manera el estudiante aprenderá a utilizar la librería LCL de Lazarus, que le permitirá aprender las bases de la creación de interfaces gráficas, manejo de eventos y control de errores.

  1. Creación manual de interfaces y componentes

  2. Creación gráfica mediante el entorno de desarrollo

  3. Ejemplos y aplicaciones

  4. Reprogramación de proyectos para crear interfaces gráficas

  5. Proyecto final

=== Módulo 6: Bases de datos MySQL y SQLite ===

Pasaremos a un punto bien distinto de la programación, ya que el estudiante ahora aprenderá a usar dos herramientas concretas de bases de datos, que es algo que va más allá de la programación en sí pero que a la vez es super necesario.

  1. Conexión de bases de datos a un programa

  2. Análisis y diseño de persistencia

  3. Comandos SQL por consola

  4. Herramientas gráficas MySQL Workbench y SQLite Studio

  5. De tablas a objetos: mapeo de datos

  6. Mantenimiento de bases de datos

Screenshots

Programación profesional desde cero - Screenshot_01Programación profesional desde cero - Screenshot_02Programación profesional desde cero - Screenshot_03Programación profesional desde cero - Screenshot_04

Reviews

Gonzalo
November 11, 2023
Excelente, explica todos los procedimientos paso a paso, lo cual lo vuelve todo bastante facil, todo de 10!!!
3dModel
October 30, 2023
English: "This teacher could possibly be the best software teacher in the world. The Spanish are very lucky to learn in their native language." Spanish: "Este profesor podría ser posiblemente el mejor profesor de software en el mundo. Los españoles tienen mucha suerte de aprender en su lengua materna."
Ian
September 3, 2023
El curso de programación ha sido una experiencia excelente. La calidad de la enseñanza es innegable, y uno de los aspectos más destacados es la habilidad del profesor como comunicador. Este atributo es un gran valor agregado, ya que desafía el mito común de que los programadores son solo expertos en bibliotecas y carecen de habilidades de comunicación. El profesor ha demostrado ser un maestro tanto en el arte de la programación como en la transmisión efectiva de conocimientos. Su capacidad para explicar conceptos complejos de manera clara y comprensible ha hecho que el aprendizaje sea mucho más accesible y gratificante. Estoy muy satisfecho con este curso y lo recomendaría a cualquiera que desee sumergirse en el mundo de la programación.
Ivan
August 10, 2023
Por ahora me esta pareciendo didáctico y entretenido, Vladimir es bastante conciso y se expresa bien.
Jonathan
August 10, 2023
muy grata pues aun y cuando conozco de programacion estoy aprendiendo un nuevo lenguaje y reforzando conocimientos.
Jose
July 6, 2023
Excelente método para aprender a programar, entender el lenguaje y la manera en que procesa la información.
Alonso
July 1, 2023
He tomado distintos cursos de programación en distintos lenguajes, todos ellos más modernos pero en ninguno de los cursos que he tomado he comprendido tan a profundidad los temas que explican ni he podido practicar tanto como con este curso. Gracias a este curso también he podido aprender a programar en otros lenguajes. Sin duda las mejores explicaciones y los mejores proyectos y ejercicios si en verdad quieres convertirte en un programador completo
Monica
June 22, 2023
Soy estudiante de Lic. en Sistemas, y la carrera esta muy relacionado con esto por eso me interesa aprender
Hugo
June 17, 2023
Excelente elección, estoy desde cero en programación y ya tengo varias ideas de proyectos de aplicación en mi área de trabajo...esta muy bien elaborado...
Raul
June 4, 2023
Vladimir, Python es más moderno…Vladimir, con este lenguaje no puedo hacer juegos en Unreal Engine...Vladimir, yo quiero hacer desarrollo de IA y Deep Learning combinado con Ciencia de datos y bla, bla, bla, bla..... Hace muchos años, estudié Formación Profesional aquí en España (Técnico Especialista de Informatica de Gestión) y adivinad que lenguajes nos enseñaban, pues eran Cobol y Pascal. Ahora, a mis 45 años, he vuelto a reencontrarme con mi viejo amigo Pascal y he recordado parcialmente las palabras de mi antiguo profesor.."Raúl una vez que domines la base de la programación, todos los lenguajes trabajan casi de la misma forma" Y resulta que tenía razón, he tocado algo de Python, C# y es cierto lo que me decía. Los lenguajes prácticamente se parecen en un alto porcentaje, la diferencia es adaptarse a esas nuevas herramientas, pero sin una buena base por mucho que quieras subirte al carro de lenguajes mucho más modernos y poderosos, acabaras frustrado porque no posees lo más importante y es la base de la programación y la lógica del desarrollo. Vladimir es este curso y supongo que en los otros que tiene, lo que trata de inculcarnos, no es el lenguaje en sí (aunque al final lo hagas), es la manera de pensar, razonar y desarrollar la lógica de la programación, porque esto es universal en el mundo de las tecnologías. Hoy es python, Goland, Rust, pero en 10 años serán otros diferentes y volveremos a cambiar para adaptarnos a los tiempos, pero lo que no cambia nunca es esa base de programación que Vladimir no está grabando a fuego. Asi que olvidaros del lenguaje y centraros en la enseñanza, después de estas 100 horas, estaremos preparados para poder saltar de un lenguaje a otro según nuestra necesidad y os aseguro que no nos resultará nada difícil pues solo será cuestión de acostumbrarse a los nuevos entornos.
Endher
May 31, 2023
Ha sido de mucha ayuda para entender poco a poco los pasos que se deben de cumplir para el área de la programación.
Sebastian
May 9, 2023
Hasta el momento me parece un excelente curso. Empecé con 0 conocimientos en programación, pero aun así no me he sentido perdido en lo absoluto. El curso está muy bien elaborado y realmente se nota el trabajo y el esfuerzo que hay detrás de él. El profesor Vladimir explica de manera muy detallada y hace énfasis en lo que se tiene que resaltar, aun me falta bastante para terminar el curso. Pero por lo menos, por lo que he visto hasta ahora 100% recomendado :))
Marta
April 13, 2023
Por el momento, muy contenta, es justo lo que buscaba... programar desde cero sin tener que saber nada relacionado previamente. Ganas de más ;)
Hernan
March 29, 2023
Mucha expectativa, hasta el momento he escuchado algo que siempre buscaba: la combinación de algo como la PNL con la Programación. Vamos con todo!
Ezequiel
March 21, 2023
es buena, lo que me hace poner 4 estrellas es uqe es con pascal y no con algun otro lenguaje mas nuevo por asi decir

Charts

Price

Programación profesional desde cero - Price chart

Rating

Programación profesional desde cero - Ratings chart

Enrollment distribution

Programación profesional desde cero - Distribution chart
1942912
udemy ID
10/1/2018
course created date
12/4/2020
course indexed date
Bot
course submited by