Deja de escribir código de la manera difícil. Así es como los desarrolladores senior utilizan la IA para trabajar de forma más inteligente, no más dura.

Acabo de charlar con uno de nuestros ingenieros sénior. Me ha contado algo que me ha dejado alucinado: «Ya casi nunca escribo código a mano. Solo tengo que escribir lo que quiero en el agente de Cursor y él hace el trabajo».

No he podido más que darle la razón. Ahora, alrededor del 80 % de mi trabajo lo hago así.

Si sabes lo que quieres crear, Cursor puede encargarse de tareas complejas como si fuera un sueño. Hoy voy a compartir exactamente cómo lo uso, además de mis mejores consejos que la mayoría de la gente pasa por alto.

Activa el «modo de ejecución automática» (el cambio revolucionario)

Esta es una función que la mayoría de la gente pasa por alto: Cursor no solo corrige errores de lint. Sigue funcionando hasta que tu código se ejecuta correctamente. Pero primero debes activar el modo de ejecución automática.

Así es como se hace:

  • Ve a Configuración
  • Desplázate hacia abajo y activa el modo de ejecución automática (antes llamado modo YOLO)
  • No te dejes intimidar por el nombre: al principio me parecía arriesgado, pero ahora lo tengo siempre activado

Cuando activas el modo de ejecución automática, puedes configurar avisos personalizados. Estos son los míos:

Siempre se permiten todo tipo de pruebas, como vitest, npm test, nr test, etc.

También se permiten los comandos básicos de compilación, como build, tsc, etc.

Crear archivos y directorios (como touch, mkdir, etc.) también está siempre permitido.

Esto permite al agente ejecutar libremente mkdir, tsc o comprobaciones lint cuando lo desee. ¿El flujo de trabajo más interesante? Ejecuta tsc, encuentra errores de compilación, los corrige y repite el proceso hasta que todo pasa. Es mágico.

Gestiona tareas complejas como un profesional

Déjame mostrarte cómo abordar trabajos complejos con Cursor. Usaré este comando como ejemplo:

«Crea una función que convierta una cadena de marcado en una cadena HTML».

Me encanta este comando porque ninguna IA lo hace bien a la primera. Se necesitan varias iteraciones.

Antes de la IA, escribía código, lo probaba, volvía atrás, pensaba «oh, eso no está bien» y repetía. A veces me sentía como un probador de control de calidad. No estaba mal, pero no siempre era divertido.

Por eso se inventaron las pruebas automatizadas y el TDD. Normalmente no me gusta el TDD, pero ¿con la IA? Es diferente. Añade una línea a tu indicación y mejórala 1000 veces:

«Escribe primero las pruebas, luego el código, luego ejecuta las pruebas y actualiza el código hasta que las pruebas pasen».

Ahora Cursor se encarga de todo. No necesito aprobar la creación de directorios de pruebas ni añadir archivos de contexto de ejemplo. Cursor examina package.json y determina lo que necesita para las pruebas. Muy inteligente.

Observa cómo funciona la IA (pero mantente alerta)

Esto es lo interesante: cuando crea archivos de prueba, el código de Cursor tiene más probabilidades de funcionar correctamente que el código típico generado por IA. Si las pruebas se superan, significa que el código realmente hace algo bien.

Después de escribir el código de implementación, ejecuta las pruebas. ¿Han fallado seis pruebas? No hay problema. Como he configurado el modo de ejecución automática para que gestione las pruebas automáticamente, sigue corrigiendo el código hasta que las pruebas se superan. Y yo no hago nada.

Pero no puedes simplemente marcharte. La IA a menudo toma caminos extraños. Cuando eso ocurre, pulso el botón de parada y digo: «Espera, un momento. Estás implementando esto de una forma muy extraña. Reinicia, recalibra y vuelve a la pista».

Aun así, en mi caso, ¡todas las pruebas acabaron pasando!

Basarse en pruebas existentes

Otra característica interesante de Cursor: puedes ampliar el trabajo basándote en pruebas existentes. Por ejemplo, puedo decir: «Añade algunos casos de prueba más y asegúrate de que el código pasa todo».

En otro proyecto, trabajo con varios compiladores y convertidores para una herramienta de construcción. Uno de los convertidores lanzaba errores de vez en cuando. ¿Qué hago? Cada pocos días, cojo el código de los registros que no se convierte, lo pego en Cursor y digo:

«Ejecuta este código, mira qué es lo que no se compila, escribe pruebas para esos problemas y, a continuación, actualiza el código hasta que todas las pruebas se superen».

Es increíble. Sigo añadiendo nuevos casos cada pocos días. Es una forma estupenda de hacer que el código sea más robusto.

Corregir errores de TypeScript al instante

Aquí hay otro consejo que me encanta.

Digamos que llevo un tiempo programando y me doy cuenta de que tengo problemas con TypeScript. Ejecuto la compilación y veo errores por todas partes. Voy a Cursor y le ordeno:

«Tengo algunos errores de compilación. Ejecuta nr build para ver los errores, luego corrígelos y ejecuta build hasta que pase».

Así es como termino la mayor parte de mi trabajo. Cuando se programa de una sola vez, se obtienen muchos problemas de lint y de tipo. Literalmente le pido a Cursor que los corrija todos.

Siempre creo un comando «pre-PR» en cada proyecto. Este incluye los scripts más rápidos de la fase de compilación. No incluye pruebas E2E de CI (que rara vez fallan), sino herramientas sencillas como tsc, Prettier y ESLint que pueden indicar si la compilación de CI fallará.

A continuación, ejecuto Cursor y dejo que corrija el PR hasta que todo pase. Funciona bastante bien incluso en proyectos grandes y complejos.

