Si quieres entrar en el mundo de la programación sin saber nada y transformarte en alguien competente, con bases sólidas, conocimiento de las tecnologías más demandadas, y capacidad de entrar al mercado laboral o trabajar por tu propia cuenta, este es el curso para ti.
Hemos trazado una ruta de aprendizaje progresivo, con una curva que avanza poco a poco introduciendo cada concepto, desde lo más básico hasta lo más complejo. Empezarás sin saber nada, creando aplicaciones simples, hasta lograr crear tus propios servidores Web, aplicaciones de escritorio o servicios de datos. A grandes rasgos aprenderás lo siguiente:
- Crea tus propias aplicaciones
- Desarrolla servidores Web
- Diseña interfaces gráficas de usuario
- Trabaja como FREELANCER o emprendedor vendiendo tu software
- Postúlate a un empleo en el mundo real
- Saca el máximo provecho de este curso
- Capitaliza este contenido con excelentes beneficios.
El curso contendrá más de una veintena de proyectos que te permitirán dominar cada tema, entrenándote de forma intensiva. Este es el curso definitivo que te ahorrará el tener que tomar diferentes cursos por doquier sin saber exactamente a qué atenerte.
A continuación te presentamos un resumen de cada unidad didáctica:
UNIDAD 1: PROGRAMACIÓN ESTRUCTURADA EN 4 LENGUAJES
Iniciarás la ruta trabajando con dos lenguajes principales (Pascal y JavaScript), y dos complementarios (C++ y Java). De este modo abarcarás el espectro de lo que es programar lenguajes compilados, semi-interpretados y puramente interpretados, con todas las variaciones que ello conlleva.
Pascal será el lenguaje base que usaremos para introducir y estudiar cada tema, ya que es muy potente, moderno (a pesar de lo que piensan varios) y poderoso para el aprendizaje; y JavaScript será la contraparte, la oveja negra, quién mostrará una cara de la programación muy diferente a lo que proponen lenguajes más estructurados como Pascal, Java o C++.
Los temas que veremos serán:
- Entrada y salida estándar de datos
- Variables, constantes y tipos primitivos
- Programación secuencial
- Selección mediante IF
- Diagramas de flujo
- Encadenación IF
- Case y Switch
- Iteración con FOR
- Iteración condicional con WHILE y DO-WHILE (REPEAT)
- Proyectos de aplicación y desarrollo de software
UNIDAD 2: ARREGLOS
A partir de aquí abandonaremos a C++ y Java, ya que has aprendido las estructuras esenciales de ellos así como de Pascal y JavaScript. El curso continuará con Pascal como lenguaje base y JavaScript como referente para el mundo Web, incluyendo un poco de HTML. En esta unidad trabajarás:
- Arreglos lineales
- Arreglos bidimensionales o matrices
- Arreglos dinámicos
- Arreglos como objetos en JavaScript
- Algoritmos de búsqueda y ordenación
- El Juego de la Vida de John Conway
UNIDAD 3: PROGRAMACIÓN MODULAR
A partir de este punto empezarás a crear programas más grandes y complejos, por lo que comenzarás a trabajar con subprogramas (procedimientos y funciones), y todo lo que ello conlleva. El entrenamiento se intensificará en este punto. Los temas concretos serán:
- Funciones fuertemente tipadas
- Funciones con tipos dinámicos
- Procedimientos fuertemente tipados
- Procedimientos dinámicos
- Pasaje de parámetros por copia
- Pasaje de parámetros por referencia
- Las vicisitudes del pasaje de parámetros en JavaScript
- Alcance de identificadores
- Registros
- Tipos de datos estructurados
- Modularización de código
- Encapsulamiento básico
- Manipulación de archivos
- Conceptos de Bases de Datos
- Conceptos de diseño de software
- Punteros y memoria dinámica
- Listas encadenadas o simplemente enlazadas
- Tipos Abstractos de Datos
- Operaciones primitivas
- Selectoras, asignadoras, predicados, constructores y destructores
- Creación de módulos en JavaScript
- Uso de varias páginas HTML
- TADs LinkedList, Stack y Queue
- Árbol Binario de Búsqueda
- Algoritmos de búsqueda y recorrido
- Recursión computacional
UNIDAD 4: PROGRAMACIÓN ORIENTADA A OBJETOS
Todo lo visto hasta el momento es como la preparación para poder desempeñar la orientación a objetos. Este tema aplica absolutamente, y en gran profundidad, todo lo visto anteriormente. Es uno de los conceptos más demandados en el mercado laboral y extremadamente necesario si quieres aprender luego a usar cualquier tecnología, lenguaje, framework, etc.
- Los temas que veremos, esencialmente serán:
- Definición y estructura de los objetos
- Definición de clases
- Modificadores de acceso
- Encapsulamiento avanzado
- Propiedades
- Clases internas
- Campos y operaciones estáticas
- Patrón de diseño SINGLETON
- Importación y exportación de componentes
- Modelos de objetos en JavaScript
- Prototype en JavaScript
- Herencia
- Polimorfismo
- Casteo de tipos (down-cast y up-cast)
- Interfaces
- Clases abstractas
- Genéricos
- Captura y lanzamiento de excepciones
- Promesas
- JSON
- Operaciones de resurrección
- Bases de UML y diseño de software
- Mantenimiento y escalabilidad de código
UNIDAD 5: INTERFACES GRÁFICAS DE USUARIO
En este módulo aplicaremos todo lo visto hasta el momento para crear interfaces gráficas modernas para aplicaciones de escritorio. Sin embargo, todo lo que verás y entrenarás aquí lo aplicarás luego, casi de forma idéntica, para la Web, ya que JavaScript utiliza un modelo de eventos y gestión de componentes similar al que usarás en Pascal.
1. Creación de ventanas
2. Campos y formularios complejos
3. Eventos e interacción del usuario
4. Manipulación de componentes
5. Validación de información de ingreso
6. Diálogos simples y modales
7. Botones y componentes de acción
8. Menús principales y menús contextales
9. Tablas y filtros
10. Pasaje de información entre ventanas y cuadros
11. Estructuración de información al usuario
12. Generación dinámica de componentes en tiempo real
13. Uso de acciones
14. Paneles con pestañas
15. Iconos y decoraciones
16. Barras de carga y splash-screen
17. Creación de GUIs complejas
UNIDAD 6: HTML a fondo y JavaScript
A partir de este punto tienes todas las bases de la programación para escritorio y un entrenamiento exhaustivo en el uso de una gran variedad de herramientas. Realmente ya eres todo/a un/a programador/a, pero aún estás lejos de llegar a lo que el mercado laboral demanda. El mundo Web es la pata que falta, y a partir de aquí lo completaremos, ya que eres todo/a un/a experto/a en JavaScript pero falta diseñar Webs dinámicas, vistosas y responsivas, así como utilizar APIS y programar del lado de servidor.
Lo que veremos, a grandes rasgos es:
1. Estructuras básicas de HTML5
2. Enlazamiento interno de páginas
3. Enlazamiento externo entre páginas
4. Barras de progreso
5. Tablas, filas, columnas, celdas y estructuración
6. Creación de formularios complejos
7. Gestión de formularios y eventos
8. Elementos META
9. Elementos de estructuración semántica de página
10. Imágenes
11. Favicon
12. Mapas
13. Picture
14. Figure y Figcaption
15. Eventos con JavaScript
16. Documentación oficial
17. Programación multihilo con Workers
18. Cuadros de diálogo
19. Uso de frames internas
20. Audio y video
21. Uso de acciones
22. Creación de GUIs complejas
23. Drag and Drop
24. HTML Canvas
25. Creación de juegos de ejemplo
UNIDAD 7: CASCADE STYLE SHEETS (CSS)
Una vez que sabes trabajar a fondo y al máximo con HTML es momento de trabajar la visualización, el adorno, la estilización de una página. CSS es extenso y tiene varias cosas que trabajar, ya que es capaz, además de gestionar cómo se en las cosas, de dotar a HTML de ciertas funcionalidades extra muy interesantes.
Lo que verás en este módulo, a grandes rasgos es:
1. Estilos incrustados básicos
2. Estilos importados
3. Listas de colores y color-picker
4. Selectores
5. Definición de clases de estilos
6. Fuentes básicas
7. Importación de fuentes externas y uso de íconos
8. Posicionamiento absoluto y z-index
9. Posicionamiento relativo y span
10. Fondos y colores alfa
11. Dimensiones y alineaciones
12. Modelo de cajas
13. Menús desplegables
14. Barras de navegación
15. Sombras de texto y cajas
16. Bordes y márgenes
17. Animaciones
18. Transiciones y transformaciones
19. Cajas flexibles
20. Diseño multicolumna
21. Consultas @media
22. ToolTips
23. Menú contextual
24. Panel con pestañas
25. Uso de variables CSS
26. Selectores de atributos
27. Pseudoclases
28. Pseudoelementos
29. Condiciones
30. CSS dinámico desde JavaScript
UNIDAD 8: DOM Y BOM
Este módulo regresará a JavaScript y te mostrará cómo gestionar dinámicamente todos los componentes HTML, pudiendo ahora realizar verdadera magia con una página Web. El uso del DOM será, a partir de ahora, la base principal que usarás para el resto de tecnologías que aprenderás.
- Bases del DOM
- Navegación en el árbol de objetos
- Formularios
- Aplicación de CSS en el DOM
- Selectores de consultas y colecciones de elementos
- La clase Element y la interfaz HTMLElement
- Creación de elementos HTML personalizados
- El BOM
UNIDAD 9: XML
Es un lenguaje, o más bien un formato, que te permitirá organizar la información y configuraciones de una manera más automatizada y profesional. Es importante que conozcas las bases, ya que aunque no lo usarás tanto manualmente, la amplia mayoría de tecnologías crean formatos XML para configurar las aplicaciones y proyectos, por lo que es vital que sepas comprender este formato.
- Estructura de un documento XML bien formado
- Árbol XML
- XML DOM
- XML Parser
- XML DTD
- XML Schema
UNIDAD 11: TYPESCRIPT
TypeScript es un lenguaje de programación fuertemente tipado que se basa en JavaScript, lo que le brinda mejores herramientas a cualquier escala. Básicamente es una extensión de JavaScript transformándolo en un lenguaje fuertemente tipado, como Pascal, C++, Java y cualquier otro, dotándolo de todos los beneficios de diseño que implica tener tipos de datos explícitos, entre muchísimas otras cosas.
Este lenguaje, al extender el JavaScript nativo es ampliamente demandado, fácil de aprender y recomendable. El mercado laboral lo demanda, te facilita la vida y es extremadamente necesario que lo conozcas, sea cual sea el camino que vayas a tomar a futuro.
UNIDAD 13: BASES DE DATOS RELACIONALES SQL
Como gran tema final es imprescindible que sepas usar bases de datos relacionales. Para ello usaremos MySQL y SQLite. Este módulo te enseñará lo indispensable que debes conocer para manipular bases de datos SQL, conectarlas a tus aplicaciones y usarlas como métodos de persistencia. También recibirás nociones básicas de diseño. De este modo luego podrás decidir si quieres profundizar con un curso completo de SQL o no, o bien, puedes incluso ver opciones NO-SQL, como MongoDB y otras.
Los temas que verás son:
1. Concepto de base de datos relacional
2. Creación de bases de datos y tablas
3. Carga de datos desde un archivo
4. Consultas básicas y compuestas
5. Ordenación y limitación de resultados.
6. Cálculos simples y Funciones de uso común: MAX, COUNT, AVG, MIN, SUM
7. Modificación y eliminación de registros
8. Eliminación de tablas y bases de datos
9. Modificación de la estructura de una tabla (ALTER)
10. Funciones y formato de fecha
11. Trabajando con dos tablas y consultas combinadas
12. Conectar Pascal a MySQL
13. Conectar NodeJS a MySQL
Introducción y preparación
Salida y entrada estándar de datos
Selección
Repetición
Arreglos
Funciones y procedimientos
Enumeraciones y registros
Modularización básica
Manipulación de archivos en Pascal
LocalStorage en JavaScript
Memoria dinámica y punteros
Modularización avanzada
Recursividad
Programación Orientada a Objetos
Objetos literales y clases en JavaScript
Herencia y polimorfismo en profundidad
Herencia
Polimorfismo y JSON en JavaScript
Interfaces gráficas de usuario en Pascal
HTML básico
HTML Avanzado
HTML Canvas
CSS
Hemos trazado una ruta de aprendizaje progresivo, con una curva que avanza poco a poco introduciendo cada concepto, desde lo más básico hasta lo más complejo. Empezarás sin saber nada, creando aplicaciones simples, hasta lograr crear tus propios servidores Web, aplicaciones de escritorio o servicios de datos. A grandes rasgos aprenderás lo siguiente:
- Crea tus propias aplicaciones
- Desarrolla servidores Web
- Diseña interfaces gráficas de usuario
- Trabaja como FREELANCER o emprendedor vendiendo tu software
- Postúlate a un empleo en el mundo real
- Saca el máximo provecho de este curso
- Capitaliza este contenido con excelentes beneficios.
El curso contendrá más de una veintena de proyectos que te permitirán dominar cada tema, entrenándote de forma intensiva. Este es el curso definitivo que te ahorrará el tener que tomar diferentes cursos por doquier sin saber exactamente a qué atenerte.