PTENES
Saltar al contenido
MÓDULO 2.1 · HABILIDADES HUMANAS

♟️ Táctico × Estratégico

La IA "se comió" la programación táctica — escribir código línea por línea ya no es donde está tu valor. Tu turno es subir un nivel: pensar como el general en la parte superior que gana la guerra, no la batalla. Basado en John Ousterhout, "A Philosophy of Software Design". Cada término se explica en el momento.

6
Temas
~40
Minutos
Cero
Prerequisito
Teoría
Tipo
Progreso: 0% 0 de 6

📖 Glosario vivo (lee antes — vuelve siempre que lo necesites)

La Trilha 1 ya estableció el vocabulario básico (modelo, prompt, agente, skill, harness). Aquí, en la Ruta 2 — Habilidades Humanas aquí entran los términos NUEVOS de este módulo. Fija estos antes de seguir:

Programación táctica — el trabajo del día a día, línea por línea: escribir código, modificar la sintaxis, encontrar errores, hacer commits. Ganar la batalla (la tarea de ahora).
Programación estratégica — pensar a largo plazo: cómo el codebase debería ser, qué decisiones aumentan la velocidad del equipo. Ganar la guerra, no solo la batalla.
Ousterhout — John Ousterhout, profesor de Stanford y autor del libro "A Philosophy of Software Design", de dónde viene la distinción entre táctico y estratégico que usa Matt Pocock.
Sintaxis — las reglas «gramaticales» del lenguaje: punto y coma, paréntesis, nombre correcto de la función. Es el aspecto más mecánico del código.
Commit — un «guardado» de tu trabajo en el historial del proyecto (en Git), con un mensaje que indica qué cambió. Lo básico de lo táctico.
Delegar — asignarle una tarea a otra persona (o a la IA) para que la ejecute, mientras tú sigues al mando de las decisiones.
1

📚 Ousterhout y los dos modos

🧠 Imagínalo así: un ejército tiene dos tipos de personas. El soldado aprieta el gatillo en plena batalla — acción inmediata, sobre el terreno. El general se queda en la cima de la colina decidiendo dónde atacar, cómo posicionar todo para ganar la guerra. Programar tiene exactamente esos dos modos.

Antes de hablar de IA, necesitamos una regla de referencia. Matt Pocock la toma prestada de John Ousterhout, profesor de Stanford y autor de "A Philosophy of Software Design". En el libro, separa el trabajo de programar en dos modos muy diferentes: programación táctica e programación estratégica. No son «niveles de habilidad», son maneras de pensar sobre lo que estás haciendo ahora.

La diferencia, en la imagen del propio Pocock: el táctico es «ganar la batalla»: el día a día de escribir sintaxis, encontrar bugs, hacer commits. O estratégico es «ganar la guerra»: es el general en la parte superior pensando en cómo debe ser el codebase y qué estrategias aumentan la velocidad a largo plazo. El porqué de que esto se haya vuelto tema ahora: la IA cambió radicalmente quién hace cada modo. Un error común es tratar ambas cosas como si fueran lo mismo ("todo es programar"): requieren enfoques distintos.

TÁCTICO — ganar la batalla • escribir código línea por línea • ajustar la sintaxis • encontrar bugs • hacer commits ESTRATÉGICO — ganar la guerra • cómo debe ser el codebase • decisiones a largo plazo • lo que aumenta la velocidad • el general en la cima de la colina

Dos modos de pensar, no dos niveles. La IA cambió quién hace cada lado.

Ilustración conceptual: a la izquierda, soldados en el campo de batalla (táctico); a la derecha, un general en la cima de una colina que observa el mapa (estratégico)

⚠️ Error común de principiante

Creer que «saber programar» = «escribir código rápido». Ese es solo el lado táctico. Quien solo entrena lo táctico es fácil de reemplazar: justamente el lado que la IA ya hace mejor que tú.

En 1 frase: táctico = ganar la batalla (el código de hoy); estratégico = ganar la guerra (el sistema del mañana).

Profundiza (opcional): ¿por qué Ousterhout y no otro autor?

"A Philosophy of Software Design" es breve, práctico y se escribió mucho antes del auge de la IA — por eso separa lo táctico × lo estratégico como principios de diseño, no como una moda. A Pocock le gusta citarlo precisamente porque es un fundamento "que funciona desde hace 30-40 años" (la tesis de la Trilha 1): cuando te basas en el fundamento correcto, la llegada de la IA solo cambia quien ejecuta, no lo que importa.

2

⌨️ Programación táctica

🧠 Imagínalo así: es el albañil que coloca ladrillos uno por uno. Trabajo real, necesario y visible, pero no decide dónde va la casa ni cuántas habitaciones tendrá. Construye la pared que le encargaron.

