Las herramientas que de verdad usan los desarrolladores
Arnold Wender · · 11 min de lectura
Ver todo: ProgramaciónCada semana aparece un artículo nuevo con “las 50 herramientas imprescindibles para desarrolladores en 2026”. La mayoría son listas de marketing disfrazadas de consejo técnico, llenas de servicios SaaS y extensiones oscuras que nadie usa en producción.
Esta guía es diferente. No es exhaustiva a propósito. Cubre las categorías que realmente importan en el flujo de trabajo diario de un desarrollador, explica el por qué de cada elección, y es honesta sobre los trade-offs.
El ecosistema completo está en Programación.
Lo que sí necesitas (y lo que no)
- VS Code domina el desarrollo web y general — la comunidad de extensiones es enorme y el LSP es excelente
- Git no es opcional — es la infraestructura fundamental del desarrollo de software moderno
- pnpm sobre npm para proyectos JavaScript nuevos; uv reemplaza pip+venv+poetry en Python
- Docker vale la pena para infraestructura local (PostgreSQL, Redis) y stacks complejos — pero es overkill si estás aprendiendo
- No sobre-configures tu entorno antes de saber programar — el IDE más productivo es el que ya conoces
- Los IDE de JetBrains son la respuesta correcta para Java/Kotlin; Xcode es obligatorio para Swift/iOS
Editor vs. IDE: la distinción que importa
La primera pregunta del setup: ¿necesitas un editor o un IDE?
Un editor de código (VS Code, Neovim, Emacs, Sublime Text) es extensible: parte liviano y añades funcionalidad mediante plugins. Puedes usarlo para cualquier lenguaje configurando las extensiones correctas.
Un IDE (IntelliJ IDEA, PyCharm, Xcode, Android Studio) viene con un conjunto de herramientas integradas específicamente para un ecosistema: refactoring inteligente, depurador, profiler, gestión de build. Es más pesado en recursos pero la integración profunda justifica eso en ciertos dominios.
La distinción se borroneó bastante en los últimos años porque los Language Server Protocol (LSP) permiten que editores livianos tengan funcionalidades de IDE — autocompletado inteligente, ir a definición, refactoring asistido — via servidores de lenguaje externos.
EL EDITOR
La situación real por ecosistema
Para desarrollo web (JS/TS, Python, Go): VS Code domina. La comunidad de extensiones es inmensa, el soporte de LSP es excelente, y Microsoft ha invertido años en hacerlo rápido y estable. No hay razón para complicarse aquí.
Para Java/Kotlin y el ecosistema JVM: IntelliJ IDEA es la respuesta correcta. El refactoring y la comprensión del código que ofrece IntelliJ no tiene competencia real fuera de su ecosistema.
Para iOS/macOS en Swift: Xcode es obligatorio, no opcional. No hay alternativa viable.
Para Rust: tanto VS Code (con rust-analyzer) como Neovim funcionan muy bien. La elección es preferencia personal.
Para quienes invierten tiempo en aprender, Neovim configurado correctamente es el editor más eficiente para edición pura de texto. La curva de aprendizaje es genuinamente pronunciada, pero la comunidad de plugins moderna (en Lua) y la velocidad lo hacen atractivo para quienes pasan horas editando código todos los días.
Control de versiones: Git sin rodeos
Git no es opcional. Es la infraestructura fundamental del desarrollo de software moderno. No saber Git es como no saber conducir en una ciudad sin transporte público: puedes sobrevivir, pero vas a estar limitado constantemente.
Los conceptos que tienes que tener claros:
- Commit: snapshot del estado de tu código en un momento dado
- Branch: línea paralela de desarrollo
- Merge/Rebase: formas de integrar cambios entre branches
- Remote: el repositorio en un servidor (GitHub, GitLab, Gitea)
- Pull Request / Merge Request: mecanismo de revisión de código antes de integrar cambios
El flujo que usa la mayoría de equipos
main (producción)
└── develop (integración)
└── feature/nombre-feature (tu trabajo)
Cuando terminas tu feature, abres un Pull Request de feature/nombre-feature → develop. Un compañero revisa el código. Se aprueba, se mergea. Cuando develop está estable, se mergea a main y se despliega.
Hay variantes (Git Flow, trunk-based development, etc.), pero el principio es el mismo: nadie trabaja directamente en main en un equipo serio.
Git no es opcional. Es la infraestructura fundamental del desarrollo de software moderno — no saber Git limita todo lo demás.
GitHub vs. GitLab vs. Bitbucket
GitHub
Para la mayoría de proyectos
- Comunidad open source más grande del mundo
- GitHub Actions para CI/CD sin fricción
- Copilot integrado para asistencia de código
- La opción por defecto para proyectos personales y startups
GitLab
Empresas con compliance estricto
- CI/CD integrado más maduro que GitHub Actions
- Self-hosted gratuito — tus datos en tu servidor
- Mejor para organizaciones con auditoría interna
- Curva de setup mayor que GitHub
Bitbucket
Ecosistema Atlassian
- Integración nativa con Jira y Confluence
- Pipelines integrados para CI/CD
- Solo tiene sentido si ya usas Atlassian
- Mercado más pequeño que GitHub/GitLab
DEPENDENCIAS
Gestores de paquetes y entornos virtuales
Cada ecosistema tiene su forma de manejar dependencias. Aprende el estándar de tu lenguaje.
JavaScript / TypeScript: npm es el gestor original. pnpm es la alternativa moderna: más rápido, usa un almacén central de módulos (evita duplicados en disco), y maneja mejor los monorepos. Para proyectos nuevos: pnpm. También son imprescindibles nvm o fnm (más rápido, en Rust) para manejar múltiples versiones de Node en la misma máquina.
Python: el ecosistema tiene más opciones, lo que genera más confusión. uv es el nuevo estándar — escrito en Rust, extremadamente rápido, reemplaza pip + venv + poetry en la mayoría de casos. Poetry es bueno para proyectos con packaging complejo. venv es el módulo estándar, siempre disponible.
Go: maneja sus dependencias con Go Modules (go.mod), integrado en el lenguaje. No necesitas herramientas externas.
Rust: Cargo es el gestor de paquetes y build system oficial, y es genuinamente uno de los mejores de su clase. La consistencia de experiencia que ofrece es uno de los argumentos a favor del ecosistema Rust.
Contenedores: Docker y cuándo usarlo
Docker empaqueta tu aplicación y todas sus dependencias en un contenedor que corre de forma consistente en cualquier máquina. El clásico problema “en mi máquina funciona” se resuelve con contenedores.
Docker Compose para el flujo de desarrollo
El caso de uso más común en desarrollo local:
services:
postgres:
image: postgres:16
environment:
POSTGRES_PASSWORD: dev_password
POSTGRES_DB: mi_proyecto
ports:
- "5432:5432"
redis:
image: redis:7-alpine
ports:
- "6379:6379"
docker compose up -d levanta Postgres y Redis. docker compose down los apaga. Simple y reproducible.
Tabla de herramientas por categoría
| Categoría | Opción principal | Alternativa | Evitar |
|---|---|---|---|
| Editor (web/general) | VS Code | Neovim | Notepad++, Atom (discontinued) |
| IDE (JVM) | IntelliJ IDEA | — | Eclipse |
| Control de versiones | Git | — | No hay alternativa real |
| Plataforma Git | GitHub | GitLab | — |
| Gestor paquetes JS | pnpm | npm | Bower (obsoleto) |
| Gestor paquetes Python | uv | Poetry | Instalación global sin venv |
| Contenedores | Docker | Podman | Vagrant (para casos nuevos) |
| Base de datos local | PostgreSQL | SQLite (apps simples) | MySQL para proyectos nuevos sin razón |
| HTTP/API testing | Bruno | Hoppscotch | Postman (pesado, requiere cuenta) |
| Gestor versiones Node | fnm | nvm | Instalación global sin manager |
HÁBITOS REALES
Lo esencial del flujo de trabajo profesional
Más allá de herramientas individuales, los mejores desarrolladores tienen hábitos consistentes:
Leer documentación oficial. No tutoriales de terceros, no videos de YouTube (para empezar). La documentación es la fuente de verdad. Aprender a navegar docs eficientemente es una habilidad que se construye con práctica.
Commits pequeños y frecuentes. Un commit debería hacer una sola cosa. “Fix login bug and refactor auth module and update README” no es un commit, son tres. Commits granulares facilitan el debugging (git bisect), la revisión de código y el revert si algo sale mal.
Entender los mensajes de error. El instinto inicial es copiar el error completo en Google. El instinto de un profesional es leer el error primero, entender qué dice, y solo entonces buscar si necesita más contexto.
Usar el debugger, no solo print statements. Todo IDE y la mayoría de editores con plugins tienen debuggers integrados. Aprender a usarlos —breakpoints, inspección de variables, call stack— te ahorra horas comparado con agregar print("llegué aquí") en 15 lugares distintos.
Errores comunes al elegir herramientas
La configuración de la terminal completa el cuadro
Las herramientas que cubrimos aquí —editor, Git, gestores de paquetes, contenedores— son el núcleo. Pero la interfaz desde la que usas todo eso es la terminal, y un entorno de terminal bien configurado multiplica la productividad de todo lo demás.
Si todavía no tienes tu shell y dotfiles en orden, la guía sobre configurar tu terminal y dotfiles cubre exactamente eso: desde elegir el shell hasta versionar tu configuración en Git y las utilidades modernas que sustituyen los comandos clásicos.
Y si estás en el punto de elegir qué lenguaje aprender primero para dar sentido a todas estas herramientas, la guía honesta sobre lenguajes de programación para empezar te ayuda a tomar esa decisión con criterio en lugar de seguir el hype.
FAQ
¿VS Code o Neovim?
VS Code si quieres empezar rápido y trabajar bien desde el día uno. Neovim si estás dispuesto a invertir semanas aprendiendo el editor a cambio de una eficiencia de edición superior a largo plazo. No hay respuesta universal; depende de cuánto tiempo quieres invertir en la herramienta vs. en el código.
¿Necesito aprender Docker si estoy aprendiendo a programar?
No todavía. Aprende a programar primero. Docker tiene un momento natural de necesidad que aparece cuando tu stack se vuelve más complejo o cuando trabajas en equipo. Antes de ese momento, es complejidad innecesaria.
¿GitHub Copilot vale el costo?
Para desarrolladores con 1-2+ años de experiencia que entienden el código que generan: probablemente sí, hay estudios internos de distintas empresas que reportan ganancias de velocidad reales en tareas repetitivas. Para principiantes: no. El riesgo de adoptar código sin entenderlo supera el beneficio de velocidad.
¿Debería usar Windows, macOS o Linux para programar?
Los tres son viables. macOS y Linux tienen ventaja en desarrollo web y backend porque Unix es el sistema nativo de los servidores donde correrá tu código. Windows con WSL2 (Windows Subsystem for Linux) cierra la mayoría de esa brecha. Si ya tienes una máquina con cualquiera de los tres, no la cambies solo para programar.
¿Cuántas extensiones de VS Code son demasiadas?
No hay un número mágico, pero si tu editor tarda más de 3-4 segundos en abrir, probablemente tienes demasiadas extensiones activas. La extensión de LSP de tu lenguaje principal, un formatter, un linter, y quizás un par de utilidades de Git es un set razonable. El resto es adorno.
Fuentes
Las herramientas mencionadas se apoyan en sus fuentes oficiales:
- Git — Proyecto Git
- Neovim — Neovim
- Visual Studio Code — Microsoft