- Las herramientas de codificación de IA como GitHub Copilot han transformado el desarrollo y la productividad del software.
- Los asistentes de IA cierran las brechas de experiencia, aunque pueden generar un código menos seguro y propenso a errores.
- Las habilidades de ingeniería de software, como la creación de arquitectura inteligente para código, seguirán siendo relevantes.
Antes de graduarse de la universidad, Jacob Jackson fundó el asistente de codificación de IA TabNine en 2018. Jackson, un estudiante de informática, quería reducir las tareas repetitivas y a veces aburridas que podía encontrar un programador.
«Solo estábamos tratando de ahorrarle a la gente las pulsaciones de teclas. No se habló de que la IA diseñara o escribiera algoritmos completos», dijo.
Su startup finalmente recaudó alrededor de $60 millones y fue adquirida por la empresa israelí Codota en 2019. Jackson continuó trabajando con IA, realizó prácticas y trabajó en OpenAI, la empresa que creó ChatGPT.
En los últimos dos años, ha habido un auge en los asistentes de codificación de IA. Los competidores de OpenAI han lanzado herramientas de desarrollo de IA generativa ampliamente utilizadas, como GitHub Copilot y Claude de Anthropic. El aumento en el uso de ChatGPT y los asistentes de codificación de IA ha cambiado la forma en que los desarrolladores de software hacen su trabajo. El uso de IA para escribir código también podría cerrar la brecha de experiencia entre los desarrolladores junior principiantes y los desarrolladores senior, ya que normalmente se necesitan varios años de trabajo e incluso proyectos personales para subir de nivel.
«Ya no existen los desarrolladores junior porque la IA básicamente eleva a todos a estar más allá de eso», dijo Nikolas Gauvreau, quien ha trabajado como desarrollador en Canadá durante más de 20 años.
Más del 97% de 2.000 encuestados en Estados Unidos, Brasil, Alemania e India dijeron que habían utilizado herramientas de codificación de IA en el trabajo, según una encuesta de GitHub publicada en agosto. Las herramientas de sugerencia de código de IA generativa también pueden aumentar la productividad de los desarrolladores de software en un 26%, según un estudio que analizó datos de Microsoft, Accenture y una empresa anónima de fabricación de productos electrónicos Fortune 100.
Los desarrolladores dicen que la adopción de asistentes de codificación de IA acelerará el campo de la ingeniería de software en lugar de eliminar puestos de trabajo, de la misma manera que las calculadoras aceleraron la computación matemática a pesar de las protestas iniciales de los profesores contra su adopción.
Si bien estas herramientas pueden aumentar la productividad, también pueden introducir problemas de seguridad que crear más trabajo para los desarrolladores. Según un estudio de 2022 dirigido por el profesor de criptografía de la Universidad de Stanford, Dan Boneh, las personas que utilizan un asistente de IA escriben código significativamente menos seguro que aquellos sin acceso a esas herramientas. Si bien los asistentes de IA pueden acelerar el proceso de codificación, pueden crear más errores que requieran la intervención del supervisor humano.
Los asistentes de IA pueden empoderar a los codificadores
La mayoría de los asistentes de codificación de IA generativa se centran en el autocompletado, lo que significa que la herramienta sugiere código a medida que el programador escribe. Otros modelos de aprendizaje de idiomas (LLM) requieren una ingeniería rápida, donde el usuario puede aplicar las sugerencias sugeridas por la IA. código como punto de partida para su idea, dependiendo de la complejidad del problema que quieren resolver.
Antes de la llegada de los asistentes de codificación, el fundador de DeepAI, Kevin Baragona, siempre tenía abierta una ventana del motor de búsqueda de Google en caso de que necesitara ayuda para resolver un problema. Los programadores a menudo investigaban a partir de recursos como Stack Overflow, un foro comunitario en línea donde los programadores compartían sus soluciones. El tráfico de Stack Overflow ha disminuido desde el auge de los asistentes de codificación.
«Cada pocos minutos, cuando estabas programando, era algo así como el código de trucos de entonces, y eso simplemente se normalizó como lo que haces cuando estás codificando: buscas mucho en Google», dijo Baragona.
Conocer más de un lenguaje de codificación, como JavaScript, Python o Ruby, le da al programador más flexibilidad en el mercado laboral cuando las empresas cambian sus prioridades. Sin embargo, aprender un idioma completamente nuevo requeriría mucho tiempo y aprendizaje.
Ahora, los modelos de aprendizaje profundo han permitido traducir más funciones de programación de un lenguaje a otro, lo que facilita a los desarrolladores cambiar entre lenguajes de programación sin tener que aprenderlos rápidamente. Baragona dijo que estas herramientas le hacen sentir que conoce «todos los lenguajes de programación, aunque yo no los sepa, porque la IA me ayudará a superar el problema muy rápidamente».
Gauvreau dijo que los asistentes de codificación de IA lo han empoderado porque tiene menos miedo de contratar más clientes, incluso cuando aún no conoce la solución. Dijo que duplicó la cantidad de idiomas que aprendió en el último año, más que en toda su carrera.
La IA puede ayudar a los estudiantes de informática
En lugar de rehuir a los asistentes de codificación, algunas universidades desarrollaron sus propias versiones que ayudarían a guiar a los estudiantes a hacer las preguntas correctas, otra forma en que las herramientas de inteligencia artificial pueden cerrar la brecha de habilidades.
David Malan, profesor que supervisa el popular curso CS50 de Introducción a las Ciencias de la Computación en la Universidad de Harvard y en línea en edX, ayudó a encabezar la creación del chatbot cs50.ai para el curso. Malan dijo que los programas de IA están «muy dispuestos a responder todas y cada una de tus preguntas, pero no de una manera que sea probablemente consistente con lo que un buen maestro o tutor preferiría que hicieras».
«El objetivo es realmente enseñar a los estudiantes cómo pensar y cómo resolver problemas con las herramientas que tenemos actualmente y que eventualmente tendremos cuando se trata del mundo real y la aplicación de software», dijo Malan a Business Insider.
Los asistentes de codificación de IA pueden ayudar especialmente a los estudiantes en línea de la clase, que no necesariamente pueden tener el lujo de un asistente de maestro, a tener un «tutor virtual a su lado», dijo Malan.
La IA tiene deficiencias
Si bien Baragona dijo que la codificación con IA se convertirá en una realidad cotidiana para la próxima generación de codificadores, cree que está entrenando a los programadores para que sean más vagos, lo que podría crear problemas que no sabrán cómo resolver.
«Rápidamente llegas a un punto en el que la IA hizo todo el trabajo, pero todavía tiene errores y no entiendes el código en absoluto porque no lo escribiste», dijo.
Una vez que el código alcanza un cierto nivel de complejidad, descubre que la IA ha cavado un agujero lo suficientemente profundo como para no poder salir.
«Y en ese punto, estás realmente jodido porque no puedes entender el código, no puedes arreglarlo, y tampoco la IA», dijo.
Se ha alentado a los programadores de estudios de Microsoft a adoptar Microsoft Copilot como asistente de codificación, según un contratista de Activision Blizzard, cuya identidad ha sido confirmada por BI y que pidió permanecer en el anonimato porque no está autorizado a hablar con la prensa. Aún así, dijo que necesita ser muy específico cuando trabaje con Copilot.
«La IA no tiene una visión de lo que estás tratando de construir porque la codificación es realmente como construir un edificio. La IA puede construirte una pequeña pieza», dijo a BI. «Intentamos activamente utilizar Copilot en nuestras pruebas, pero simplemente no fue bueno».
Si bien muchos desarrolladores han optado por delegar tareas de codificación específicas a la IA para reducir sus cargas de trabajo, dicen que seguirá siendo relevante establecer fundamentos sólidos en ciencias de la computación y la ingeniería de software.
Los ingenieros de software no sólo codifican; también resuelven problemas y diseñan sistemas. En este caso, los humanos todavía tenemos cierta ventaja.
«Las herramientas de inteligencia artificial actuales no crean arquitecturas reflexivas como lo haría un humano. En cierto modo codifican con pensamiento a corto plazo», dijo Baragona.