A programación táctica es el trabajo que tú ve ocurriendo: abrir el editor y escribir las líneas, recordar dónde va el paréntesis, ejecutar el programa, ver que falla, buscar el bug, corregirlo y guardar con un commit. Es el «piso de fábrica» del software. Durante décadas, fue aquí que la mayoría de los programadores pasaba el 80% del tiempo, y aquí se medía "quién programa bien".

Es un trabajo honesto e indispensable: sin lo táctico, nada funciona. Pero tiene una característica peligrosa: es mecánico y estandarizable. Casi todas las tareas tácticas ya fueron realizadas millones de veces por alguien: crear un endpoint, validar un formulario, escribir un bucle. Por eso porqué importa: todo lo que es repetible y está bien definido es exactamente el tipo de cosa que las máquinas aprenden a hacer. El error común es confundir «estoy ocupado escribiendo» con «estoy creando valor»: escribir mucho puede ocultar que tomas pocas decisiones.

escribir ejecutar encontrar el bug corregir commit Un loop repetible y bien definido: exactamente lo que una máquina aprende rápido.
Ilustración: teclado y líneas de código que fluyen, como representación del trabajo táctico y mecánico del día a día

Recuperación rápida: cuál de estos es trabajo táctico?

En 1 frase: lo táctico es «colocar ladrillos» en el software: necesario, pero repetible y fácil de automatizar.

3

🗺️ Programación estratégica

🧠 Imagínalo así: el arquitecto de la casa. No coloca ni un ladrillo, pero decide dónde van los cimientos, cómo se conectan las habitaciones y por dónde pasan las tuberías. Una decisión equivocada suya cuesta 1000 ladrillos para hacer reparaciones después.

A programación estratégica es lo opuesto a «está escribiendo». Es pensar antes e alrededor del código: cómo el codebase debe estar estructurado, cuáles interfaces conectan las partes, qué decisiones de hoy acelerarán (o frenarán) al equipo dentro de un año. En palabras de Pocock, es "ganar la guerra, no la batalla": el trabajo de general en la parte superior.

Para Ousterhout, lo estratégico implica dibujar las partes difíciles antes, definir bien el alcance de cada tarea, pensar en las interfaces entre módulos, planificar pruebas y escenarios, y diseñar un codebase fácil de trabajar. El porqué de que esto sea poco común: puedes «entregar» sin hacer nada de esto; basta con enviar código táctico que funciona hoy. El precio llega después, en forma de deuda técnica. O error común es posponer lo estratégico «para cuando tengas tiempo»: ese momento nunca llega y el codebase se deteriora.

dibujar las partes difíciles definir bien el alcance de las tareas interfaces entre módulos pruebas y escenarios documentación que apunta codebase fácil de evolucionar = la guerra ganada

🔬 Ejemplo resuelto: la misma feature, dos modos

Tarea: "agregar pagos con tarjeta". Mira la diferencia entre solo táctico y estratégico:

Solo táctico

Llama a la API de pago directamente desde la pantalla del carrito, copia el código de validación de otro lugar, haz el commit. Funciona hoy. → Cuando lleguen Pix, boleto y suscripción, cada uno será otro parche pegado a la pantalla. Se convierte en un laberinto.

Primero lo estratégico

Diseña una interfaz "MedioDePagamento" con un contrato claro; tarjeta es la primera implementación; escribe pruebas del contrato. → Pix y boleto se incorporan implementando la misma interfaz. La IA ejecuta cada uno por su cuenta, siguiendo el modelo.

En 1 frase: lo estratégico es diseñar el terreno para que cada feature futura (tuya o de la IA) sea fácil de integrar.

4

🤖 Por qué la IA dominó lo táctico

🧠 Imagínalo así: la caja registradora «se comió» la cuenta mental del cajero. Ya nadie contrata a alguien por sumar rápido. El valor migró a quienes deciden el precio, la vitrina y qué vender. La IA hizo eso con lo táctico.

Aquí está la frase que da nombre al módulo. Matt Pocock es directo: "AI has basically eaten tactical programming. It's gone." — básicamente, la IA "se comió" la programación táctica, se acabó. No en el sentido de que lo táctico ya no exista, sino en el sentido de que ya no es donde está tu valor: la IA se encarga de lo táctico mejor y más barato que tú. ¿Recuerdas el tema 2? Lo táctico es repetible y está bien definido — y es exactamente en eso en lo que un modelo de lenguaje brilla.

La consecuencia práctica es contundente: ahora tienes acceso a una "flota infinita de programadores tácticos" que trabajan 24h, no se cansan y cuestan centavos. Pero —y aquí está el punto— una flota solo vale lo que vale quien la dirige. El porqué de que esto te impulse a avanzar: si lo táctico se volvió barato y abundante, el cuello de botella pasó a ser el estratégico. O error común es seguir compitiendo en lo táctico («voy a escribir más rápido que la IA»): es una carrera que pierdes contra alguien que no duerme.

