En la era de la IA, los programadores no deben preocuparse

 

Después del nacimiento de ChatGPT, la opinión de que "la IA está a punto de reemplazar a los programadores" provocó acaloradas discusiones, pero aún no se ha calmado por completo. Como ingeniero de desarrollo del lado del servidor y usuario "leal" de ChatGPT, después de casi un año de uso, hoy me tomé el tiempo para escribir un artículo para hablar sobre mis puntos de vista sobre la cuestión de "¿Dónde deberían ir los programadores en la IA? ¿época?"

I. Introducción

El 30 de noviembre de 2022, OpenAI lanzó un programa de robot de chat llamado ChatGPT, que inmediatamente detonó Internet y causó enormes repercusiones en todo el mundo. Inmediatamente después, varios grandes modelos lingüísticos surgieron como hongos después de la lluvia. En el extranjero, como Bard de Google, Claude de Anthropic, en el extranjero, como Baidu Wenxin Yiyan, Ali Tongyi Qianwen, Xunfei Xinghuo Cognitive Model, Kunlun Wanwei Tiangong Large Model, etc.

En comparación con el modelo anterior, el modelo de lenguaje grande representado por ChatGPT ha dado un salto cualitativo en las capacidades de generación e interpretación de código. Muchos programadores han comenzado a escribir y optimizar código con la ayuda de modelos de lenguaje grande, por lo que mucha gente piensa que "programador pronto será reemplazada por la IA".

2. ¿Serán los programadores reemplazados por la IA?

"La IA reemplaza a los programadores" no es un tema nuevo. De hecho, tan pronto como apareció el concepto de "código bajo", la gente ya comenzó a discutir si los programadores serán eliminados. Después del nacimiento de ChatGPT, la gente sacó el tema de la noche a la mañana y, después de repararlo, se puso en línea con urgencia y volvió a convertirse en una búsqueda candente.

En la actualidad, algunas personas calificadas han comenzado a utilizar la IA para aprender tecnología, escribir códigos y ayudar en la resolución de problemas. La tecnología de inteligencia artificial ha acortado en gran medida el camino hacia el dominio del conocimiento. Para algunos puntos de conocimiento que requieren leer muchos libros y muchas columnas para comprenderlos, deje que las herramientas de inteligencia artificial le brinden ejemplos y los expliquen en un lenguaje fácil de entender, y podrá dominarlos rápidamente. . . Algunos códigos aparentemente sencillos pueden tardar media hora en escribirse por uno mismo, pero la IA puede tardar sólo uno o dos minutos en producirse, y la calidad suele ser mayor. Con la bendición de la IA, aquellos ingenieros jóvenes que no tienen una gran experiencia en programación también pueden "escribir" código relativamente excelente.

La IA ofrece infinitas posibilidades a muchas industrias y, en algunos escenarios, puede mejorar en gran medida la eficiencia del desarrollo. En un futuro próximo, se espera que la IA reemplace a algunos programadores de bajo nivel (como solo CRUD). Sin embargo, a juzgar por la experiencia del autor en el uso de ChatGPT para ayudar a la programación, el nivel actual de generación de código de la IA todavía tiene un largo camino por recorrer antes de reemplazar completamente a los programadores.

3. Aún es difícil reemplazar el desarrollo del lado del servidor por la IA

Los sistemas de software a gran escala suelen tener una gran complejidad en sí mismos. Simplemente podemos dividir la complejidad en dos dimensiones: negocios y tecnología. Para sistemas con alta complejidad empresarial, se debe llevar a cabo un análisis de requisitos científico y efectivo y un modelado de dominio para obtener una arquitectura de aplicación evolutiva sostenible y al mismo tiempo cumplir con los requisitos funcionales actuales; para sistemas distribuidos con alta complejidad técnica, solo considerando cuestiones no funcionales como Alta concurrencia, alta disponibilidad, alto rendimiento y coherencia de datos podemos buscar la solución óptima para la arquitectura técnica en las compensaciones de diseño. En todo el mundo, el nivel de la IA todavía es incapaz de hacer frente a los dos tipos de complejidad mencionados anteriormente.

Además, aunque el modelo grande tiene la capacidad de generar código, interpretar código e incluso optimizar código, aún permanece en la dimensión "función/método" y no puede generar código en la dimensión de clase, dimensión de módulo y dimensión de proyecto. Al mismo tiempo, el código generado aún necesita revisión, optimización, implementación y verificación humanas. Para tareas complejas, también es necesario desmontarlo manualmente en una granularidad que el modelo grande pueda "comprender".

Además, incluso si no se consideran factores como la seguridad de los datos y los costos de los modelos de desarrollo propio, basta con mirar el proceso de I+D del lado del servidor. La codificación es solo una parte de todo el ciclo de vida del software. El desarrollo de software también incluye análisis de requisitos, modelado abstracto, diseño de sistemas, diseño de datos, diseño no funcional, pruebas, operación y mantenimiento, etc. En muchos casos, no es difícil escribir código como el medio definitivo para resolver problemas, pero la dificultad radica en la identificación, comprensión, definición y abstracción de los problemas, todos los cuales se basan en la deducción manual. Cuando un problema se aclara y se desmantela en las dimensiones de un proyecto de software, frente a tareas definidas, objetivos claros y una estructura razonable, habrá muchas personas que podrán resolver el problema y, naturalmente, la IA entrará en juego.

