Usar la IA como Programador: Un fragmento de Código vale mas que mil palabras
Índice de contenido
- ¿Se puede programar solo con IA?
- La ilusión de la "caja negra"
- Por qué seguir aprendiendo código es indispensable
- Ventajas y riesgos de usar IA para programar
- Lo que sí hace bien la IA en programación
- Errores comunes y limitaciones
- El rol del programador frente a la inteligencia artificial
- De traductor de ideas a validador de código
- El criterio humano como última palabra
- Comparación con otras IA: Gemini y Perplexity
- Comparativa práctica: ChatGPT vs Gemini vs Perplexity en programación
- ChatGPT: bueno en contexto, pero se equivoca
- Gemini: pierde continuidad
- Perplexity: la sorpresa más útil
- Moralejas finales
- FAQs
¿Se puede programar solo con IA?
La pregunta se repite mucho en foros y redes: ¿vale la pena aprender a programar si existe la IA? La respuesta corta es sí, sigue siendo indispensable. La IA puede generar bloques de código, pero sin entender la lógica detrás, todo se convierte en una caja negra. En mi caso, lo comprobé cuando pedí ayuda a ChatGPT para un modelo en Django Admin: la solución parecía correcta, pero al probarla no funcionaba. Ahí entendí que si no sabes programar, no puedes validar lo que la IA te devuelve.
La ilusión de la "caja negra"
Muchos creen que basta con describir lo que quieren y la IA hará todo. Eso puede servir para prototipos rápidos, pero es peligroso depender solo de eso. Si no sabes leer ni adaptar el código, cualquier error puede bloquearte.
Por qué seguir aprendiendo código es indispensable
Saber programar te permite corregir, adaptar y mejorar lo que la IA genera. Además, sin ese conocimiento, no sabrías ni qué pedirle ni cómo validar las respuestas.
Ventajas y riesgos de usar IA para programar
Lo que sí hace bien la IA en programación
- Generar ejemplos rápidos de código.
- Explicar funciones o librerías desconocidas.
- Acelerar la curva de aprendizaje en un nuevo framework.
En mi experiencia, un fragmento de código bien dado a la IA es como oro: "un fragmento de código vale más que mil palabras".
Errores comunes y limitaciones
- La IA se puede equivocar con detalles técnicos.
- No siempre entiende el contexto completo.
- Puede dar soluciones más complejas de lo necesario (como me pasó en Django).
En resumen: la IA no sustituye al criterio humano.
El rol del programador frente a la inteligencia artificial
De traductor de ideas a validador de código
El papel del programador cambia: antes escribíamos todo desde cero; ahora también revisamos y adaptamos lo que propone la IA. La habilidad clave es saber evaluar.
El criterio humano como última palabra
Un fragmento de código vale más que mil palabras
Cuando quiero una solución precisa, no me limito a escribir: “hazme un CRUD en Django”. Prefiero pasarle código y añadir una breve explicación. Así la respuesta parte de un contexto sólido.
Yo lo vi claro cuando comparé varias IAs. La diferencia no estuvo tanto en la calidad de la respuesta, sino en mi capacidad de decidir cuál solución tenía sentido.
Para programar, usualmente uso la IA presentando un bloque de código seguido de una breve explicación de lo que quiero:
@admin.register(Payment)
class PaymentAdmin(admin.ModelAdmin):
list_display = ('id', 'user', 'orderId', 'price')
class Payment(models.Model):
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
object_id = models.PositiveIntegerField()
paymentable = GenericForeignKey('content_type', 'object_id')
Tengo un campo generic, pero en Django ADmin solamente quiero que peuda ser de tipo Product o Book
Esto para mi es clave ya que, le doy mucho contexto mediante el código y le digo que es lo que quiero que me resuelva.
Para mí, una frase clave aquí es: “un fragmento de código vale más que mil palabras”.
Por eso, en vez de explicarle todo, simplemente le pasé:
- El código principal del PaymentItem.
- La relación que estaba usando.
- Una breve explicación de lo que quería.
Este tipo de prompts casi siempre me funciona.
La solución que me dio fue usar un método interno de Django Admin para modificar estos campos. Me explicó bien la lógica, pero no funcionó, porque el tipo de dato devuelto no era el correcto. En vez de simplificar, complicó más la consulta:
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "content_type":
allowed_models = [Product, Book]
allowed_cts = ContentType.objects.get_for_models(*allowed_models).values()
kwargs["queryset"] = ContentType.objects.filter(id__in=[ct.id for ct in allowed_cts])
return super().formfield_for_foreignkey(db_field, request, **kwargs)
De aquí saco varias conclusiones:
- ChatGPT no es perfecto. Puede equivocarse incluso con consultas sencillas.
- La IA es un asistente, no una solución mágica. Hay que evaluar lo que devuelve y adaptarlo.
- El prompt importa. Un código bien puesto vale más que muchas explicaciones.
- Tienes que saber programar. Si no entiendes lo que pides, ¿cómo vas a validar la respuesta?.
- Siempre hay que emplear más de una herramienta (IA en este ejemplo).
Esto es la clave para mi en el uso de la IA como una herramienta y el mejor uso que le podemos dar como desarrolladores es que, primero nosotros sepamos programar para exprimir e mejor resultado
Muchos que generan apps en segundos con IA no saben realmente qué está pasando en el código.
Eso es peligroso porque ven todo como una caja negra.
Comparación con otras IA: Gemini y Perplexity
Le pasé el mismo prompt y me devolvió una solución que al principio no entendí bien. Creaba un atributo adicional con reglas, cosa que no me convencía. Después noté que sí lo aplicaba al modelo, pero igual la sintaxis no me gustó o no la había entendido al inicio:
limit = Q(app_label='your_app_name', model='product') | Q(app_label='your_app_name', model='book')
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE, limit_choices_to=limit)
Un problema de Gemini: no guarda tan bien el contexto. Con ChatGPT puedo decirle “que es limit” y lo entiende. Gemini, en cambio, muchas veces no conecta con lo dicho antes y me hizo una explicación de que era limit en el SQL, que no tenía nada que ver con la consulta inicial…
Después fui a Perplexity, que casi nadie menciona, y fue la más acertada.
Su respuesta fue justo lo que yo necesitaba:
content_type = models.ForeignKey(
ContentType,
on_delete=models.CASCADE,
limit_choices_to=Q(app_label='mi_app', model='product') | Q(app_label='mi_app', model='book')
)
Necesitaba limitar un campo genérico en mi modelo Payment para que solo aceptara Product o Book. Le pasé el código y pedí ayuda. ChatGPT me dio una opción con formfield_for_foreignkey que no funcionó del todo. Gemini me ofreció otra, pero perdió el hilo del contexto. Finalmente, Perplexity me devolvió justo lo que necesitaba con limit_choices_to. Ese contraste me demostró que usar varias IA en paralelo es clave.
Comparativa práctica: ChatGPT vs Gemini vs Perplexity en programación
ChatGPT: bueno en contexto, pero se equivoca
Ventaja: entiende cuando le das seguimiento a una conversación.
Problema: puede dar soluciones erróneas que parecen correctas.
Gemini: pierde continuidad
Ventaja: respuestas rápidas y concisas.
Problema: al preguntarle por "limit", me respondió sobre SQL, sin relación con el caso de Django. Pierde el contexto.
Perplexity: la sorpresa más útil
Ventaja: sugiere respuestas más ajustadas y con documentación.
En mi caso, fue la que dio la solución correcta al problema del ForeignKey.
Moralejas finales
De todo esto me quedo con 5 puntos:
- Un fragmento de código vale más que mil palabras, ya que, podemos pasarle el contexto de lo que queremos y la respuesta estará basada en este código.
- Saber programar es indispensable. Sin eso, no sabrás ni qué pedir ni cómo validar y con esto, pasarle el código del punto 1.
- No te cases con una sola IA. Usa varias, compáralas y cruza resultados.
- El criterio humano es lo que marca la diferencia.
- En programación, la IA es una gran ayuda, pero la última palabra siempre la tiene el desarrollador.
- No casarse con una sola IA
- Cada herramienta tiene fortalezas y debilidades. Usarlas en paralelo permite contrastar.
- Saber programar primero
- La base sigue siendo el conocimiento humano. Sin él, la IA es solo ruido.
- Usar la IA como copiloto, no como piloto
- La mejor combinación es cuando tú decides el rumbo y la IA acelera el proceso.
FAQs
- ¿Es recomendable aprender a programar si existe la IA?
Sí, porque sin conocimientos básicos no puedes validar ni adaptar lo que la IA genera. - ¿Qué IA es mejor para programar: ChatGPT, Gemini o Perplexity?
Depende del caso. ChatGPT es bueno en contexto, Gemini es más limitado y Perplexity sorprendió por su precisión. - ¿Se puede programar sin saber código usando solo IA?
Puedes, pero no deberías. Te quedarás atado a una caja negra sin capacidad de validar. - ¿Qué riesgos tiene depender demasiado de la IA en programación?
Errores no detectados, código innecesariamente complejo y dependencia total de la herramienta. - ¿Cómo escribir buenos prompts para programar con IA?
Usa fragmentos de código, da contexto y pide explicaciones paso a paso.
Acepto recibir anuncios de interes sobre este Blog.
Analizamos un ejemplo en el cual, en base a un fragmento de código dado, cual es el resultado realizado por 3 IAs y las moralejas de todo esto: - Un fragmento de código vale mas que mil palabras - Saber que es lo que estamos haciendo - La IA más famosa dio la peor respuesta