“DIEGO GARCIA UCO - COLOMBIA”

CONFERENCIA 2:

DIEGO GARCIA UCO - COLOMBIA




       1)    EXPERIENCIA
ü  Profesor Universitario de planta y cátedra desde el 2015 en los cursos de Ingeniería de Software, programación de dispositivos móviles, bases de datos, programación orientada a objetos y diseño web.
ü  Ingeniero de Sistemas de la Universidad Católica de Oriente.
ü  Especialista en gestión de Software.
ü  Experiencia en varias casas de desarrollo de Software.
ü  Consultor de Software para empresas.
ü  Desarrollador Freelance Móvil y Web.
ü  11 años de experiencia.
ü  Java Senior.

     2)    ¿QUÉ ES UN DESARROLLADOR DE SOFTWARE?
  Un Desarrollador de Software es el encargado de construir sistemas computacionales por   medio de lenguajes de programación, por eso es una profesión exigente que requiere     aprendizaje continuo (RESILIENCIA), sus herramientas principales son:
§        La Creatividad.
§        Manejo de diferentes Lenguajes de Programación.

     3)    ¿POR QUÉ ES IMPORTANTE DESARROLLAR SOFTWARE?
Z  Porque la programación es algo útil y cada vez toma más relevancia en la vida cotidiana.
Z  Porque la Cuarta Revolución Industrial está basada en el desarrollo de Software y la Tecnología es la principal protagonista.
Z  Porque se pueden hacer grandes cosas sin invertir mucho dinero, solo se necesita creatividad y una computadora.
Z  Porque con la programación siempre aprenderemos cosas nuevas ya que evoluciona permanentemente.

     4)    COMPETENCIAS DE UN BUEN DESARROLLADOR DE SOFTWARE
Ø  Dominio del Inglés (IDEAL).
Ø  Planeación y Priorización.
Ø  Análisis y Razonamiento.
Ø  Toma de Decisiones.
Ø  Trabajo en equipo.

     5)    DATOS Y ESTADÍSTICAS


     6)    CATEGORIZACIÓN DE LOS DESARROLLADORES



S.O.S: EL PLANETA NECESITA MAS PROGRAMADOS

“En 2020 se necesitaran cubrir 900.000 puestos de trabajo en el ámbito digital, pero los expertos apuntan que la escasez de talento se debe al obsoleto modelo formativo”



 DESARROLLADORES SEGÚN LA EXPERIENCIA
Ø  JUNIOR:
Requiere Seguimiento Diario y tiene menos de 2 años de experiencia.

Ø  SEMI SENIOR:
Requiere Seguimiento Semanal y a nivel general y tiene entre 2 y 6 años de experiencia.

Ø  SENIOR:
Proactivo y Reporta el Estado y avance de las Tareas más de seis años de experiencia.

     7)    PERFILES Y SUS FUNCIONES EN PROYECTOS DE SOFTWARE
ª      GERENTE DE PROYECTO:
Responsables de atender las necesidades y asignar recursos.

ª      LÍDER DE PROYECTO:
Es el responsable de mantener al equipo alineado y vela por cada una de las etapas del desarrollo.

ª      ANALISTA DE SISTEMAS:
Es el que describe todos los Requerimientos y flujos de la información.


ª      DISEÑADOR:
Se encarga de desarrollar las Interfaces Gráficas y que estas se encuentran acorde con los requerimientos.

ª      INGENIERO DE SOFWARE:
Sin estas personas no es posible desarrollar el Sistema, se encarga de materializarlo.

ª      RESPONSABLE DE PRUEBAS DE CALIDAD (TESTER):
Es el encargado de vela por la buena calidad de producto.

      8)    TENDENCIAS 
A.  DESARROLLO MOVIL
Está enfocado en tecnologías móviles para Tablet y Smartphone.

¨        DESARROLLO NATIVO:
Se construye para una plataforma especifica sea iOS (OBJECTIVE C o SWIFT) o Android (JAVA o KOTLIN).

¨        DESARROLLO HIBRIDO:
Se construye una aplicación para múltiples plataformas, se usan FRAMEWORKS como IONIC o FLUTTER (RECOMENDADO)

¨        DESARROLLO CROSSPLATFORM:
Se usa la tecnología XAMARIN (MICROSOFT) sirve para crear desarrollos para múltiples plataformas.

B. DESARROLLO BACKEND
Este concepto es más usado e sistemas distribuidos y se pueden usar muchos lenguajes tales como PHP, JAVA, C#, SCALA, PYTON:

¨      Desarrollo de Microservicios y API.
¨      Desarrollo Backend.

C. DESARROLLO FRONTEND
Este enfoque va orientado a todo la parte interfaces gráficas de usuario se pueden usar lenguajes como HTML5, CSS, JAVASCRIPT, TYPESCRIPT:

¨        Desarrollo de sitios Web.
¨        Desarrollo de Interfaces Gráficas de Usuario.

D. DESARROLLO FULLSTACK
Orientado a todo un sistema completo, tanto FRONTEND como BACKEND, por lo tanto requiere mucha más experiencia.

¨     Puede usar FRAMEWORKS FRONTEND como ANGULAR, REACTJS, VUE, BOOTSTRAP, ESKELETEON, MATERIAL DESIGN, entre otros.
¨  Puede usar FRAMEWORKS BACKEND como SPRING, JAVA, MICROSOFT.NET, FRAMEWORKS.

E.  DEVOPS (CI/CD)
Es el encargado de temas de integración continua (CI) y despliegue continuo (CD)

¨             INTEGRACIÓN CONTINUA:
Usar herramientas para integrar las pruebas unitarias, el análisis estático de código, la cobertura del código.

¨             DESPLIEGUE CONTINUO:

Puede automatizar el lanzamiento de los ejecutables mediante el uso de contenedores (DOCKER o KUBERNETES), ideal que tenga conocimientos en la nube.

Comentarios