~/pcn $ iniciando_

programaConNosotros

Iniciar sesiónCrear cuenta
  • programaConNosotrosprogramaConNosotrosComunidad · desde 2020
  • Inicio
  • Feed
Actividades
  • Eventos
  • Conversaciones
  • Charlas
  • Podcast
  • Desarrollo
Recursos
  • Cursos
  • Lectura
  • Videos
  • Especialidades
  • Herramientas
  • Proyectos
  • Entrevistas
Comunidad
  • Historia
  • Miembros
  • Logros
  • Galería
  • Setups
  • Partners
  • Changelog
SoporteFeedback

~/entrevistas/live-coding

enunciados + leetcode

[simulador][guías][live coding]

Enunciados como los de una entrevista real para resolver por tu cuenta, con el tiempo que te darían, y problemas de LeetCode recomendados para cada tecnología y seniority. Nada se corrige acá: resolvelo en tu editor, en voz alta, y marcá lo que ya practicaste.

# 1. tecnología

[ ]Frontend · React.jsweb, hooks, Next.js[ ]Frontend · iOSSwift, SwiftUI, UIKit[ ]Frontend · AndroidKotlin, Jetpack Compose[ ]Frontend · React NativeExpo, iOS y Android[ ]Backend · Node.jsExpress, NestJS[ ]Backend · PythonDjango, FastAPI[ ]Backend · JavaSpring Boot[ ]Backend · .NETC#, ASP.NET Core[ ]AI engineeringconstruir agentes de IA[x]Agentic engineeringdesarrollar con agentes[ ]Quality engineeringtesting manual y automatizado

# 2. seniority

[x]Junior[ ]Semi-senior[ ]Senior

# ejercicios (resolvelos por tu cuenta, con el tiempo que darían en la entrevista)

01Escribir la spec y revisar el diff del agenteQue sepas convertir un pedido vago en instrucciones verificables y que no aceptes código de un agente sin revisarlo.45 min

Partí de un proyecto chico en TypeScript o Python con una función slugify(title) que hoy solo pasa a minúsculas y reemplaza espacios por guiones. El pedido de producto es: "los slugs tienen que sacar tildes, colapsar guiones repetidos, no empezar ni terminar con guion y cortar en 60 caracteres sin partir una palabra".

Escribí las instrucciones para tu coding agent (Claude Code, Cursor, Copilot o el que uses) como si fuera un ticket: contexto, comportamiento esperado con ejemplos de entrada y salida, qué archivos puede tocar y cómo verificar. Dejá que lo implemente y revisá el diff línea por línea. Como práctica de revisión, chequeá estos bugs frecuentes: "Ñandú Árbol" tiene que dar nandu-arbol, un título de un solo caracter no especial no puede quedar vacío y un título de 61 caracteres sin espacios no puede devolver un string vacío.

# requisitos

  • -La spec incluye al menos 6 ejemplos de entrada y salida, incluyendo casos de borde.
  • -La spec acota el alcance: qué archivos se pueden modificar y qué no.
  • -Se piden tests como parte del entregable y se los corre localmente.
  • -Se deja por escrito cada problema encontrado en el diff y cómo se le pidió al agente corregirlo.

# si te sobra tiempo, te van a preguntar

  • -¿Qué ambigüedad del pedido de producto tuviste que resolver vos antes de delegar?
  • -¿Qué parte del diff aceptaste sin leer en detalle y por qué estuvo bien o mal?
  • -¿Cómo cambiarías la spec para que el agente acierte en el primer intento?
02Tests primero, implementación con el agenteQue uses los tests como contrato para verificar el trabajo del agente en lugar de confiar en su explicación.45 min

Tenés que implementar parseDuration(input: string): number que convierte strings como "1h30m", "45s", "2h" o "1h 5m 10s" a segundos, y lanza un error ante entradas como "", "10x", "1h1h" o "-5m".

Antes de abrir el agente, escribí vos la suite de tests completa sin implementación (tienen que fallar todos). Recién después pedile al agente que implemente la función con la consigna explícita de no modificar los tests. Si algún test no pasa, iterá con el agente hasta que pasen todos sin tocar la suite.

# requisitos

  • -Al menos 10 casos de test, con un tercio de casos inválidos.
  • -Los tests están commiteados antes de la implementación (se puede ver en el historial).
  • -El agente no modifica ni borra tests; si lo intenta, se rechaza el cambio.
  • -La implementación final pasa todos los tests y el linter.

# si te sobra tiempo, te van a preguntar

  • -¿Qué casos se te ocurrieron recién después de ver la implementación del agente?
  • -¿Cómo detectarías que el agente hizo trampa, por ejemplo hardcodeando los casos de test?
  • -¿Qué ganás y qué perdés con este flujo comparado con pedirle todo al agente de una?
03Reproducir y arreglar un bug con el agenteQue mantengas el método de debugging (reproducir, aislar, arreglar, verificar) aunque el que escribe el código sea un agente.30 min

Escribí esta función en un proyecto nuevo: function average(nums) { let sum = 0; for (let i = 1; i < nums.length; i++) sum += nums[i]; return sum / nums.length; }. El reporte de un usuario dice: "el promedio de mis notas da mal y a veces aparece NaN".

Usá el agente para reproducir el bug con un test que falle, encontrar la causa y arreglarlo. La regla es que el agente primero tiene que mostrarte el test fallando antes de proponer el fix.

# requisitos

  • -Hay un test que falla por el índice inicial y otro que cubre el array vacío.
  • -Se define explícitamente qué debe devolver la función con un array vacío y queda testeado.
  • -El fix es mínimo y no reescribe la función entera sin motivo.
  • -Los tests pasan después del fix.

# si te sobra tiempo, te van a preguntar

  • -¿Por qué conviene exigir el test fallando antes del fix cuando trabajás con un agente?
  • -¿Qué otras entradas raras probarías, como valores no numéricos o arrays muy grandes?

# leetcode recomendado (Agentic engineering · Junior)

EasyTwo SumResolvelo primero sin agente y después compará con lo que propone: es ideal para notar si entendés el trade-off entre fuerza bruta y hash map.
EasyValid ParenthesesEntrena el uso de stacks y tiene muchos casos de borde, perfecto para escribir los tests vos antes de pedir la implementación.
EasyMerge Two Sorted ListsPractica manipulación de punteros, un terreno donde conviene saber razonar sin ayuda para poder revisar el código del agente.
EasyBest Time to Buy and Sell StockUna pasada con estado mínimo: sirve para explicar en voz alta la invariante, que es lo que te van a pedir en el screen.
EasyReverse Linked ListClásico corto que conviene saber escribir de memoria en sus versiones iterativa y recursiva sin depender de un agente.
$ progreso --live-codingAgentic engineering · Junior

ejercicios0/3

leetcode0/5

$ cat guias/live-coding

Cómo encarar un live coding: el método para resolver en voz alta, complejidad, los patrones más frecuentes y cómo practicar.

leer la guía de live coding