~/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[x]Backend · PythonDjango, FastAPI[ ]Backend · JavaSpring Boot[ ]Backend · .NETC#, ASP.NET Core[ ]AI engineeringconstruir agentes de IA[ ]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)

01API de libros con FastAPI y PydanticQue sepas armar un endpoint simple con validación declarativa, status codes correctos y manejo de errores en el framework.45 min

Armá con FastAPI una API para un catálogo de libros guardado en memoria (un dict alcanza). Un libro es { "id": int, "title": str, "author": str, "year": int, "isbn": str }.

Implementá POST /books que devuelve 201 con el libro creado, GET /books con un filtro opcional ?author= y GET /books/{id}. Si el body no cumple las reglas, FastAPI tiene que responder 422 con el detalle del error.

# requisitos

  • -Definí modelos de Pydantic separados para la entrada (BookCreate) y la salida (Book).
  • -title y author no pueden estar vacíos; year está entre 1450 y el año actual.
  • -No se pueden crear dos libros con el mismo isbn: respondé 409.
  • -Un id inexistente devuelve 404 usando HTTPException.
  • -El filtro por autor no distingue mayúsculas de minúsculas.

# si te sobra tiempo, te van a preguntar

  • -¿Qué diferencia hay entre el 422 que da FastAPI y un 400 que devolvés vos?
  • -¿Cómo lo testearías con TestClient y pytest?
  • -¿Cómo lo harías en Django REST Framework? ¿Qué pieza cumple el rol de Pydantic?
02Palabras más frecuentes de un textoTu manejo idiomático de strings, diccionarios y la biblioteca estándar de Python, además de pensar en casos borde.30 min

Escribí una función top_words(text: str, n: int) -> list[tuple[str, int]] que devuelva las n palabras más frecuentes de un texto con su cantidad de apariciones.

Por ejemplo, top_words("El perro y el gato. ¡El perro!", 2) devuelve [("el", 3), ("perro", 2)]. Las palabras se comparan en minúsculas e ignorando signos de puntuación; ante un empate, van en orden alfabético.

# requisitos

  • -Usá estructuras de la biblioteca estándar como collections.Counter o un dict.
  • -Respetá el desempate alfabético.
  • -Si n es mayor que la cantidad de palabras distintas, devolvé todas.
  • -Agregá type hints y al menos tres tests con pytest, incluyendo el texto vacío.

# si te sobra tiempo, te van a preguntar

  • -¿Cómo lo resolverías si el texto es un archivo de 10 GB?
  • -¿Qué complejidad tiene ordenar todo frente a usar heapq.nlargest?
  • -¿Cómo ignorarías palabras comunes como "el", "y" o "de"?
03Reporte de ventas desde un CSVQue sepas leer y limpiar datos reales con la biblioteca estándar, manejando errores y precisión numérica.30 min

Recibís un CSV sales.csv con columnas date,product,quantity,unit_price (por ejemplo 2024-03-01,teclado,2,15000.50). Escribí una función que lo lea y devuelva un diccionario con el total facturado por mes, en el formato { "2024-03": 31001.0, "2024-04": 12000.0 }.

Algunas filas vienen rotas: cantidad vacía, precio con texto o fecha inválida. Esas filas no tienen que cortar el proceso.

# requisitos

  • -Leé el archivo con el módulo csv y un context manager (with open(...)).
  • -Las filas inválidas se saltean y se informa cuántas fueron, con logging y no con print.
  • -Usá Decimal para los montos y justificá por qué.
  • -Los meses del resultado quedan ordenados cronológicamente.

# si te sobra tiempo, te van a preguntar

  • -¿Cómo lo harías con pandas y cuándo te conviene frente a la biblioteca estándar?
  • -¿Qué cambia si el archivo no entra en memoria?
  • -¿Cómo harías para que el reporte también devuelva el producto más vendido por mes?

# leetcode recomendado (Backend · Python · Junior)

EasyTwo SumEl ejemplo clásico de usar un dict para pasar de O(n²) a O(n), base de muchas otras preguntas.
EasyContains DuplicatePractica cuándo un set resuelve en una línea lo que con listas sería lento.
EasyValid PalindromeIntroduce two pointers y limpieza de strings, dos cosas que vas a usar seguido.
EasyMajority ElementSe resuelve con Counter y abre la puerta a discutir una solución O(1) en memoria.
EasyRansom NoteComparar conteos de caracteres es un ejercicio rápido para mostrar Python idiomático.
EasyBig CountriesUn primer SELECT con WHERE y OR para calentar SQL, que en backend siempre aparece.
EasyDuplicate EmailsPractica GROUP BY con HAVING, la forma estándar de encontrar duplicados en una tabla.
$ progreso --live-codingBackend · Python · Junior

ejercicios0/3

leetcode0/7

$ 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