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.
Cursos para aprender lenguaje Java
- Fundamentos de la Programación Orientada a Objetos con Java y UML (CTJAV02)
- Temas avanzados de Programación Orientada a Objetos con Java y UML (CTJAV03)
- Manejo de I/O y de Base de Datos con JDBC (CTJAV04)
Cursos para aprender lenguaje C#
- Fundamentos de la Programación Orientada a Objetos con C# (CTNET01)
- Temas avanzados de Programación Orientada a Objetos con C# (CTNET02)
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.
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
Programas para aprender a desarrollar APIs Web
- Arquitectura Web con Jakarta Enterprise Edition (CTJEE01)
- Arquitectura e Implementación de APIs Web RESTful (CTJEE03)
- Tecnologías Java para procesamiento de XML (CTJAV05)
Programas para aprender a desarrollar Aplicaciones Web clásicas que usan MVC
- Programación Web con el patrón MVC: Modelo-Vista-Controlador (CTJEE02)
- Implementación del Modelo Vista Controlador (MVC) con Java Server Faces (JSF) (CTJEE04)
- Implementación del Modelo Vista Controlador (MVC) con Struts 2 (CTFRM02)
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:
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:
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:
- Temas avanzados de Spring Framework (CTSPR02)
- Seguridad Web con Spring Security (CTSPR03)
- Desarrollo de Microservicios con Spring Cloud (CTSPR04)
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.
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.
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.
Si desea formar especialistas JavaScript en su equipo, considere los programas siguientes:
- Taller de Programación Orientada a Objetos con JavaScript (CTJSC02)
- Taller de Programación Asíncrona con JavaScript (CTJSC04)
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:
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:
- Fundamentos de Java para desarrollo de Aplicaciones en Android (CTMOB06)
- Desarrollo de aplicaciones móviles en Android I (CTMOB01)
- Desarrollo de aplicaciones móviles en Android II (CTMOB02)
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:
- Lenguaje Swift (CTMOB03)
- Desarrollo de Aplicaciones Profesionales en iOS I (CTMOB04)
- Desarrollo de Aplicaciones Profesionales en iOS II (CTMOB05)
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.
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.
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:
- Seminario de Ingeniería de Requerimientos (DPREQ01)
- HTML 5 y CSS 3 para Desarrollo de Aplicaciones (CTHTM01)
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.
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.
- Técnicas de Digitalización de Procesos I (CTPRO02)
- Técnicas de Digitalización de Procesos II (CTPRO03)
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.
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:
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.
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: