Claude Code Course

De 0 a ■■■■ amo

La herramienta que está cambiando la forma de desarrollar software

Sesión 1

Fundamentos y Workflow

El mundo ha cambiado

10x

velocidad de desarrollo reportada por equipos que usan coding agents

La pregunta ya no es si adoptar IA en el desarrollo.
Es cuánto estás perdiendo cada semana sin ella.

¿Qué problemas resuelve?

  • Horas haciendo boilerplate, tests rutinarios, migraciones
  • Context-switching entre documentación, terminal, editor, navegador
  • Deuda técnica que nunca tiene prioridad suficiente
  • Onboarding lento en proyectos nuevos o legacy
  • Pasamos de ser escritores de código a arquitectos

Claude Code no te reemplaza. Te amplifica.
Tú decides qué hacer. Él ejecuta.

No es un chatbot. Es un agente.

ChatGPT / Copilot
  • Contexto: lo que pegas o el archivo actual
  • Solo sugiere texto
  • Vive en el navegador o el IDE
  • Tú copias, pegas, adaptas
Claude Code
  • Contexto: tu proyecto completo
  • Lee, edita, ejecuta, testea
  • Vive en tu terminal
  • Él hace. Tú revisas.

Se acabó escribir código
y hacer code reviews

Claude lee, entiende y escribe código más rápido que cualquier desarrollador.

Y no se cansa. No se distrae. No se deja cosas.

Tu trabajo ya no es escribir código.
Tu trabajo es dirigir a quien lo escribe.

Esto es lo que hace en proyectos reales

Ejemplos reales de trabajo con Claude Code

Refactoring

Desarrollo de nuevas features

Trabajar con código legacy

Code quality tools

¿Todos listos?


claude --version
						

Si alguien necesita instalarlo:


# macOS / Linux
curl -fsSL https://claude.ai/install.sh | bash

# Homebrew
brew install --cask claude-code
						

cd mi-proyecto
claude
						

Mi setup

Para que entendáis lo que veis en pantalla:

  • Arch Linux
  • Hyprland — tiling window manager
  • Neovim como editor
  • Tmux — multiplexor de terminal
  • Terminal lover 🤘

Quién soy y por qué estoy aquí

Instructor

La hora de Claude

Habla con tu código

No pegues código. Referencia archivos directamente.

> qué hace @src/auth.ts ?
Exports validateToken() which checks JWT expiry and signature.

Referencias precisas

  • @archivo — fuzzy-find, adjuntar archivo completo
  • @carpeta/ — adjuntar un directorio entero
  • src/app.ts:42 — referencia a línea específica
Dejas de copiar y pegar. Claude lee tu proyecto como lo leerías tú.

Cómo introducir prompts

Tres trucos que marcan la diferencia en el día a día.

Abrir el prompt en tu editor

Ctrl+G abre tu editor por defecto (Neovim, VS Code...)

  • Escribe prompts largos con comodidad
  • Syntax highlighting, multilinea, copiar/pegar
  • Al guardar y cerrar, se envía el prompt

También: Ctrl+X Ctrl+E (readline nativo)

Stashing del prompt

Estás escribiendo un prompt y necesitas hacer otra cosa antes:

  • Ctrl+S o Ctrl+U — guarda y limpia la línea actual
  • Ctrl+Y — la recupera cuando quieras

Como un stash de git, pero para tu prompt.

Pegar imágenes

