Fundamentos de Ingeniería de Software (9 de febrero)
Clase 3 de 3 • Bienvenida al Reto Developer Foundations
Contenido del curso
Crear software no es misterio: es un proceso claro que puedes dominar paso a paso. En 15 días podrás levantar tu primera aplicación entendiendo sus piezas clave, usando Python para el backend, una base de datos para persistir información, infraestructura en cloud para ejecutarla y la AI como copiloto para acelerar sin perder control. Aquí tienes el mapa práctico.
¿Cómo construir software desde cero?
Una aplicación de software automatiza tareas y resuelve problemas reales. Se compone de cuatro “cajas” fundamentales: frontend, backend, base de datos e infraestructura. Además, AI y Git potencian el desarrollo y la colaboración.
¿Qué es el frontend, el backend y cómo se conectan?
- El frontend es lo que ve el usuario. Formularios, apps móviles o incluso una consola. En web, HTML, CSS y JavaScript dibujan y dan interactividad.
- El backend implementa la lógica y las reglas de negocio. Aquí viven Python y las APIs. No “dibuja”, ejecuta procesos confiables y predecibles.
- La base de datos guarda la información. En este reto se priorizan las relacionales y SQL.
- La infraestructura es donde corre todo: cloud, servidores y redes. Aporta seguridad, comunicación y administración.
- Modelo cliente-servidor: el navegador (browser) pide a un servidor y este responde; el cliente “pinta” la página.
¿Cómo entenderlo con la analogía del restaurante?
- Menú: frontend (lo que eliges).
- Mesero: API (lleva pedidos y trae respuestas).
- Cocina: backend en Python (prepara la lógica/plato).
- Bodega: base de datos (insumos/datos).
- Local: infraestructura (dónde vive y se protege todo).
- Asistente de AI: ayuda a “cocinar”, pero tú decides el menú y mantienes el control.
¿Por dónde inicia el pensamiento técnico?
- Con algoritmos: instrucciones claras, con entrada y salida, ejecutadas paso a paso.
- Con variables: “cajitas” de memoria con valores significativos (nombre, edad, etc.).
- Con condicionales: decisiones sobre estados (si pasa X, haz Y).
- Con bucles: repiten tareas hasta N veces o hasta que ocurra algo.
- Con funciones: reutilizan bloques de lógica con una llamada.
¿Qué fundamentos de Python necesitas para empezar?
Python es legible, ordenado por indentación, muy usado y versátil. Sirve para backend, machine learning, manejo de datos y scripts que automatizan tareas cotidianas.
¿Qué hace a Python práctico y confiable?
- Legibilidad casi como inglés. Indentación obliga a código prolijo.
- Ecosistema abierto y enorme comunidad: documentación y librerías.
- Versatilidad: de servicios web a análisis con grandes volúmenes de datos.
- Automatización: desde transformar un Excel a PDF hasta orquestar procesos.
¿Qué tipos de datos básicos debes dominar?
- Números enteros y decimales: atención a precisión de punto flotante.
- Textos: cadenas con inicio y fin en memoria.
- Booleanos: verdadero/falso (binario, 0/1).
- Listas: múltiples elementos en orden, accesibles por posición.
- Diccionarios: pares clave-valor, accesibles por nombre de campo.
¿Cómo llevarlo a la práctica desde el día 1?
- Un “to-do” simple ya es un programa: lista de tareas, entrada por teclado y acciones como agregar o imprimir.
- Usa un IDE y ejecuta en línea de comando. Familiarízate con Linux: la mayoría de servidores lo usan.
- Editores y copilotos mencionados: Windsor/Windsurf, Cloud Code, Cursor.
¿Cómo aprovechar la AI, Git y bases de datos en tu proyecto?
La AI te da velocidad, pero la comprensión del código sigue siendo esencial. Controlar el flujo con Git y diseñar bien los datos hará tu proyecto mantenible y escalable.
¿Cómo usar la AI como copiloto sin perder control?
- Explica bien el contexto en el prompt y pide código alineado a tus archivos.
- Pide al modelo que documente y explique su razonamiento si algo no se entiende.
- Revisa cambios con Git antes de aceptar. Evita “dar play hasta que funcione”.
- Aprende prompt engineering y entiende qué puede y qué no puede hacer un LLM.
¿Qué aportan Git y GitHub a tu desarrollo?
- Control de versiones creado por Linus Torvalds. Colaboración distribuida.
- Flujo profesional: revisa diffs, commit, pull request y aprobación entre pares.
- Skill básico en entrevistas: comparte repositorios, no carpetas sueltas.
¿Cómo decidir arquitectura, costos e infraestructura?
- Costos dependen del uso. Aprovecha free tier para pruebas: Cloudflare, Amazon (AWS), GCP, Supabase.
- Define dónde vivirá tu app: web, móvil, desktop o incluso sin frontend (ej. vía Telegram/WhatsApp).
- Si hay mucho frontend, evalúa React, View.js, Angular.
- Si requieres alta disponibilidad, piensa en redundancia y monitoreo.
- Si el uso es esporádico, prefiere cobro por uso.
¿Por qué empezar con bases de datos relacionales y SQL?
- Guardan datos estructurados en tablas relacionadas: recetas, ingredientes, clientes, pedidos.
- Permiten buscar, filtrar, ordenar, editar y eliminar.
- Aseguran persistencia aunque reinicies la app o el servidor.
¿Qué mentalidad necesitas para el reto de 15 días?
- Acepta sentirte perdido al principio. La resiliencia es parte del oficio.
- Pregunta todo: a colegas, en la comunidad, a buscadores y a la AI.
- Usa la AI para acelerar, no para copiar y pegar sin entender.
- Construye algo real y pequeño: será la base para crecer con práctica continua.
¿Te quedó una duda o quieres compartir tu avance? Deja tu comentario y conversemos sobre tu arquitectura, tu prompt o tu primer pull request.