Depuración con registros (muy eficaz)

Cuando se trata de problemas complejos y difíciles, es muy útil que Cursor genere registros y utilizarlos para resolverlos. Este es mi enfoque:

  1. Añadir registros: «Añade registros al código para que pueda entender mejor lo que está pasando dentro. Ejecutaré el código y compartiré los resultados del registro contigo».
  2. Cursor añade código de registro en puntos clave
  3. Ejecuto el código y recopilo registros
  4. Vuelvo a Cursor: «Aquí están los resultados del registro. ¿Qué problemas ves ahora? ¿Cómo deberíamos solucionarlos?».
  5. Pego los resultados del registro para que Cursor los analice

Este enfoque proporciona a Cursor información más específica con la que trabajar. Es como proporcionar un informe de diagnóstico sobre lo que ocurre dentro de tu código.

De esta manera, Cursor puede hacer sugerencias de corrección mucho más precisas basadas en el comportamiento real del código, no solo en el análisis estático.

Este método es especialmente eficaz para resolver errores complicados que son difíciles de identificar con solo mirar el código. Es como tener un desarrollador junior inteligente que añade registros, ejecuta el código e interpreta los resultados.

Domina los comandos K y I

Te voy a enseñar algunos atajos de Cursor muy útiles que quizá conozcas o quizá no. Son realmente prácticos para el trabajo diario.

El comando K es ideal para correcciones rápidas. Por ejemplo, quizá quieras mantener el contenido original, pero reducir el tamaño de todas las fuentes. Selecciona el bloque de código, pulsa Comando K y simplemente dile a Cursor lo que quieres.

Comando I abre la ventana del agente. Si seleccionas algún código y pulsas Comando I, el código seleccionado se incluye automáticamente en el contexto del agente. Es muy útil para modificar o discutir fragmentos de código.

La razón principal por la que utilizo Comando K en lugar de Comando I es la velocidad. Comando K solo funciona con el código seleccionado, por lo que es muy rápido. La interfaz de usuario en línea también es bastante limpia, lo que la hace sencilla y agradable de usar.

Usa Comando K en Terminal

Comando K en Terminal es otra de mis funciones favoritas. Me encanta usarla para reducir la cantidad de tecleo. Por ejemplo, digo «enumera las 5 ramas creadas más recientemente» y el comando se ejecuta automáticamente.

Ya no memorizo comandos git complejos. En cambio, tengo más tiempo y espacio mental para resolver problemas más importantes. Cursor hace lo que quiero, y por eso me encanta esta herramienta.

Equilibra la ayuda de la IA con las habilidades de codificación

La gente suele preguntar: «¿Usar herramientas de IA como Cursor no me hará perder mis habilidades de codificación?». Es una preocupación lógica, pero yo pienso de otra manera.

Si definimos las «habilidades de codificación» como la capacidad de crear productos excelentes mediante un código excelente (que es lo que realmente quieren la mayoría de las empresas), no creo que sea necesario codificar a mano todo el día, todos los días, para mantener o mejorar esta capacidad.

La IA automatiza las tareas repetitivas y básicas, lo que ahorra tiempo y energía mental para que puedas centrarte en problemas más difíciles. Por ejemplo, yo utilizo la función Composer de Cursor para crear rápidamente interfaces de usuario y luego intervengo personalmente cuando me encuentro con problemas complejos para perfeccionarlos con precisión.

No creo que exista un mundo en el que se puedan completar productos enteros solo con programación intuitiva. Nunca he visto a nadie hacerlo y no creo que sea posible en el futuro. Aunque las herramientas de IA siguen mejorando, algunas áreas ya parecen haber alcanzado sus límites de crecimiento.

Siempre nos enfrentaremos a situaciones en las que tendremos que modificar el código e implementar cosas directamente. Si no sabes programar y no sabes cómo depurar, esas son habilidades importantes que debes aprender. Al programar, sin duda te encontrarás con obstáculos y tendrás que resolverlos tú mismo.

Creo que la IA ayuda más a los desarrolladores senior. La mejor estrategia para todos es desarrollar la mayor capacidad de desarrollo posible y luego añadir la ayuda de la IA. Pero lo importante es comprender y manejar adecuadamente el código que crea la IA.

Si sigues escribiendo código, tus habilidades de programación mejorarán de forma natural. Y lo que es más importante, podrás desarrollar capacidades prácticas como la productividad y la eficiencia. Prefiero a los desarrolladores que utilizan bien herramientas como Cursor antes que a los que intentan programar todo a mano.

Quiero desarrolladores que sepan trabajar de la forma más ligera y rápida posible. No se pueden dedicar 8 horas al día solo a problemas difíciles. Pero creo que dedicar 4 horas a implementar rápidamente la interfaz de usuario por intuición y luego 2 horas a centrarse intensamente en problemas complejos a mano produce resultados mucho mejores.

Conclusión

En general, Cursor es una herramienta fantástica. Si solo utilizas las funciones de autocompletado, es posible que te estés perdiendo el verdadero valor de esta herramienta. Asegúrate de probar también funciones avanzadas como la funcionalidad de agente. Es importante aprender por experiencia qué flujos de trabajo se adaptan bien, qué tareas funcionan mejor con los agentes y qué métodos son útiles para las pruebas.

El objetivo principal es ofrecer mejores productos a los clientes y contribuir a los beneficios de la empresa. Las herramientas de IA son medios auxiliares para ayudar a alcanzar este objetivo de forma más eficiente. Pero no olvides la importancia de tus propias habilidades de programación y resolución de problemas.

Estos son mis mejores consejos sobre Cursor. Pruébalos tú mismo y comprueba cómo mejora tu flujo de trabajo.