Saltar al contenido

Ruta de aprendizaje Ingeniería de Software EscuelaIT


Recommended Posts

Ingeniería de software

 

CÓMO APRENDER INGENIERÍA DEL SOFTWARE

Cualquier profesional que disponga de un conocimiento básico de programación, y por supuesto de programación orientada a objetos, es capaz de adentrarse en la rama de de ingeniería del software, aprendiendo nuevos conocimientos avanzados dentro de la programación, que le permitan obtener un software de mayor calidad.

Para ello en EscuelaIT disponemos de diversos cursos de dificultad creciente en los que aprender asuntos importantes como el análisis y diseño de software orientado a objetos, los patrones de diseño, pruebas unitarias, etc.

CONOCIMIENTOS NECESARIOS

Antes de comenzar el estudio de Ingeniería del software te recomendamos dominar otras materias más básicas, también disponibles en EscuelaIT:

1._ Programación

1.1 Iniciación a la programación JS + PHP

Objetivos

Este es un curso de iniciación a la programación, que parte desde cero, para convertir a los estudiantes en profesionales capaces de "tirar líneas de código" sin traumas. Está orientado para personas sin ningún conocimiento de programación, o para aquellas a las que crear programas informáticos les resulta difícil.
 

Usaremos Javascript como primer lenguaje informático, por lo que también es indicado para quienes desean aprender este lenguaje. Además en esta edición hemos completado el contenido con una semana de iniciación a PHP, en la que los estudiantes aplicarán los conocimientos adquiridos para explorar un segundo lenguaje.
 

Al final del curso el estudiante tendrá la formación necesaria para entender los procesos de creación de scripts en sitios web y será capaz de desenvolverse en la programación en diferentes lenguajes.

1.2 Curso de programación desde cero

El Curso de programación desde cero es una formación práctica para aprender a programar de una manera sencilla y completa. Comenzaremos por los conocimientos más básicos y profundizaremos hasta un nivel que permita a los estudiantes desenvolverse correctamente en la creación de programas y les facilite la entrada en cualquier lenguaje de programación popular.   
 

 Nuestra filosofía de este curso es: "a programar se aprende programando". Para ello cada sesión aportará nuevo conocimiento, que los estudiantes tendrán que reforzar realizando ejercicios por su cuenta, que se corregirán también en las clases. La mayoría de las sesiones se realizarán con el lenguaje Javascript, pero en el curso también abordaremos otros lenguajes como Python, PHP o Java. 

 

https://escuela.it/cursos/curso-programacion-desde-cero

1.3 Curso de Recurrencia en el desarrollo de software

Este curso tiene como objetivo explicar una serie de conceptos recurrentes en el desarrollo del software, de manera clara para los estudiantes, de modo que puedan entender los pilares fundamentales sobre los que se basa cualquier tecnología de desarrollo, ya sea lenguaje, framework, arquitectura o herramienta de desarrollo en general.

Después de este curso el estudiante sabrá reconocer estos conceptos en cualquier área de desarrollo que necesite abordar, evitando el esfuerzo de entender una y otra vez las mismas cosas, que nos presentan constantemente con distintos nombres

2._ Programación Orientada a Objetos

2.1 Curso de programación orientada a objetos

Este curso está pensado para ofrecer una base sólida sobre la Programación en general y la orientación a objetos en particular, de modo que los estudiantes aprendan sus fundamentos, aprovechando sus mejores características y evitando malas costumbres derivadas de un conocimiento parcial o malas enseñanzas. Para ello hemos diseñado un programa intensivo dedicado a conocer las características principales de la programación orientada a objetos, con ejemplos y ejercicios que te ayudarán también a conocer las mejores prácticas.

2.2 Curso de Análisis y diseño orientado a objetos

En este curso vamos a abordar las disciplinas necesarias para desarrollar software de calidad, que permita reducir los costes de los proyectos y aumentar la satisfacción del cliente. Estudiaremos el análisis y diseño orientado a objetos a través de principios, leyes, patrones de asignación de responsabilidades, métricas de calidad y criterios para producir un código limpio. Aprenderemos a detectar y solucionar también situaciones indeseables como el código maloliente y los antipatrones de desarrollo.

Es un curso dirigido a profesionales con conocimientos de Programación Orientada a Objetos, indispensable para aquellos que desean aumentar su desempeño y la calidad de su trabajo como programadores.

