Ganancias:
- Capacidad para explicar cómo funciona un asistente de codificación como modelo de lenguaje y los conceptos de token, ventana de contexto y alucinación.
- Capacidad para distinguir tareas de software en las que la IA es fuerte y débil con un mapa mental
- Capacidad para aplicar el ciclo de trabajo básico de proponer-producir-verificar a sus propias tareas.
El día de un desarrollador de software rara vez se dedica a "escribir código desde cero". Tiempo real; Leer el código escrito por otra persona, intentar reproducir un error, escanear el registro (líneas de registro producidas por la aplicación mientras se ejecuta), escribir pruebas, escribir una PR (solicitud de extracción: una solicitud de fusión donde se envía un cambio de código para revisión del equipo) explicación y actualización de la documentación. La inteligencia artificial (IA) es un multiplicador de velocidad que puede afectar a casi todos estos trabajos invisibles. Pero la primera condición para utilizarlo de forma segura es comprender correctamente qué es y qué no es.
En esta unidad, primero explicamos la tecnología subyacente de un asistente de codificación en un lenguaje sencillo; luego creamos un mapa mental de las fortalezas y debilidades del modelo; Finalmente, establecemos la disciplina de trabajo básica que utilizaremos a lo largo de todo el módulo: proponer, producir, verificar. Estos tres pasos son la columna vertebral de las siguientes once unidades.
Nota: Este módulo es una capacitación general. En el software crítico para la seguridad (procesamiento de pagos, atención médica, autenticación, infraestructura crítica), la salida de IA no sustituye la revisión y aprobación por parte de un ingeniero calificado. La IA es un asistente; El firmante es el ingeniero.
¿Qué hace realmente un asistente de codificación?
La mayoría de los asistentes de codificación se basan en un modelo de lenguaje grande (LLM, una IA entrenada con grandes cantidades de texto y código que predice el siguiente "fragmento" más probable). El modelo no "entiende" el código como un humano; Genera la continuación más probable del contexto que le proporcionas, en función de los patrones que aprende de una gran cantidad de ejemplos. Este mecanismo aparentemente simple produce resultados sorprendentemente competentes en la práctica, porque la mayoría del software consiste en patrones repetidos: una solicitud HTTP, un bucle, una verificación nula, un patrón de prueba.
Tres términos son críticos aquí. Token es la unidad más pequeña que procesa el modelo al dividir el texto; Son aproximadamente unas pocas letras o parte de una palabra. La ventana de contexto es la cantidad de tokens que el modelo puede "ver" a la vez; Su código, mensaje de error e instrucción deben caber en esta ventana. Un mensaje son todas las instrucciones y el contexto que le das al modelo. La calidad del resultado que obtenga depende directamente de estos dos: cuanto mejor contexto e instrucciones más claras le dé al modelo, mejor resultado obtendrá. Una mala entrada produce una mala salida, incluso si se trata de un modelo inteligente: la clásica regla del software de “basura entra, basura sale” también se aplica a la IA.
Mapa de Fortalezas y Debilidades
Para dirigir la IA hacia los trabajos correctos, es necesario saber dónde brilla y dónde tropieza. Memorizar este mapa te hará preguntarte en cada próxima misión: "¿Debería subcontratar este trabajo a la IA o hacerlo yo mismo?" Te permite responder la pregunta en segundos.
Sus puntos fuertes son: generar código repetitivo, traducir de un idioma a otro, escribir una expresión regular (regex), describir una función, crear un esqueleto de prueba, interpretar un mensaje de error, redactar documentación, sugerir nombres de variables/funciones y refactorizaciones menores (mejorar la estructura del código sin cambiar su comportamiento).
Debilidades: conocer las reglas comerciales específicas de su empresa, recordar toda la base de su código, ejecutar y verificar el código, conocer con seguridad las últimas versiones de la biblioteca, detectar vulnerabilidades de seguridad con una garantía del cien por cien. Lo más peligroso es la alucinación: el modelo inventa una función, biblioteca o API (interfaz que permite el intercambio de datos entre aplicaciones) inexistente en un lenguaje muy convincente. En realidad, este riesgo puede aprovecharse, ya que el código, a diferencia del texto sin formato, se puede probar para ver si “funciona”; pero no se salte el paso de verificación.
Tipo de misión
El papel de la IA
el papel del hombre
Producir texto estándar/esqueleto
produce borrador
Se adapta, revisa
Descripción del código
Da un resumen rápido
Verifica la parte crítica en el código.
pruebas de escritura
El caso sugiere
Confirma la cobertura y la precisión.
Lógica crítica para la seguridad
idea útil
La decisión y la responsabilidad recaen enteramente en los humanos.
Uso de API/biblioteca
Genera muestra
Verifica existencia y versión.
decisión arquitectónica
tipos de opciones
Selecciona y defiende conociendo el contexto
Paso a Paso: Ciclo Básico de Trabajo
- Aclarar la tarea. Si no puedes escribir lo que quieres en una oración, el modelo tampoco. Cuanto antes se filtre la incertidumbre en los insumos, mayor crece en la producción.
- Dar contexto. Agregue el código relevante, el mensaje de error completo, la versión de idioma/marco y las restricciones al mensaje. No diga "solucionar esto", diga "Python 3.11, FastAPI 0.110; esta función da un error 500, explota cuando el cuerpo de la solicitud está vacío".
- Rol de imposición y formato. Un marco como "Eres un desarrollador senior de Go; solo proporciona el código y una justificación de dos oraciones" centra el resultado.
- Pregunta por pequeño. Divídalo en pasos en lugar de una solicitud gigante; Verifique cada paso por separado. Los cambios importantes son riesgosos porque son difíciles de verificar y propensos a ocultar errores.
- Verificar. Ejecútelo, pruébelo, léalo visualmente. El código AI no verificado es un "bosquejo", no una "solución". Este es el paso más innegociable del ciclo.
Tres mini estuches
Caso 1: El ahorro de tiempo es real pero modesto. Cuando un equipo esqueletizó nuevos puntos finales CRUD (Crear-Leer-Actualizar-Eliminar) con IA, el tiempo del primer borrador se redujo de aproximadamente 40 minutos a 8 minutos. Sin embargo, con la revisión y las pruebas, el tiempo total fue de 25 minutos; entonces la ganancia real es de 40 a 25, alrededor del 38%. Este ritmo, medido en lugar de la expectativa de "hemos acelerado 10 veces", es una ganancia sostenible.
Caso 2: Las alucinaciones son costosas. Un desarrollador utilizó la llamada request.get_json() sugerida por IA sin validación; No existía tal método (precisamente Response.json()). Se perdieron 20 minutos cuando el código no se compiló. Un simple "¿existe realmente este método?" la verificación restablecería la pérdida.
Caso 3: un buen contexto duplica el resultado. Para el mismo error, un desarrollador simplemente escribió "Recibo un error" y el otro agregó el seguimiento completo de la pila, la versión y la muestra de entrada. Este último consiguió la solución correcta en el primer intento; El primero pasó tres turnos. La diferencia no estaba en el modelo, sino en la entrada.
Cuatro plantillas copiables
Un mensaje de inicio potente y de propósito general:
Rol: Eres un desarrollador experimentado en {{idioma}}. Tarea: {{qué_quiero}}Contexto: - Marco/versión: {{framework_and_version}}- Restricciones: {{rendimiento, estilo, reglas de dependencia}}Reglas: - No utilices una biblioteca/función inexistente; Si no está seguro, márquelo como "verificar". - Primero, da un plan breve, luego el código, luego 2 frases de justificación. - Producir código funcional y comprobable.
Para filtrar la incertidumbre nuevamente en el modelo:
Antes de resolver la siguiente tarea, enumere AL MENOS 3 puntos que le parezcan faltantes o poco claros como preguntas. NO escriba código antes de responder. Tarea: {{task}}
Para que la salida se autoverifique:
Ha producido el siguiente código. Ahora cambie su rol y critique este código: - Enumere 3 casos (casos extremos) que podrían no funcionar. - ¿Hay alguna API/función que podría haber inventado? Marca.- Dar versión corregida. Código:{{code}}
Para dividir una decisión en opciones:
Sugiera 2 o 3 enfoques de solución para {{problema}}. Para cada uno: breve descripción, más/menos, cuándo elegir. Dar en forma tabular. NO elijas por mí; solo aclara la opción.
Aviso débil / Aviso fuerte
Débil: "Corregir el error en este código". (¿Qué error? ¿Qué idioma? ¿Cuál es el comportamiento esperado?)
Fuerte: "Python 3.11 / FastAPI 0.110. El siguiente punto final devuelve 500 con KeyError cuando el cuerpo de la solicitud está vacío; quiero que devuelva 400 y un mensaje significativo en un cuerpo vacío. Primero explique el motivo, luego proporcione la función corregida y luego escriba una prueba para este escenario. [código]"
Versión potente; Proporciona el idioma, la versión, el error real, el comportamiento esperado y el formato de salida. El modelo ya no tiene que predecir.
Errores comunes
- Confiar sin verificación. El error más común y más caro. No diga "resuelto" hasta que el código esté compilado y probado.
- Hacer preguntas sin contexto. La respuesta sin versión, texto de error ni restricciones es genérica y, a menudo, incorrecta.
- Una gran petición. No poder solicitar y revisar una producción de 300 líneas a la vez hace que los errores sean invisibles.
- Confundir la confianza en sí misma de la modelo con una prueba. La IA puede decir algo incorrecto con confianza; El tono no es un indicador de precisión.
- Pegar aleatoriamente el secreto de la empresa. Las claves privadas, los datos de los clientes o el código fuente privado no deben introducirse en herramientas no aprobadas (profundizaremos en este tema en la unidad 10).
Consejo: trate cada resultado de IA como "esto es un borrador". Este único hábito mental extingue la mayoría de los riesgos que verá a lo largo del módulo.
En resumen
Un asistente de codificación es un modelo de lenguaje que predice el siguiente fragmento más probable; No entiende el código, produce patrones. Por eso es fuerte en trabajos repetitivos y formulaicos; Debe usarse con precaución para trabajos que requieran una verificación específica de su contexto. El mayor riesgo es la alucinación y el único antídoto es la verificación. La disciplina que seguiremos a lo largo de todo el módulo es clara: aclarar la tarea, dar contexto, pedir pequeñas cosas, validar cada entregable.
Tarea de aplicación
Escriba tres tareas de software que realizó durante la última semana (por ejemplo, una corrección de errores, una prueba, una actualización README). Mire el “mapa de fortalezas y debilidades” de cada uno y describa en una oración cuál sería su papel y el de la IA si la IA hiciera esto. Luego, asigne una de estas tareas a la IA con la plantilla de "mensaje de inicio" anterior y ejecute y verifique el resultado; Tenga en cuenta cuántos minutos guardó y cuántos errores tuvo que corregir.
lista de verificación
- [] Me di cuenta de que LLM produce patrones, no "entiende" el código.
- [] Puedo explicar los conceptos de token, ventana de contexto y aviso en una oración.
- [] Puedo distinguir entre tipos de tareas en las que la IA es fuerte y débil.
- [ ] Sé lo que es una alucinación y el único antídoto es la verificación.
- [ ] Adapté el ciclo "proponer, producir, verificar" a mi propia tarea.
- [ ] Puedo mostrar la diferencia entre un mensaje fuerte y uno débil en un ejemplo concreto.