Ctrl+V pega una imagen del portapapeles directamente.

  • Screenshots de bugs, diseños, diagramas
  • Claude los interpreta y trabaja con ellos
  • Aparecen como [Image #N] en tu prompt

Tú decides cuánto control das

shift+tab cicla entre los 3 modos principales:

default Pregunta antes de cada edición accept edits Edita libremente, pide permiso para comandos plan Solo investiga y propone. No toca nada.

Modo adicional: claude --permission-mode auto

auto Claude decide qué es seguro. Un clasificador de seguridad revisa cada acción.

Requiere: plan Team/Enterprise/API • Sonnet 4.6 o Opus 4.6 • Anthropic API. No disponible en Pro/Max.

¿Cuándo uso cada uno?

  • plan — "Quiero entender antes de tocar" (refactors, arquitectura)
  • default — "Voy aprendiendo, quiero ver cada paso"
  • accept edits — "Confío en las ediciones, pero los comandos los reviso"
  • auto — "Tengo un spec claro y quiero irme a por café"

/permissions para pre-autorizar comandos específicos sin cambiar de modo

Elige el modelo adecuado

/model para cambiar en cualquier momento

Opus Máxima capacidad. Problemas complejos, arquitectura, bugs difíciles. Sonnet El equilibrio. El día a día de la mayoría. Haiku Rápido y barato. Preguntas simples, ediciones triviales.

Ajusta esfuerzo y velocidad

  • /efforthigh para bugs complicados, low para ediciones rápidas
  • /fast — mismo modelo, output más rápido
Más potencia cuando importa. Más velocidad cuando no. Tú decides.

Gestión de contexto

Cada sesión empieza con una ventana de contexto limpia.
Dos mecanismos llevan conocimiento entre sesiones:

  • CLAUDE.md — instrucciones que escribes
  • Auto memory — notas que Claude escribe solo
La calidad de tu contexto determina la calidad del output. Este es el tema más importante del curso.

1M tokens: ¿cuánto es?

  • 1 token ≈ 4 caracteres de código
  • ~75,000 líneas de código caben en una sesión
  • Un archivo típico (300 líneas) ≈ 1,000-2,000 tokens

Para hacerse una idea: 1M tokens ≈ 750,000 palabras

  • 2 Quijotes completos (380K palabras cada uno)
  • Guerra y Paz entero y sobra (580K)
  • Casi toda la Biblia (775K)
Es como tener un compañero que puede leer tu proyecto entero antes de responder.

CLAUDE.md: ejemplo


# Mi Proyecto

## Stack
- TypeScript, Node.js, PostgreSQL

## Convenciones
- Tests con vitest: npm test
- Estilo: prettier + eslint
- No tocar: migrations/, vendor/

## Reglas del equipo
- Siempre tests antes de commit
- Commits en español
						

Lo pones en la raíz del repo. Claude lo lee al inicio de cada sesión.

Cuatro niveles, de más amplio a más específico

ScopeUbicaciónCompartido con
Managed policy /etc/claude-code/CLAUDE.md Toda la org
Proyecto ./CLAUDE.md Equipo (via git)
Personal ~/.claude/CLAUDE.md Solo tú (global)
Local ./CLAUDE.local.md Solo tú (proyecto)

Los más específicos tienen mayor precedencia. Se concatenan, no se sobreescriben.

Progressive disclosure: no todo se carga siempre

Claude Code carga el contexto por capas, solo cuando lo necesita:

  • Siempre — CLAUDE.md en la raíz y directorios padre
  • Al acceder a archivos — CLAUDE.md en subdirectorios + rules con paths:
  • Bajo demanda — topic files de auto memory, skills invocados
Esto es clave: no sobrecargues el CLAUDE.md raíz. Distribuye las reglas donde correspondan.

.claude/rules/ — reglas modulares


.claude/
  CLAUDE.md
  rules/
    code-style.md     # siempre cargado
    testing.md        # siempre cargado
    api-design.md     # solo con archivos de src/api/
						

# .claude/rules/api-design.md
---
paths:
  - "src/api/**/*.ts"
---
# API Rules
- Todos los endpoints incluyen validación de input
- Usar el formato estándar de error
						

Sin paths: se carga siempre. Con paths: solo al trabajar con archivos que coinciden.

Imports: @path

CLAUDE.md puede importar otros archivos:


See @README for project overview.
See @package.json for npm commands.

# Additional Instructions
- git workflow @docs/git-instructions.md
						
  • Rutas relativas o absolutas
  • Los imports se expanden y cargan al inicio de la sesión
  • Hasta 5 niveles de profundidad

Auto memory: Claude aprende solo

Claude guarda notas para sí mismo entre sesiones:


~/.claude/projects/<proyecto>/memory/
  MEMORY.md           # índice (200 líneas max en contexto)
  debugging.md        # notas sobre debugging
  api-conventions.md  # decisiones de API
						
  • Se activa/desactiva con /memory
  • Solo las primeras 200 líneas de MEMORY.md se cargan al inicio
  • Los topic files se leen bajo demanda
  • Son markdown plano: puedes editarlos o borrarlos

Comandos clave


/init       # genera CLAUDE.md desde tu codebase
/memory     # ver ficheros cargados, toggle auto memory
						
Buenas prácticas:
• CLAUDE.md raíz: < 200 líneas, concreto, sin conflictos
• Reglas específicas → .claude/rules/ con paths:
• Preferencias personales → ~/.claude/CLAUDE.md o CLAUDE.local.md
• Deja que auto memory aprenda el resto

Conecta tus herramientas

Slack, bases de datos, navegador, Notion, calendario...
Claude accede a todo desde el terminal.

MCP: Model Context Protocol

Un protocolo abierto para conectar herramientas externas.

> ¿algo urgente en #engineering?
slack · reading channel...

Hay 2 mensajes que requieren atención:
1. @pedro reportó un bug en prod...

# Añadir un servidor en un comando
claude mcp add slack -- npx @anthropic/mcp-slack

# O explorar el marketplace
/mcp
						

Mi setup del día a día

  • Chrome DevTools / Agent Browser — debugging visual, screenshots, navegar la app
  • Context7 — documentación actualizada de cualquier librería
  • Serena — buscar símbolos, referencias, navegar el código semánticamente
  • GitNexus — knowledge graph del codebase: dependencias, call chains, breaking changes
  • Sequential Thinking — razonamiento paso a paso para problemas complejos
  • Grill me — desafía tus decisiones antes de implementar
  • N8N — automatización: conecta Claude con cientos de servicios externos

Todo es reversible

Si algo va mal: Esc Esc

parser.ts restored
> try a simpler approach
thinking...

Tu red de seguridad

  • Esc Esc/rewind — vuelve a cualquier estado anterior (código y conversación)
  • /clear — limpia la conversación, mantiene tus archivos
  • El historial de git siempre queda limpio
No hay riesgo en probar. Siempre puedes volver atrás.

No esperes. Sigue trabajando.

Builds, tests, tareas largas... todo en background.

> fix the lint in app.ts
Removed unused import
bun test · 28s

Background tasks

  • Pide "ejecuta esto en background" para que Claude lance tareas asíncronas
  • Ctrl+B mientras se ejecuta un comando bash o agente → lo envía al fondo
  • Claude monitoriza el output y reacciona a fallos automáticamente
  • Sub-agents también corren como tareas en background

Multiplícate

Un Claude. Tres tareas. Al mismo tiempo.

Sub-agents

> find any error handling bugs
Spawning 3 agents...

  • Claude lanza copias de sí mismo en paralelo
  • Cada una investiga una parte del codebase
  • Los resultados se consolidan automáticamente
  • Define agentes personalizados en .claude/agents/

Worktrees: ramas aisladas


claude --worktree
						
Sin worktree

"Espera, tengo que hacer stash de lo que estoy haciendo para atender este hotfix..."

Con worktree

"Lanzo un worktree para el hotfix. Sigo con mi feature. Los dos avanzan."

Retoma donde lo dejaste

Las sesiones de Claude Code se guardan. Puedes volver a ellas.

Continuar y retomar


# Continuar la última sesión de este directorio
claude -c

# Nombrar una sesión para encontrarla después
claude -n "auth-refactor"

# Retomar una sesión específica
claude -r "auth-refactor"
						

Dentro de una sesión: /resume para explorar y seleccionar sesiones anteriores

Contexto en sesiones largas

  • /compact — comprime el contexto cuando se llena. CLAUDE.md se recarga fresco desde disco.
  • /clear — limpia la conversación, mantiene archivos. La sesión anterior sigue disponible para retomar.
Caso real: trabajar en una feature durante varios días, retomando cada mañana con claude -c

Recapitulemos

Sesión 1


  • @ para hablar con tu código
  • shift+tab para controlar cuánto autonomía das
  • CLAUDE.md para enseñarle tus reglas
  • /mcp para conectar tus herramientas
  • Esc Esc para volver atrás cuando quieras
  • --worktree para trabajar en paralelo

Para la próxima sesión

Cómo utilizar Claude y usar un proyecto real