TÚ lo estratégico agente táctico · escribe código agente táctico · corrige bugs agente táctico · hace commits agente táctico · escribe pruebas Una flota infinita de tácticos — comandada por un único estratega.
Ilustración: una figura humana al mando que dirige una flota de agentes de IA mientras ejecutan tareas tácticas

⚠️ Error común

"Si la IA hace lo táctico, ya no necesito entender el código." Es un error: aún necesitas leer e juzgar el táctico para comandar la flota. Lo que cambia es que detenerse en lo táctico dejó de ser suficiente — no que haya dejado de importar.

En 1 frase: la IA se encargó de lo táctico — así que todo tu valor migró a lo estratégico.

5

🧗 Subir de nivel

🧠 Imagínalo así: el mejor cocinero de la cocina se convierte en chef. Sigue sabiendo cortar y freír, pero ahora su valor está en el menú, la brigada y el estándar de cada plato. Quien solo se queda con el cuchillo nunca abre un restaurante.

Si lo táctico ya se absorbió, la jugada es subir de nivel: empezar a operar en el plano estratégico. Pocock deja claro que "la programación estratégica no cambió con la IA" — los fundamentos para diseñar bien un sistema siguen siendo los mismos de siempre. Lo que cambió fue para quien delegas lo táctico: antes les pasabas las tareas mecánicas a juniors y mid-levels; ahora tú delega para la IA. El porqué de que esto sea liberador: pasas menos tiempo escribiendo y más tiempo decidiendo, que es donde se forma el resultado real. El error común es «subir de nivel» solo en la tarjeta de presentación (convertirte en «líder») sin soltar nunca lo táctico en la práctica; así te conviertes en un cuello de botella que revisa cada línea. Subir de verdad es confiar la ejecución y enfocarte en el diseño.

1 · escribir lo táctico (la IA ya lo hace) 2 · leer y evaluar la IA 3 · diseñar el sistema Subir de nivel es soltar el escalón de abajo, no acumular los tres.

✓ Subir de nivel

  • • Diseñar interfaces y alcance antes de programar.
  • • Delegar lo táctico a la IA y revisar con criterio.
  • • Pasar el tiempo libre pensando en el sistema.

✗ Quedarse atascado en lo táctico

  • • Competir con la IA en velocidad al escribir.
  • • Reescribir a mano lo que la IA ya entregó.
  • • Posponer el diseño "para cuando tenga tiempo".

En 1 frase: lo estratégico no cambió: solo cambió el «junior» por la IA; ahora te toca convertirte en quien marca el rumbo.

6

🎖️ El general en la cima

🧠 Imagínalo así: el general no dispara el cañón: decide hacia dónde apunta. Si baja a disparar, nadie dirige el ejército. Tu lugar está en la cima de la colina, leyendo el mapa completo.

Al cerrar el módulo: la metáfora del general en la parte superior es el resumen de todo. La IA es tu tropa táctica; tú eres el general estratégico. Para delegar bien a esta tropa —el tema de toda la Trilha 2—, Pocock presenta la lista de Ousterhout: dibujar las partes difíciles primero, definir muy bien el alcance de las tareas, pensar en las interfaces entre módulos, pensar en pruebas y escenarios, y tener documentación suficiente para orientar a la IA hacia los lugares correctos. Antes de «dejar que la IA programe», ejecuta la lista de verificación de abajo: es el resumen práctico de este módulo. Cópiala y pégala cuando delegues una tarea:

checklist-do-general.txt
Antes de mandar a IA codar, pense como GENERAL (estratégico):
[ ] PARTES DIFÍCEIS — qual é o pedaço arriscado? Desenhei ele na frente?
[ ] ESCOPO — a tarefa está nítida e fechada, ou está vaga demais?
[ ] INTERFACES — como este módulo conversa com os outros? Defini o contrato?
[ ] TESTES — quais cenários provam que ficou certo (inclusive os de borda)?
[ ] DOCUMENTAÇÃO — apontei a IA pros arquivos/padrões certos do projeto?
Se respondeu tudo, o tático (a IA) é só execução. Você ganhou a guerra.
GENERAL tú · estratégico IA táctica IA táctica IA táctica IA táctica

Recuperación rápida: ¿qué quiere decir Pocock con «la IA se comió lo táctico»?

En 1 frase: tu lugar está en la cima de la colina: define la guerra y deja que la tropa táctica (la IA) gane las batallas.

🧾 Resumen del módulo

✓
Dos modos (Ousterhout) — táctico = ganar la batalla (el código de hoy); estratégico = ganar la guerra (el sistema).
✓
La IA se comió lo táctico — lo hace mejor y más barato; tienes una flota infinita de tácticos.
✓
Sube de nivel — lo estratégico no cambió; solo se reemplazó al «júnior» por la IA. Pasa al diseño.
✓
Sé el general en la cima — las partes difíciles, el alcance, las interfaces, las pruebas y la documentación. Después, delega.

Próximo módulo:

2.2 — Tus skills son el techo: por qué eres el multiplicador de la IA y cómo el sénior gana 10x.