Catálogo de Cursos


A continuación se enlista el catálogo de cursos de Qualitrain organizado por temática.

Organización del catálogo


Cursos y programas sobre desarrollo de sistemas

En la sección «Programación básica y fundamentos» tenemos los programas diseñados para mejorar significativamente las habilidades de programación del equipo de desarrollo. Todos ellos so recomendados como entrenamiento inicial para los desarrolladores que ingresan por primera vez a un área productiva.


En «Desarrollo de Back-Ends y APIs Web con Java y Jakarta EE» tenemos los programas educativos recomendados para desarrollar APIs Web, servicios de negocio y servicios de datos usando las tecnologías más populares incluidas en la especificación Jakarta Enterprise Edition, o bien en alguna de las especificaciones que forman la especificación Java Standard Edition. También se incluyen algunas tecnologías relacionadas que son, o han sido de amplio uso.


En «Desarrollo de Back-Ends con Spring» tenemos los programas educativos recomendados para aprender a desarrollar aplicaciones usando Spring Framework junto con Spring Boot.


La sección «Desarrollo de Back-Ends con Node.js» muestra cursos para entender la plataforma Node.js y para aprender a hacer servicios de negocios y de datos usando JavaScript del lado del servidor.


La sección «Desarrollo de Front-Ends» lista los programas que le ayudarán a su equipo a comprender y desarrollar tanto interfaces de usuario estáticas, cómo funcionalidades cliente de aplicaciones de una sola página (SPA), en frameworks cómo Angular o React.


Puede checar la sección «Desarrollo de Aplicaciones Móviles» si desea que su equipo desarrolle este tipo de aplicaciones ya sea en dispositivos Android o en dispositivos de Apple (iOS).


En «Herramientas» encontrará cursos sobre softwares auxiliares en el desarrollo y mantenimiento de aplicaciones


Programas educativos sobre Arquitectura


La sección «Aprender la arquitectura Web con Java, desde cero» tenemos programas educativos que permiten a los inexpertos entender el mundo de las aplicaciones Web corporativas desde los fundamentos.


En «Arquitectura de Microservicios» encontrará programas para entender este nuevo paradigma y para aprender a implementarlo.


El rol de arquitecto de software es clave en las organizaciones que desarrollan o adquieren soluciones informáticas. Para que desarrolle arquitectos dentro de su equipo, vea los programas educativos que tenemos disponibles en la sección «Arquitectura de Software«.


Las áreas de TI tienen sus propios procesos clave, cómo son el control de versiones, la integración continua, etc. Para adquirir mejores prácticas en ellos, le ofrecemos los programas listados en la sección «Procesos de TI«.


Cursos para Analistas y Consultores de negocio y procesos


Si a su equipo le cuesta trabajo entenderse con sus usuarios, en la sección «Ingeniería de Requerimientos» encontrará programas educativos que le proveen técnicas eficaces para entender las necesidades y procesos de sus clientes.


Cuando se requiere implementar una versión digital de un proceso, requerimos técnicas de análisis del proceso actual y técnicas de diseño del nuevo proceso. En la sección «Digitalización de Procesos del Negocio» podrá encontrar los programas educativos adecuados a este tipo de retos.

 




Programación básica y fundamentos


Estos programas buscan que el alumno explote adecuadamente los lenguajes de programación más usados en la industria. Se recomiendan para complementar la formación de desarrolladores que se integran por primera vez a un ambiente laboral y que son generalmente recién egresados de carreras de Sistemas.

También resultan útiles a desarrolladores que hasta ahora han trabajado en plataformas que se consideran legadas, cómo Cobol.

Cursos de lógica de programación

Si nota que uno o más desarrolladores tienden a tardarse en completar tareas de desarrollo, aparentemente básicas, es posible que tengan problemas de lógica de programación. Los siguientes programas están diseñados para mejorar el desempeño de los programadores en ese rubro.


Extracto del material


Cursos para aprender lenguaje Java


Cursos para aprender lenguaje C#

Extracto del material

 




Aprender la arquitectura Web con Java, desde cero


Cuando no tenemos claro qué partes forman una aplicación Web; el papel de cada una y además tampoco dominamos el lenguaje Java. Requerimos un programa educativo que nos explique los conceptos fundamentales en el orden correcto.


