Skip to content

Conocimientos previos

Dominio de al menos un lenguaje de programación

  • Conocimientos sólidos: Tener un entendimiento profundo de las estructuras de datos (arrays, listas, colas, pilas, mapas) y algoritmos (búsqueda, ordenamiento, recursividad).
  • Programación orientada a objetos (POO): Clases, objetos, herencia, polimorfismo, abstracción y encapsulación.
  • Conceptos funcionales básicos: Funciones de orden superior, asincronismo, closures, currying, y manejo de funciones puras.
  • Buenas prácticas de codificación: Escribir código limpio y legible, comentarios efectivos, modularidad, y uso adecuado de excepciones y errores.

Fundamentos de control de versiones (Git)

Git

Git es un sistema de control de versiones distribuido, gratuito y de código abierto, diseñado para gestionar todo, desde proyectos pequeños hasta muy grandes, con velocidad y eficiencia.

  • Comandos básicos: Clonar, hacer commits, branches, merges, y rebase.
  • Colaboración en equipos: Pull requests, revisiones de código, y resolución de conflictos.

Conocimientos básicos de bases de datos

  • SQL: CRUD básico (Create, Read, Update, Delete), joins, índices, y optimización de consultas.
  • Bases de datos NoSQL: Entender cuándo usar bases de datos NoSQL como MongoDB o Redis.

Experiencia básica en arquitectura de software

  • MVC: Patrón Modelo-Vista-Controlador.
  • Capas de abstracción: Separación de responsabilidades.
  • Conocimiento de patrones de diseño básicos: Singleton, Factory, Observer.

Conocimientos en metodologías ágiles

  • SCRUM/Kanban: Comprensión básica de la metodología SCRUM o Kanban, incluyendo sprints, backlog, daily standups, etc.
  • Ciclo de vida de desarrollo de software (SDLC): Entender las fases de planificación, análisis, diseño, implementación, pruebas, despliegue y mantenimiento.

Testing y QA

  • Pruebas unitarias: Herramientas como JUnit o Jest.
  • Pruebas de integración y end-to-end: Familiaridad básica con frameworks como Selenium, Cypress o TestCafe.

Manejo básico de sistemas operativos y redes

  • Sistemas UNIX/Linux: Comandos básicos, administración de procesos, permisos y manejo de archivos.
  • Fundamentos de redes: IP, TCP/UDP, HTTP, HTTPS y conceptos de redes como DNS y protocolos de transporte.