2.3 Curso de Patrones de diseño de software

 

Facilitar al estudiante la asimilación y aplicación de cualquier patrón de diseño. En este sentido las clases están pensadas para entender la base de los patrones de diseño: qué requiere una solución para convertirse en un patrón, y a partir de ahí comenzar a estudiar y luego aplicar en la práctica el extenso catálogo de patrones más usados en la ingeniería del software. También estudiaremos los patrones a partir de su clasificación, de modo que los podamos catalogar según los problemas que resuelven, su ámbito o propósito.

Nuestro objetivo no es ver todos los patrones que existen en la actualidad, pues sería una tarea sobre la cual resultaría imposible calcular el tiempo necesario. Vamos más allá, a permitir que el estudiante obtenga las habilidades necesarias para entender y aplicar cualquier patrón de diseño.

2.4 Curso de programación orientada a objetos con PHP

Podrás dominar la sintaxis de la POO en PHP, aplicar todos los conocimientos anteriores en la creación de componentes útiles para la web orientados a objetos, así como explorar en profundidad las nuevas características de orientación a objetos que aportan las últimas versiones del lenguaje.

2.5 Programación Orientada a objetos con JS

En este curso aprenderás las particularidades de la Programación Orientada a Objetos en Javascript, un lenguaje que admite el trabajo con objetos pero que resulta muy diferente de la orientación a objetos de otros lenguajes más tradicionales.

Esta formación está basada en la especificación de ECMAScript ES5. Los conceptos siguen vigentes hoy en día, pero si buscas además sacarle todo el provecho a Javascript en la actualidad también deberías consultar el Curso de ES6, donde se aprende además a trabajar con clases reales, llegadas a Javascript en especificaciones más recientes del lenguaje.

Código, práctica y calidad en el Curso de orientación a objetos para el lenguaje Javascript.

2.6 Curso de diseño orientado a objetos

 

El Curso de Diseño Orientado a Objetos tiene como objetivo abordar la calidad del software, y una de las disciplinas más importantes de la ingeniería del software como es el diseño. Establece los fundamentos mediante la relación de los conceptos clave en tres etapas diferenciadas: Diseño, Diseño Modular y Diseño Orientado a Objetos.

Durante el curso veremos diversos tipos de antipatrones y "smell codes" que nos ayudarán a detectar problemas en el desarrollo del software y encontrar mejores soluciones, aplicando principios de calidad que permitan un crecimiento controlado de los proyectos, maximizando características deseables como legibilidad, escalabilidad, mantenibilidad… alta cohesión, bajo acoplamiento y granularidad… evitando la rigidez y viscosidad que imposibilitan la evolución del software, la ineficaz fragilidad, y la ineficiente ausencia de reusabilidad.

Toda la teoría se aterrizará en la práctica con un enfoque iterativo incremental, realizando hasta 8 soluciones de diseño de complejidad creciente, en las que se van incorporando más necesidades que surgen con la evolución del proyecto. Comenzaremos con un diseño sencillo, de una quincena de clases, acabando en una solución extensible, con el triple de clases pero cumpliendo el Principio Abierto/Cerrado.

 

https://escuela.it/cursos/curso-de-diseno-orientado-a-objetos

 

3._ Curso de Desarrollo de Pruebas del Software

 

El objetivo del curso de pruebas del software es presentar una visión general de este área del desarrollo de software, abordando asuntos generales como vocabulario, tácticas, estrategias, tipos de pruebas, herramientas de testing, metodologías, etc.

Para profundizar en la materia y realizar ejemplos concretos de pruebas automáticas abordaremos la herramienta JUnit, un conjunto de librerías utilizadas para el desarrollo de pruebas unitarias en el lenguaje de programación Java.

4._ Curso Avanzado de pruebas de software

Este nuevo curso destinado al aprendizaje de tests unitarios parte de un conocimiento en la creación de código de testing y se adentra en las pautas que conducen al desarrollo de pruebas unitarias eficaces y eficientes. 

Eficacia: A través del diseño de casos de prueba, con juegos de datos que cubran las necesidades, sin requerir la realización de pruebas exhaustivas. Para ello se cubrirán las técnicas de diseño de caja negra y caja blanca.