Extracto del material

A continuación el programa que le permitirá entender el mundo de las aplicaciones Web:


 




Desarrollo de Back-Ends y APIs Web con Java y Jakarta EE


Los back-ends engloban típicamente los servicios de datos, la lógica de negocio y una capa de procesamiento y publicación Web, que permite usar la lógica de la aplicación a través de un navegador o a través del uso del protocolo http.

La capa de procesamiento y publicación Web puede darse en dos modalidades: una clásica, que integra interfaces de usuario generadas en un servidor de aplicaciones y otra, más moderna, que ofrece un grupo de servicios (conocidos como APIs web) que deben ser invocados usando el protocolo http y que devuelven datos en formatos abiertos como JSon o XML, pensados para ser consumidos por programas.

Se pueden desarrollar Back-Ends en distintas plataformas. Una plataforma ampliamente usada es Jakarta Enterprise Edition (antes llamada Java Enterprise Edition). Esta plataforma es soportada por servidores de aplicaciones como Jboss, Weblogic, Websphere o Apache Tomcat entre otros.

Cursos para aprender a desarrollar servicios de datos


Extracto del material

Programas para aprender a desarrollar APIs Web


Extracto del material

Programas para aprender a desarrollar Aplicaciones Web clásicas que usan MVC


Extracto del material

 




Desarrollo de Back-Ends con Spring


Spring es un framework de desarrollo con más de una década de evolución. Se ha convertido en una alternativa seria a Jakarta Enterprise Edition. Incorpora un poderoso motor de inyección de dependencias, programación declarativa de amplio espectro y componentes que facilitan la incorporación de distintos proveedores y tecnologías en nuestros proyectos y desarrollos.

Aprender desde cero y hasta experto

Si lo que requiere es que su equipo desarrolle tanto APIs y aplicaciones Web robustas cómo microservicios, con Spring, el siguiente programa es su mejor alternativa:


Extracto del material

Aprender los fundamentos y empezar a nivel básico

Si no cuenta con el tiempo para ver los aspectos finos y lo que requiere es que su equipo inicie cuanto antes a desarrollar o a dar mantenimiento a una aplicación hecha con Spring, le recomendamos el programa siguiente:


Extracto del material

Programas para aprender temas avanzados

Si su equipo ya se desarrolla bajo Spring y ahora requiere formar especialistas en el framework, se tienen los programas siguientes:


Extracto del material

 




Desarrollo de Back-Ends con Node.js


Node.js es una plataforma en la que se desarrollan aplicaciones usando JavaScript ECMA 6+. El beneficio principal es el hecho de usar un solo lenguaje de programación en una aplicación Web. Es decir, tanto en el back-end cómo en el front-end.

Node.js ofrece un ecosistema de tecnologías, librerías, frameworks y componentes para desarrollar una gran variedad de funcionalidades de gran utilidad en las aplicaciones en general.

Para introducirse en este ecosistema y aprender a montar un ambiente de programación JavaScript en back-end, el programa siguiente le será de gran utilidad:

Ahora bien, si se desea entender y aprender a desarrollar una aplicación completamente en JavaScript, considerando tanto Back-end cómo Front-End, el siguiente programa es una gran opción:

 




Arquitectura de Microservicios


Con la incursión y auge de las tecnologías de virtualización y de nube ha emergido el paradigma de la infraestructura flexible, distribuida y elástica. En este paradigma es posible escalar de manera dinámica y en tiempo real, la capacidad de cómputo de nuestras aplicaciones. Para poder hacerlo sin embargo, requerimos diseñar las aplicaciones alrededor de una nueva idea: los microservicios.


Extracto del material

Aprender a implementar microservicios con Spring Cloud

Si su equipo ya tiene los fundamentos de Spring framework y Spring Boot, el siguiente programa los llevará a desarrollar bajo la arquitectura de microservicios y a entender exactamente en qué consiste tal arquitectura.

 




Desarrollo de Front-Ends


En los años recientes ha emergido un modelo de desarrollo en el que la programación de las interfaces de usuario está claramente separada de la publicación de servicios web, servicios de negocio y almacenamiento de información. Las programación de las interfaces de usuario forman una unidad lógica conocida como Front-End. Típicamente, éstas generan programas que son ejecutados en un navegador y se comunican con un back-end por medio de peticiones http.

