Nota del editor: con el lanzamiento de ChatGPT, han surgido en el mercado una serie de asistentes de generación de código de inteligencia artificial. La inteligencia artificial generativa está de moda y ha penetrado en todos los aspectos de la vida humana ¿Reemplazará realmente la IA a los programadores humanos? Para los desarrolladores de programas, ¿cómo sobrevivir y desarrollarse en el mundo de ChatGPT? Este artículo compartirá 4 consejos para ayudar a los programadores humanos a mantenerse a la vanguardia de la IA generativa. El artículo es de traducción, espero que pueda inspirarte.
Fuente de la imagen: Generada por Unbounded AI
La inteligencia artificial, especialmente la IA generativa impulsada por modelos de lenguaje grande (LLM), tiene el potencial de alterar toda la industria de los programadores. Pero algunos expertos creen que la IA no reemplazará a los programadores humanos, al menos no de inmediato.
"Tendrá que preocuparse por las personas que usan IA para reemplazarse a sí mismas", dijo Tanishq Mathew Abraham, PhD en ingeniería biomédica de la Universidad de California, Davis, y director ejecutivo de MedARC, un centro de investigación de inteligencia artificial médica. .
Entonces, ¿cómo pueden los desarrolladores de software volverse más valiosos y útiles a medida que se acerca la era de la codificación LLM? Estos son algunos consejos y trucos para que los codificadores sobrevivan y prosperen en la era de la inteligencia artificial generativa.
Adherirse a los principios básicos y las mejores prácticas
Aunque muchos asistentes de codificación basados en IA pueden ayudarnos a escribir y generar código, aún se requiere la capacidad básica para aprender a programar, es decir, la capacidad de leer y analizar código, y comprender cómo el código que escribe se aplica a sistemas grandes. **
"Creo que la inteligencia artificial puede mejorar en gran medida la productividad de los desarrolladores de software, pero la ingeniería de software no se trata solo de generar código, sino también de generar requisitos de usuario, depuración y prueba, y más".
**Una de las habilidades de programación más integrales sigue siendo dominio de los codificadores humanos: la resolución de problemas. ** Analizar un problema y encontrar una solución adecuada sigue siendo una habilidad de codificación muy apreciada.
"La programación tiene su lado creativo, y esas habilidades en la resolución de problemas son más importantes que el lenguaje o las herramientas de programación reales. No se deje atrapar por las comparaciones con la inteligencia artificial, que es más o menos solo el resultado estadístico de un gran modelo de lenguaje. Desarrolladores Hay una diferencia entre lo que haces y lo que genera tu modelo, y como desarrollador, hay más que solo escribir código”, dijo Ines Montani, investigadora de Python Software Foundation y cofundadora y directora ejecutiva de Explosion.
Además, **las buenas prácticas de ingeniería de software son más valiosas que nunca. **Estas prácticas incluyen el diseño del sistema de planificación y la arquitectura del software, y los programadores pueden usar herramientas de inteligencia artificial para predecir de manera más efectiva qué código se necesitará a continuación.
"Los ingenieros de programación tienen que descubrir las estructuras de datos para una pieza de código, las abstracciones correctas para organizar el código y los requisitos para diferentes interfaces. Todos estos son fundamentales para la práctica de la ingeniería de software y no desaparecerán. durante mucho tiempo por venir".
Encuentra la herramienta que se adapta a tus necesidades
Encontrar las herramientas de IA adecuadas es fundamental. Cada herramienta tiene su propia forma de interactuar y cada herramienta se puede integrar en el flujo de trabajo de desarrollo de diferentes maneras, ya sea creando automáticamente pruebas unitarias, generando datos de prueba o escribiendo documentación.
Por ejemplo, GitHub Copilot y otros asistentes de codificación de IA pueden aumentar nuestras habilidades de codificación y brindarnos sugerencias de codificación. ChatGPT y Bard de Google, por otro lado, son más como programadores de IA conversacionales que pueden usarse para responder preguntas sobre una API (interfaz de programación de aplicaciones) o generar fragmentos de código.
**La clave es experimentar. Pruebe una herramienta de IA, familiarícese con su funcionamiento, considere la calidad de su salida y también mantenga una mente abierta a otras herramientas de IA. **Abraham dijo: "El campo de la inteligencia artificial está cambiando rápidamente. No se puede usar una determinada herramienta para siempre, por lo que debe adaptarse a las nuevas herramientas rápidamente".
Además, considere el caso de uso apropiado. Las herramientas de inteligencia artificial generativa pueden ayudarnos a aprender rápidamente un nuevo lenguaje de programación, y también pueden crear prototipos de proyectos en un corto período de tiempo.
El diálogo claro y preciso es esencial
Cuando utilice un asistente de codificación de IA, elabore sus necesidades y piense en ello como un proceso iterativo. Abraham sugiere escribir un comentario que explique el código, para que el asistente pueda generar un código que cumpla con sus requisitos en función del comentario.
Para un programador de IA conversacional, necesita saber cómo configurar mejor las indicaciones, y ahí es donde entra en juego la ingeniería de indicaciones.
Abraham sugirió usar el método de la cadena de pensamiento. Este método en realidad implica una estrategia de "divide y vencerás", es decir, descomponer el problema en varios pasos y luego resolverlos uno por uno y finalmente resolver el problema completo. "Pídale a un modelo que haga demasiadas cosas en un período de tiempo determinado y no funcionará bien. Lo que tiene que hacer es ser capaz de procesar fragmentos de información manejables y generar fragmentos de código manejables", dijo.
Por ejemplo, en lugar de pedirle a un programador de inteligencia artificial que codifique un programa completo desde cero, piense detenidamente en todas las tareas que debe realizar el programa. **Dividir aún más estas tareas requiere que el modelo escriba funciones específicas para cada tarea, lo que requiere que el modelo vaya y venga sobre los pasos que se deben seguir para lograr una determinada tarea. **
"Piense en ello como un pasante inteligente que tiene conocimiento de un tema pero no mucha experiencia", dice Abraham.
La precisión y la claridad de la ingeniería de la punta son muy importantes. Abraham mencionó: "Debes decirle al modelo muy claramente lo que quieres, decirle con mucha precisión qué problema le estás pidiendo que resuelva y asegurarte de que lo estás siguiendo".
**También es valioso aprender los conceptos básicos de inteligencia artificial y aprendizaje automático, así como comprender cómo funcionan los grandes modelos de lenguaje y sus fortalezas y debilidades. **Tendrás que hacer tu investigación, pero algo de sentido común es esencial para juzgar el resultado.
Para ayudarlo a comenzar, Abraham recomienda OpenAI Cookbook, que incluye capítulos sobre bibliotecas y herramientas de sugerencias, guías de sugerencias, lecciones en video y más, mientras que Weisslingame recomienda leer el Transformador ilustrado para obtener más información sobre los conceptos básicos de los modelos y el aprendizaje automático.
Sé crítico y sé consciente de los riesgos
Los ingenieros de software deben ser críticos con el resultado de modelos de lenguaje grandes porque tienden a alucinar y generar código ficticio, inexacto o incluso erróneo. "El uso a ciegas de código generado por IA puede conducir fácilmente a callejones sin salida, y es difícil detectar errores sutiles", dijo Weisslingame.
"Es por eso que es fundamental verificar el código generado, que, si bien agrega algo de trabajo, puede hacer más daño que bien a la productividad”, dijo Weisslingame. Pero Abraham argumenta que "en algunos casos, verificar el código es mucho más fácil que escribir código desde cero, y es una forma mucho más rápida de generar código, validarlo y luego integrarlo en una base de código existente".
Analicemos el resultado de estos modelos y hagamos las siguientes preguntas: **¿Con qué datos se entrenó este modelo? ¿Qué datos se filtraron y qué datos no se incluyeron? ¿Qué edad tienen los datos de entrenamiento? ¿En qué versión de lenguaje de programación, paquete de software o biblioteca se entrenó el modelo? Las respuestas a estas preguntas pueden influir en los resultados y proporcionar información más relevante. **
Los desarrolladores también deben tener cuidado al ingresar código propietario en estos modelos. Algunas empresas, como Tabnine, ofrecen versiones empresariales de asistentes de codificación impulsados por IA que aprenden patrones y estilos de codificación corporativos al tiempo que brindan privacidad.
Los derechos de autor son otra consideración, aunque si está utilizando estas herramientas para completar algunas líneas de código o generar código para tareas comunes y triviales, los problemas de derechos de autor son menos preocupantes que generar grandes fragmentos de código.
"Los programadores deben tener cierta conciencia de la ingenuidad de lo que están tratando de hacer y qué tan bien encaja esa ingenuidad en su entorno", dijo Lesama. “Si el código generado por el modelo tiene alguna originalidad, debe ser tratado con recelo y suspicacia antes de ponerlo en el código base”.
Una preocupación mayor es la seguridad del código, ya que estos modelos pueden generar código que contiene vulnerabilidades. Weisslingame cree que las mejores prácticas de desarrollo de software, como revisiones de código y procesos de prueba sólidos, pueden ayudar a protegerse contra este riesgo.
"Una de las cosas que los ingenieros de software más experimentados pueden aportar son las vulnerabilidades más comunes en el código y las formas más comunes en que el código es vulnerable”, dijo Lesama. "Desarrollarán una intuición sobre dónde buscar, qué lugares provocará el estado de alerta. En el futuro, estas tecnologías se convertirán en una parte aún más importante de la cartera de ingeniería de software. "
Para que los programadores sobrevivan en un mundo de IA generativa, necesitan ver la IA como una herramienta e integrarla en su flujo de trabajo, al tiempo que reconocen las oportunidades y limitaciones de esas herramientas y confían en la capacidad de codificación humana para crecer y desarrollarse.
Traductor: Araon_
Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
¿Cómo sobreviven los programadores en el mundo de ChatGPT?
Fuente: Oficina de Traducción Divina
Nota del editor: con el lanzamiento de ChatGPT, han surgido en el mercado una serie de asistentes de generación de código de inteligencia artificial. La inteligencia artificial generativa está de moda y ha penetrado en todos los aspectos de la vida humana ¿Reemplazará realmente la IA a los programadores humanos? Para los desarrolladores de programas, ¿cómo sobrevivir y desarrollarse en el mundo de ChatGPT? Este artículo compartirá 4 consejos para ayudar a los programadores humanos a mantenerse a la vanguardia de la IA generativa. El artículo es de traducción, espero que pueda inspirarte.
La inteligencia artificial, especialmente la IA generativa impulsada por modelos de lenguaje grande (LLM), tiene el potencial de alterar toda la industria de los programadores. Pero algunos expertos creen que la IA no reemplazará a los programadores humanos, al menos no de inmediato.
"Tendrá que preocuparse por las personas que usan IA para reemplazarse a sí mismas", dijo Tanishq Mathew Abraham, PhD en ingeniería biomédica de la Universidad de California, Davis, y director ejecutivo de MedARC, un centro de investigación de inteligencia artificial médica. .
Entonces, ¿cómo pueden los desarrolladores de software volverse más valiosos y útiles a medida que se acerca la era de la codificación LLM? Estos son algunos consejos y trucos para que los codificadores sobrevivan y prosperen en la era de la inteligencia artificial generativa.
Adherirse a los principios básicos y las mejores prácticas
Aunque muchos asistentes de codificación basados en IA pueden ayudarnos a escribir y generar código, aún se requiere la capacidad básica para aprender a programar, es decir, la capacidad de leer y analizar código, y comprender cómo el código que escribe se aplica a sistemas grandes. **
"Creo que la inteligencia artificial puede mejorar en gran medida la productividad de los desarrolladores de software, pero la ingeniería de software no se trata solo de generar código, sino también de generar requisitos de usuario, depuración y prueba, y más".
**Una de las habilidades de programación más integrales sigue siendo dominio de los codificadores humanos: la resolución de problemas. ** Analizar un problema y encontrar una solución adecuada sigue siendo una habilidad de codificación muy apreciada.
"La programación tiene su lado creativo, y esas habilidades en la resolución de problemas son más importantes que el lenguaje o las herramientas de programación reales. No se deje atrapar por las comparaciones con la inteligencia artificial, que es más o menos solo el resultado estadístico de un gran modelo de lenguaje. Desarrolladores Hay una diferencia entre lo que haces y lo que genera tu modelo, y como desarrollador, hay más que solo escribir código”, dijo Ines Montani, investigadora de Python Software Foundation y cofundadora y directora ejecutiva de Explosion.
Además, **las buenas prácticas de ingeniería de software son más valiosas que nunca. **Estas prácticas incluyen el diseño del sistema de planificación y la arquitectura del software, y los programadores pueden usar herramientas de inteligencia artificial para predecir de manera más efectiva qué código se necesitará a continuación.
"Los ingenieros de programación tienen que descubrir las estructuras de datos para una pieza de código, las abstracciones correctas para organizar el código y los requisitos para diferentes interfaces. Todos estos son fundamentales para la práctica de la ingeniería de software y no desaparecerán. durante mucho tiempo por venir".
Encuentra la herramienta que se adapta a tus necesidades
Encontrar las herramientas de IA adecuadas es fundamental. Cada herramienta tiene su propia forma de interactuar y cada herramienta se puede integrar en el flujo de trabajo de desarrollo de diferentes maneras, ya sea creando automáticamente pruebas unitarias, generando datos de prueba o escribiendo documentación.
Por ejemplo, GitHub Copilot y otros asistentes de codificación de IA pueden aumentar nuestras habilidades de codificación y brindarnos sugerencias de codificación. ChatGPT y Bard de Google, por otro lado, son más como programadores de IA conversacionales que pueden usarse para responder preguntas sobre una API (interfaz de programación de aplicaciones) o generar fragmentos de código.
**La clave es experimentar. Pruebe una herramienta de IA, familiarícese con su funcionamiento, considere la calidad de su salida y también mantenga una mente abierta a otras herramientas de IA. **Abraham dijo: "El campo de la inteligencia artificial está cambiando rápidamente. No se puede usar una determinada herramienta para siempre, por lo que debe adaptarse a las nuevas herramientas rápidamente".
Además, considere el caso de uso apropiado. Las herramientas de inteligencia artificial generativa pueden ayudarnos a aprender rápidamente un nuevo lenguaje de programación, y también pueden crear prototipos de proyectos en un corto período de tiempo.
El diálogo claro y preciso es esencial
Cuando utilice un asistente de codificación de IA, elabore sus necesidades y piense en ello como un proceso iterativo. Abraham sugiere escribir un comentario que explique el código, para que el asistente pueda generar un código que cumpla con sus requisitos en función del comentario.
Para un programador de IA conversacional, necesita saber cómo configurar mejor las indicaciones, y ahí es donde entra en juego la ingeniería de indicaciones.
Abraham sugirió usar el método de la cadena de pensamiento. Este método en realidad implica una estrategia de "divide y vencerás", es decir, descomponer el problema en varios pasos y luego resolverlos uno por uno y finalmente resolver el problema completo. "Pídale a un modelo que haga demasiadas cosas en un período de tiempo determinado y no funcionará bien. Lo que tiene que hacer es ser capaz de procesar fragmentos de información manejables y generar fragmentos de código manejables", dijo.
Por ejemplo, en lugar de pedirle a un programador de inteligencia artificial que codifique un programa completo desde cero, piense detenidamente en todas las tareas que debe realizar el programa. **Dividir aún más estas tareas requiere que el modelo escriba funciones específicas para cada tarea, lo que requiere que el modelo vaya y venga sobre los pasos que se deben seguir para lograr una determinada tarea. **
"Piense en ello como un pasante inteligente que tiene conocimiento de un tema pero no mucha experiencia", dice Abraham.
La precisión y la claridad de la ingeniería de la punta son muy importantes. Abraham mencionó: "Debes decirle al modelo muy claramente lo que quieres, decirle con mucha precisión qué problema le estás pidiendo que resuelva y asegurarte de que lo estás siguiendo".
**También es valioso aprender los conceptos básicos de inteligencia artificial y aprendizaje automático, así como comprender cómo funcionan los grandes modelos de lenguaje y sus fortalezas y debilidades. **Tendrás que hacer tu investigación, pero algo de sentido común es esencial para juzgar el resultado.
Para ayudarlo a comenzar, Abraham recomienda OpenAI Cookbook, que incluye capítulos sobre bibliotecas y herramientas de sugerencias, guías de sugerencias, lecciones en video y más, mientras que Weisslingame recomienda leer el Transformador ilustrado para obtener más información sobre los conceptos básicos de los modelos y el aprendizaje automático.
Sé crítico y sé consciente de los riesgos
Los ingenieros de software deben ser críticos con el resultado de modelos de lenguaje grandes porque tienden a alucinar y generar código ficticio, inexacto o incluso erróneo. "El uso a ciegas de código generado por IA puede conducir fácilmente a callejones sin salida, y es difícil detectar errores sutiles", dijo Weisslingame.
"Es por eso que es fundamental verificar el código generado, que, si bien agrega algo de trabajo, puede hacer más daño que bien a la productividad”, dijo Weisslingame. Pero Abraham argumenta que "en algunos casos, verificar el código es mucho más fácil que escribir código desde cero, y es una forma mucho más rápida de generar código, validarlo y luego integrarlo en una base de código existente".
Analicemos el resultado de estos modelos y hagamos las siguientes preguntas: **¿Con qué datos se entrenó este modelo? ¿Qué datos se filtraron y qué datos no se incluyeron? ¿Qué edad tienen los datos de entrenamiento? ¿En qué versión de lenguaje de programación, paquete de software o biblioteca se entrenó el modelo? Las respuestas a estas preguntas pueden influir en los resultados y proporcionar información más relevante. **
Los desarrolladores también deben tener cuidado al ingresar código propietario en estos modelos. Algunas empresas, como Tabnine, ofrecen versiones empresariales de asistentes de codificación impulsados por IA que aprenden patrones y estilos de codificación corporativos al tiempo que brindan privacidad.
Los derechos de autor son otra consideración, aunque si está utilizando estas herramientas para completar algunas líneas de código o generar código para tareas comunes y triviales, los problemas de derechos de autor son menos preocupantes que generar grandes fragmentos de código.
"Los programadores deben tener cierta conciencia de la ingenuidad de lo que están tratando de hacer y qué tan bien encaja esa ingenuidad en su entorno", dijo Lesama. “Si el código generado por el modelo tiene alguna originalidad, debe ser tratado con recelo y suspicacia antes de ponerlo en el código base”.
Una preocupación mayor es la seguridad del código, ya que estos modelos pueden generar código que contiene vulnerabilidades. Weisslingame cree que las mejores prácticas de desarrollo de software, como revisiones de código y procesos de prueba sólidos, pueden ayudar a protegerse contra este riesgo.
"Una de las cosas que los ingenieros de software más experimentados pueden aportar son las vulnerabilidades más comunes en el código y las formas más comunes en que el código es vulnerable”, dijo Lesama. "Desarrollarán una intuición sobre dónde buscar, qué lugares provocará el estado de alerta. En el futuro, estas tecnologías se convertirán en una parte aún más importante de la cartera de ingeniería de software. "
Para que los programadores sobrevivan en un mundo de IA generativa, necesitan ver la IA como una herramienta e integrarla en su flujo de trabajo, al tiempo que reconocen las oportunidades y limitaciones de esas herramientas y confían en la capacidad de codificación humana para crecer y desarrollarse.
Traductor: Araon_