4. ¿Hacia dónde va el desarrollo del lado del servidor a partir de aquí?

La era de la IA traerá cambios profundos a la producción y la vida de la sociedad humana. Aunque el gran modelo actual todavía tiene muchas deficiencias, como alucinaciones y una capacidad de razonamiento débil, no se puede subestimar su potencial. En cierto sentido, es precisamente porque el gran modelo no es perfecto que no seamos eliminados tan fácilmente.

En la era de la IA, es inevitable que las tareas simples y repetitivas sean reemplazadas por la IA. En la nueva era, debemos reexaminar la connotación de competitividad central, continuar aprendiendo y consolidar constantemente nuestra propia capacidad. Sólo cuando la acumulación de tecnología tenga suficiente profundidad podremos mejorar la capacidad de identificar la información generada por la IA y podremos controlar y reducir su impacto negativo mientras disfrutamos de la conveniencia que brinda la IA.

Tomando como ejemplo las posiciones de desarrollo del lado del servidor, el conocimiento del dominio es la habilidad más básica pero más importante, sin embargo, solo cuando el conocimiento del dominio forma un sistema se puede llamar la verdadera competitividad central. Entonces, ¿cómo podemos sistematizar el conocimiento de nuestro dominio?

Imagínese, ¿por qué tiene un conocimiento especial del vecindario donde está ubicada su casa y, si se arrincona, poco a poco puede descubrirlo? La razón es que ya se ha formado en su mente una imagen general del área circundante y conoce claramente los nodos clave. Si se encuentra en una comunidad desconocida, es posible que se sienta confundido. No tiene ningún nodo clave ni el panorama general y puede andar a tientas. Incluso si descubre la situación de cada tapa de alcantarilla que ve en la página. De alguna manera, no tiene sentido. , a unas cuantas calles de distancia y te olvidas de ello.

Volviendo a las preguntas planteadas anteriormente, la clave para el aprendizaje eficiente y la sistematización del conocimiento radica en: construir un panorama general a nivel macro y una comprensión profunda de los puntos clave del conocimiento. Estos puntos clave son el esqueleto y el punto de apoyo de este campo. Sin un esqueleto y un punto de apoyo, es naturalmente difícil sistematizar, y sin una imagen macro, es fácil extraviarse.

5. El primer libro de la industria sobre la interpretación sistemática y panorámica del desarrollo del lado del servidor.

El libro "Desarrollo de servidores: tecnología, métodos y soluciones prácticas" se basa en los cursos de formación internos de alta calidad de Ali y Ant Group y está escrito por expertos en blogs. El libro combina la teoría con la práctica y expone el desarrollo del lado del servidor de manera panorámica y sistemática. El contenido incluye las dos partes siguientes.

  • Parte 1: Tecnologías y métodos de desarrollo del lado del servidor

En primer lugar, presenta las responsabilidades, la pila de tecnología, el proceso central y la ruta avanzada del desarrollo del lado del servidor; luego se expande desde cinco aspectos: análisis de requisitos, modelado abstracto, diseño de sistemas, diseño de datos y diseño no funcional, y explica el lado del servidor. desarrollo en profundidad con casos Presenta a los lectores un panorama del desarrollo del lado del servidor y ayuda a los lectores a comprender rápida y sistemáticamente el conocimiento y los métodos del desarrollo del lado del servidor.

  • Parte II: Soluciones a problemas típicos del lado del servidor

Para problemas típicos en las prácticas de desarrollo del lado del servidor, como alta concurrencia, alto rendimiento, alta disponibilidad, almacenamiento en caché, consistencia de datos, idempotencia y seckill, se brindan las soluciones y especificaciones de desarrollo correspondientes, y se analizan en profundidad diferentes soluciones con casos ventajas y desventajas. Además, también resume casos y normas de la industria a nivel de aterrizaje, como diseño de interfaz, impresión de registros, manejo de excepciones, escritura de código y comentarios de código.

Lectores

  • Profesionales de TI: ingenieros de desarrollo de servidores, ingenieros de desarrollo de clientes, gerentes de productos, ingenieros de desarrollo de pruebas, etc.

  • Estudiantes universitarios: estudiantes de carreras de informática, software, automatización, electricidad, comunicaciones, etc. que estén interesados ​​en ingresar a la industria de TI.

 Sitio web oficial métodos técnicos de desarrollo de servidores spot y soluciones prácticas Libros tutoriales de desarrollo de servidores de Internet de Guo Jin

Supongo que te gusta

Origin blog.csdn.net/Javascript_tsj/article/details/132676965
Recomendado
Clasificación