Html, Css y JavaScript son los lenguajes fundamentales en el desarrollo de programas que se ejecutan en un navegador. Todo desarrollador de Front-End debería tener conocimientos amplios de estos lenguajes.


Aprender a diseñar pantallas y otras interfaces de usuario

En una aplicación Web las interfaces de usuario son construidas por un navegador (como Chrome, Safari, etc.) a partir de construcciones en html y Css. El siguiente curso le enseñará el html y el css necesarios para diseñar una interfaz de usuario Web, que además sea agradable a la vista.


Aprender JavaScript

Por medio de JavaScript se le da comportamiento dinámico a una página Web. Se colocan respuestas a: campos capturados, botones oprimidos, clicks del ratón, etc. También se generan peticiones hacia los back-ends que gestionan la información manipulada por una interfaz de usuario.

JavaScript es muy amplio. Involucra aprender el lenguaje en sí, con sus reglas, estructuras de control y palabras reservadas. Así mismo, funcionalidades para el manejo de paradigmas como la programación orientada a objetos o bien, para la manipulación de elementos del navegador (el comportamiento dinámico dado a elementos visuales cómo botones, campos de captura o selección, etc.) y no menos importante, la interacción con los back-ends y APIs de funcionalidades especializadas.


Extracto del material

Si requiere que su equipo aprenda JavaScript desde cero, tenemos las alternativas siguientes:


Aprender JavaScript Avanzado

Entre los temas avanzados de JavaScript están la programación orientada a objetos y la programación asíncrona.


Extracto del material

Si desea formar especialistas JavaScript en su equipo, considere los programas siguientes:


Aprender a desarrollar Componentes Visuales y front-ends con Angular

Hacer un front-end usando exclusivamente JavaScript cómo lenguaje de programación, puede resultar en código muy complejo y difícil de mantener. Frameworks cómo Angular permiten modularizar una aplicación en JavaScript, programando con módulos, componentes reusables, componentes de librería, inyección de dependencias, clases y objetos. Los siguientes programas le permitirán a su equipo aprender todo lo necesario para desarrollar front-ends usando Angular:


Extracto del material

 




Desarrollo de Aplicaciones Móviles


Las aplicaciones móviles son clientes que se ejecutan en sistemas operativos como Android o iOS y que usualmente se conectan a back-ends para llevar y traer datos. Normalmente tienen acceso y aprovechan el hardware del dispositivo, cómo la cámara, el micrófono o el acelerómetro.

Android e iOS han creado sus propios ecosistemas de servicios, APIs y tecnologías propietarias que están en continuo cambio.


Aprender a programar aplicaciones para Android

Para aprender desde cero a desarrollar aplicaciones que corran en dispositivos con sistema operativo Android tenemos los programas siguientes:


Aprender a programar aplicaciones para iOS

El sistema operativo iOS es el usado en los dispositivos fabricados por Apple: iPhones e iPads. En iOS el lenguaje de programación con el que se desarrolla es Swift.

Con los siguientes programas educativos su equipo podrá desarrollar aplicaciones que se ejecuten en este tipo de dispositivos:


Aprender a desarrollar tanto en Android cómo en iOS

El siguiente programa le permite aprender lo necesario para dominar las plataformas móviles dominantes en el mercado:

 




Ingeniería de Requerimientos


Tradicionalmente el levantamiento y análisis de requerimientos se han manejado más cómo un arte que cómo una disciplina de ingeniería. Sin embargo, hay diversas técnicas formales que nos ayudan a deducir de manera correcta y precisa los requerimientos a partir de las intenciones de los usuarios y del conocimiento de sus procesos.

La gestión de requerimientos es una disciplina compleja en parte porque tiene dos consumidores de perfiles antagónicos. Por un lado, tenemos personas con perfiles de negocio, -no técnicas, desde la perspectiva de las TI- y por el otro, a equipos de trabajo profundamente técnicos que en muchos de los casos, no cuentan ni con la perspectiva de los procesos del negocio, ni tampoco con habilidades de comunicación que les permitan interactuar eficazmente con la comunidad de usuarios.


Aprender a deducir y analizar requerimientos