Eficiencia: A través de la codificación de pruebas fáciles de escribir, de ejecutar y de mantener, para reducir los riesgos del proyecto y aumentar la calidad y documentación. Para ello se cubrirán los antipatrones que impiden las características anteriores.

 

5._ Curso de refactoring

Refactoring es una técnica que surge dentro de TDD (Test Driven Development) de XP (eXtreme Programming) para el desarrollo Ágil. Pero, a día de hoy, se ha constituido como un técnica efectiva dentro del desarrollo de software bajo cualquier metodología.   
 

En este curso aprenderás el concepto de refactoring, sus principios, así como las condiciones y técnicas para su correcta aplicación. Además verás su aplicación en una serie de casos prácticos, donde se podrán aplicar dichas técnicas aprendidas.

6._ Curso de Arquitectura del software

El curso de Arquitectura del software te ofrece una formación avanzada en el mundo de la programación de aplicaciones, especialmente relevante cuando se debe desarrollar proyectos complejos. 
A lo largo de las sesiones del curso se explicarán los conceptos relacionados con las arquitecturas del software, a través de los criterios de calidad de sus componentes. Se aplicará este conocimiento para llegar a entender las características de las arquitecturas más relevantes en el mercado actualmente (REST, Microservicios…). Además, se aplicará el conocimiento también de manera práctica, en una pequeña aplicación Java.

7._ Curso de Arquitecturas MV

Este curso aborda de manera detallada el estudio de las arquitecturas llamadas MV*, en todas sus variantes más populares, presentes en infinidad de proyectos del software y los frameworks para desarrollo más conocidos. 
Durante el curso explicaremos las distintas variantes de MV* (MVC, MVP-PM, MVP-VP, MVP-SC, MVVM), de modo que el estudiante sea capaz de comprender, diseñar o evaluar arquitecturas del software basadas en estos patrones.  
El conocimiento se aplicará además en un caso práctico, en el que se analizará una aplicación ya realizada, con el objetivo de diseñar e implementar una arquitectura MV* que permita evolucionar la aplicación debido a un cambio en los requisitos iniciales (front, distribución, persistencia, ...). 

8._ Evolución de la arquitectura del software en la web

Explicar la web desde un enfoque diferente, capaz de cambiar la manera con la que entendemos esta fabulosa herramienta. Verás la web bajo el prisma de un desarrollador y encontrarás cómo diversos patrones de diseño de software han ido aterrizando en la plataforma.

Analizaremos la evolución de la web y veremos los defectos que presentaba como plataforma de ejecución de aplicaciones y cómo se han ido corrigiendo poco a poco y lo largo del tiempo. Te presentaremos la web con toda su potencia, con todas las cosas buenas que actualmente ofrece y todas aquellas que en el futuro aportará.

Curso gratuito en la web de EscuelaIT:

https://escuela.it/cursos/evolucion-de-la-arquitectura-software-web

 

9._ Curso de Patrones

 

Aprender a detectar y entender los problemas de diseño, para saber en qué momentos es adecuado aplicar un patrón de diseño, evitar el sobrediseño (YAGNI). Una vez detectado el problema, saber qué patrón es el más adecuado para resolverlo y, finalmente, cómo debemos aplicarlo en el proyecto.

Conocer un amplio catálogo de patrones de diseño de software y sus características, la intención que nos llevaría a aplicar cada patrón, el diagrama de clases y sus colaboraciones, así como la implementación en código. Relacionar y utilizar unos patrones con otros, llegando a soluciones de elevada calidad.

 

https://escuela.it/cursos/patrones

 

  • Voto Positivo 3
  • Me encanta 1
Enlace al mensaje
Compartir en otros sitios

Gracias por la ruta. Nos sirve de referencia para quienes no estamos inmersos en el mundo de la programación, pero nos interesa aprenderlo ya que resulta ser necesario....

Haber si algunos compañ[email protected] del grupo, confirman que ese es el camino a seguir.....  o sugieren incorporar cursos adicionales....  Gracias adicionales!

 

Enlace al mensaje
Compartir en otros sitios

Únase a la conversación

Puedes comentar ahora y registrarte más tarde Si tienes una cuenta, inicie sesión ahora para publicar con su cuenta.

Invitado
Responder en este tema...

×   Pegaste contenido con formato..   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Se ha restaurado el contenido anterior..   Limpiar todo.

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Crear Nuevo...