El siguiente programa enseña técnicas formales de ingeniería para analizar los procesos de negocio del cliente, a fin de deducir y comprender cuáles son los requerimientos que realmente aportarán valor a la organización. Así mismo, proporciona técnicas para diseñar las nuevas versiones digitales de los procesos de negocio.


Extracto del material

Aprender a especificar los requerimientos para su desarrollo

Una vez que se ha identificado correctamente un requerimiento es necesario crear modelos que puedan ser interpretados correctamente por los equipos de arquitectura, diseño y desarrollo de aplicaciones. El programa educativo siguiente enseña cómo especificar propuestas de digitalización para que éstas sean correctamente interpretadas por equipos de implementación.


Extracto del material

Formar Ingenieros de Requerimientos

Si lo que se desea es formar roles especializados en el análisis de requerimientos y en la digitalización de procesos, se recomiendan los programas siguientes:

 




Digitalización de Procesos del Negocio


Digitalizar procesos significa generar e implementar la versión digital de un proceso. Las iniciativas de digitalización generalmente conducen a la implementación de una versión del proceso que ahora integra el uso de tecnologías de la información. La integración tecnológica podría incluir un software desarrollado por terceros o bien, un desarrollo personalizado hecho en casa.


Aprender cómo analizar un proceso para digitalizarlo o rediseñarlo exitosamente

Para identificar eficazmente las partes de un proceso que vale la pena digitalizar/rediseñar, requerimos técnicas que nos faciliten la tarea y nos permitan generar modelos simples que luego podamos discutir y afinar con todos los involucrados. El programa educativo siguiente provee esas técnicas:


Aprender a diseñar y plantear procesos digitales

El diseño de una versión digital de un proceso involucra un reto: Requiere que se comprendan claramente los alcances y mecánicas que involucra cada tecnología disponible, por un lado y por otro, implica entender claramente el proceso de negocio junto con sus problemas y áreas de oportunidad. Un recurso que puede ayudar significativamente a enfrentar este desafío es el uso de patrones de mejora.


Extracto del material

Los siguientes programas enseñan a usar un grupo de patrones de mejora y también ofrecen mecánicas concretas para diseñar y especificar la versión digital de un proceso, de modo que ésta sea entendible por un equipo de TI.

 




Arquitectura de Software


Uno de los roles más importantes en las áreas de desarrollo actuales es el de arquitecto de software. Un arquitecto es responsable de definir los principios que rigen los desarrollos y de, a través de éstos, lograr tanto la continuidad de los servicios de TI cómo su adecuada adaptabilidad a los cambios del negocio y de la tecnología.


Extracto del material

Formar arquitectos de software

Tenemos un programa educativo que ha sido diseñado para convertir a buenos desarrolladores en arquitectos. El programa incluye, entre otras cosas:

  • La revisión de los aspectos más relevantes, desde la perspectiva de la arquitectura, de las principales tecnologías de desarrollo actuales, como pueden ser las APIs Web, los microservicios o las tecnologías de datos relacionales y no-sql.
  • La aplicación práctica de principios de diseño de software.
  • Técnicas de análisis que le permiten al arquitecto entender el negocio, sus necesidades y sus procesos.
  • La comprensión de los principales procesos de gestión del código que permiten la colaboración entre equipos de desarrollo e infraestructura y que buscan hacer más robustas a las organizaciones que gestionan aplicaciones y servicios de TI.

A continuación, el programa antes mencionado:


Extracto del material

 




Procesos de TI


Colaborar eficazmente usando Git para Controlar las Versiones de software

Git es una herramienta para gestionar los cambios hechos a un software, que facilita y mejora la colaboración entre las personas y equipos que lo desarrollan y mantienen. Git es un sistema descentralizado que se adapta fácilmente a diversos tipos de organizaciones de desarrollo de software: desde equipos de 2 o 3 personas, hasta organizaciones que integran funcionalidades a proyectos open-source, que provienen de miles de personas alrededor del mundo.


Extracto del material

 




Herramientas


Aprender PowerShell

Cuando se requiere automatizar una tarea basada en comandos de sistema operativo, PowerShell es una excelente opción. El siguiente programa le dará a su equipo las habilidades necesarias y muchas más:


Extracto del material del curso