¿Qué tan pronto AI y ML harán que los desarrolladores de software sean obsoletos?

Estoy sorprendido por las respuestas aquí. Después de haber examinado recientemente lo que está en progreso y haber trabajado con el código AI, diría que estamos preparados para realizar cambios drásticos en cualquier momento. La revolución ya está en marcha.

Diría que el software ordinario ya ha dejado parcialmente obsoletas algunas tareas de programación. En términos de cosas como el reconocimiento automático de imágenes, la IA ya está bastante avanzada. Los sistemas de IA ya pueden reconocer automáticamente a las personas mientras caminan. Si la IA ya no es mejor que los seres humanos para distinguir imágenes, pronto lo será.

Solo espero vivir otros 20 años más o menos y espero ver aumentos dramáticos en la IA mucho antes de irme. La IA no eliminará por completo el aporte humano, pero debería hacer la mayor parte del trabajo pesado en la próxima década más o menos.

Creo que ahora es posible hacer un sistema que pueda pasar la prueba de Turing de manera adecuada con recursos y tiempo de entrenamiento realistas.

La IA ha estado ‘llegando’ en unos diez años durante décadas y todavía no ha llegado. Sin embargo, cada vez que se hicieron esas predicciones, el código en cuestión era crudo, primitivo y limitado de tal manera que difícilmente podría llamarse inteligencia. Todo fue básicamente ‘trivial’. Esta vez, sin embargo, una versión no trivial está realmente aquí. Los cambios que realiza podrían ocurrir muy, muy rápidamente. Podríamos ver que el mundo de los sistemas de información ha cambiado por completo en un plazo de 12, 24 y 36 meses.

He estado presente durante más de medio siglo desde que se desarrolló el programa ‘ELIZA’. En cada coyuntura, la gente me pregunta “¿es real?” En cada punto he dicho sin dudar que no es real. Esta vez, digo sin dudarlo que es real. Finalmente está aquí.

Comparo la revolución de inteligencia actual con el descubrimiento de la electricidad. Es posiblemente * el * evento de umbral en la historia humana. La IA anterior menos sofisticada ya ha hecho del ajedrez un juego diferente. AI ha hecho que ‘Go’ sea un juego diferente.

El día en que un sistema de inteligencia artificial invente, por sí solo, un mejor sistema de inteligencia artificial es posiblemente el día en que vemos que se desarrolla una ‘singularidad’. Es posible que el diseño de IA sea un problema insoluble debido a algo como una explosión combinatoria, sin embargo, lo dudo. Por lo que puedo decir del código una vez que alcanza una cierta ‘masa crítica’, en realidad es algo para lo que los incrementos incrementales proporcionan más por menos con cada aumento.

Solo piense en la gran cantidad de conocimiento que ahora puede estar disponible para un sistema de IA. Piense en los vastos recursos informáticos disponibles.

A diferencia de antes, los sistemas de IA pueden resolver cosas y luego construir sobre esas soluciones sin tener que revisar y recalcular todo a medida que avanza. Se altera para producir mejoras incrementales sobre la marcha.

En esta etapa, creo que estamos limitados por nuestra capacidad para crear programas de capacitación y desarrollar heurística. Esto mejorará a medida que mejoren las habilidades tanto de las personas involucradas como de los ‘agentes’ de IA.

Soy programador y he sido un profesional remunerado por más de cuarenta años. La eliminación de los programadores por la automatización se ha visto amenazada durante todo ese tiempo. Durante todo ese tiempo, las personas que presentaron los argumentos tenían una comprensión pobre de la programación y una comprensión pobre de la IA. Sabía que era ridículo todo el tiempo. No es risible ahora. Grandes cantidades de antiguos “trabajos de conocimiento” serán reemplazados y eso está llegando muy rápido.

Me encanta lo sobrevalorado que está ML. Puedes hacer increíbles trabajos con seguridad (increíble desde una perspectiva de salida pura, no tan sorprendente en comparación con los humanos o incluso otros seres IMO).

Tengo una teoría, que podríamos desarrollar un juego que tenga “bots” que aprenda de los jugadores del juego. Ahora el juego es sobre todo irrelevante, pero preferiría un juego altamente mecánico basado en habilidades, pero también un juego estratégicamente suficiente. Mis juegos favoritos son LoL y CS: GO en este momento y ambos harían OK IMO. Ahora estos bots aprenderían de los jugadores del juego. Y aprenderían todo lo que quisieras (así que, básicamente, las características son, o el dominio, el tiempo de reacción, la colocación del cursor, etc.) y esencialmente obtendrías robots con habilidades similares.

Hay un montón de problemas que puedo ver en este tipo de situación, el primero es; necesitamos programar los bots para que sepa qué dominio buscar, de lo contrario, no tendrá ni idea de la existencia de algo llamado “tiempo de reacción”. Este problema parece un factor inexistente en cosas como el reconocimiento de imágenes y toda esa corriente principal. Pero es. Las características están ocultas detrás de las matemáticas realizadas, no necesariamente las nombramos, pero sin las fórmulas, cualquier algoritmo de aprendizaje no tiene idea de qué buscar, en una Imagen. Es una forma muy primitiva de enseñar algo, realmente no enseñamos por qué elegimos un método de extracción de características para el algoritmo, simplemente lo hacemos (piense en cómo un niño hace todo por su madre y qué tan difícil se adaptará después mudarse, y eso es una inteligencia, y mucho menos grandes calculadoras).

Otro problema es, digamos que tenemos un robot muy hábil, tan hábil como alguien como getright para csgo o faker para lol. ¿Ahora la siguiente pregunta es cómo ir más allá? Claro que puede enseñar manualmente (palabra clave) al bot que, si aumenta su tiempo de reacción o tiene mejores disparos de habilidades, etc., será mejor. Pero este proceso no es autónomo. Claro que podríamos intentarlo con un montón de combinaciones (aumentar esto, disminuir eso, etc.), pero eso no es razonamiento, solo es fuerza bruta.

Hay muchos otros problemas, pero todos de alguna manera van en la misma dirección. Machine Learning está lejos de todo lo que nos gustaría (me gustaría) “machine” “learning” actualmente. En su estado actual, ML es una gran calculadora matricial orientada a las estadísticas para mí. Eso es. Si no cambiamos nuestro enfoque y le enseñamos a la máquina algunas cosas realmente abstractas (como métodos, metodologías, estrategias, etc.) y hacemos que produzca mejores, creo que estamos lejos de ser seguros antes de que ML se haga cargo de la programación.

Sin siquiera preocuparme por la razón por la que acabo de abandonar, ML seguro puede escribir código, pero ¿cuál sería realmente la tasa de éxito? Cuando ni siquiera está tan cerca de lo que hacen los humanos sin la consciencia de sus ojos. Creo que algún tipo de IA es obligatorio para esta tarea.

Aparte de eso, la generación de fragmentos de código tampoco es necesariamente un trabajo de ML.

De hecho, creo que ni siquiera podemos usar ML para generar código listo para producción. Como dije, a menos que cambiemos la forma en que “enseñamos”.

Sin embargo, la IA es otra cosa, que todavía no veía exitosa porque me preocupaba que se hicieran cargo de la industria.

Por último, si y cuando desarrollamos una IA (o lo que quieras nombrar), esencialmente hemos terminado. No más ir más allá, ya que descodificaría y engañaría a cualquier programador; por lo tanto, incluso puede hacer IA más inteligentes (ver, no puede, a menos que sea pura inteligencia, no debería ser capaz de “avanzar”).

Nunca. Porque los humanos necesitan un grado de interactividad y facilidad de uso que AI / ML no puede salvar.

Algunas ideas para AI y ML son excusas para un diseño pobre y la falta de toma de decisiones. Los usos de ML que de hecho van a cambiar muchas cosas van a cambiar mucho y pueden ser mecanizados [medicamentos, automóviles, etc.], pero no hará que los humanos sean diferentes de los humanos. ML funcionará debajo de la superficie, pero no resuelve el elemento de diseño para humanos.

Estoy apostando al otro extremo: el software se está convirtiendo en FUN FUN FUN y eso es algo que solo puede existir cuando los humanos (usuarios) tienen interfaces flexibles y la capacidad de personalizar todo y CREAR HISTORIAS con facilidad. Los humanos han sobrevivido miles de años creando historias y sistemas altamente contextualizados.

La narrativa de ML-take-it-all me recuerda tanto al comunismo como a los hogares de ancianos: la idea de que las personas son esta masa abstracta y predecible que rendirá a un nivel de previsibilidad que no es aceptable para ningún ser humano que haya encontrado en la vida real.

He visto presunciones horrendas de productos AI / ML que NUNCA VA A TRABAJAR CON LOS CONSUMIDORES. Porque con el aumento de la estandarización, viene una mayor demanda de diferencia. Cuanto más se vean las cosas, más responde a algo que se siente diferente. Por ejemplo, había una compañía de ML que quería “ayudar a los usuarios a crear sitios web rápidamente para sus negocios”. Bueno, adivina qué, todo se hizo rápidamente y todo parecía tan similar y tan soso que, como usuario, no me interesarían estos sitios web porque mi objetivo es comunicar la diferencia, no la igualdad. Esto es tan básico que en realidad es sorprendente la poca atención que hay en comprender y conectarse con la naturaleza humana.

Personalmente, creo que en este siglo, el nivel de automatización combinado con el aprendizaje automático hará que el desarrollo de software sea tan irreconocible de lo que estamos haciendo hoy que ya casi no tendrá sentido describirlo como desarrollo de software.

Si va a una empresa de desarrollo de software hoy y le pide que haga un sitio web, describiendo sus requisitos, funcionalidad y diseño exactos, aún le tomará unos meses a un equipo de desarrolladores web construirlo. Dentro de mi vida, creo que tendrá el sitio web listo para el final de la primera reunión, sin la necesidad de escribir una sola línea de código. Francamente, es un poco decepcionante que ya no estemos cerca de algo así.

Creo que la automatización desempeñará un papel al menos tan importante para hacer de esto una realidad como la IA / ML.

Además de eso, creo que la forma en que interactuamos con las computadoras cambiará radicalmente, reduciendo significativamente la barrera de entrada para desarrollar software.

Puede ser que esté equivocado. Tal vez aún produzcamos código en lenguajes de programación tipo C dentro de 50 años, como lo hemos hecho durante los últimos 50. Pero realmente no lo creo.

Casi nunca.

Supongamos que AI puede construir software tan bien como los humanos. ¿Lo que pasa? Las personas no tecnológicas, en lugar de hablar con los programadores para hacer lo que necesitaban, ahora necesitan hablar con las máquinas.

Voila: ahora son programadores.

Las personas que desean programadores obsoletos no piensan en esto. Siempre hay alguien que necesita interactuar con las máquinas para que las máquinas hagan lo que los humanos quieren. Se llaman programadores.

Adivina qué: ¡una cantidad espectacular de personas en este mundo odian interactuar con las máquinas!

La única forma en que los programadores quedan obsoletos es cuando ya no hay humanos interactuando con las máquinas. Las máquinas simplemente construyen lo que creen que debe construirse.

Eso sucederá cuando … así sea, cuando seamos cultivados como baterías como en Matrix.

Espero que esperes que eso nunca suceda.

Estoy de acuerdo con Al Klein, no en nuestras vidas, y no estoy convencido de que suceda en absoluto.

En este momento, el estado de la IA disponible para el público en general no es una IA fuerte en general. De hecho, realmente no creo que cosas como Cortana o incluso autos sin conductor se consideren IA. La IA debería ser inteligencia , en el sentido de que puede resolver las cosas por sí misma, resolver cosas no triviales . Un perro puede aprender por sí mismo cómo abrir una puerta, AI tendrá dificultades para reconocer incluso una puerta visualmente.

Piense en qué tan lejos estamos de decirle a una computadora “Oye, necesitamos la próxima versión de PhotoShop, aquí hay un montón de correos electrónicos de clientes que dicen qué características están buscando”.

Estamos tan espectacularmente lejos de eso, creo que si alguna vez lo tenemos, miraremos hacia atrás con desconcierto sobre las cosas que llamábamos “AI” en 2017.

Para que un desarrollador senior quede obsoleto, necesita una IA capaz de leer una especificación de producto e implementarla. Si ese objetivo es comparable a la cumbre del Monte Everest, no estamos a mitad de camino, ni siquiera estamos en el campamento base, ni siquiera estamos en el suelo, estamos bajo tierra y no sabemos en qué dirección está arriba.

Hacer software es complicado, y no por las razones que muchos piensan. No son los algoritmos, ni las estructuras de datos, ni los lenguajes de programación lo que lo hace complicado. Es entender lo que necesitas hacer . En este momento no tenemos computadoras que puedan entender nada , de verdad.

No dentro de nuestras vidas, no dentro de las vidas de nuestros tataranietos, tal vez nunca. Estamos tan cerca de que las computadoras escriban programas para nosotros como los hombres de las cavernas cuando aterrizaron en la luna. Durante las próximas vidas serán programadores humanos escribiendo software para que las computadoras funcionen mejor y más rápido. (Mi primer servidor de red, no hace muchas décadas, funcionaba a la velocidad de 75MHz. Entonces, tenía 96 MB de RAM. Las cosas siguen mejorando y más rápido, pero aún no hemos resuelto algunas pequeñas cosas conceptuales. como el hecho de que el cerebro humano tiene más de 2 estados, tiene un número casi infinito de estados [casi no, principalmente no, probablemente no, bastante seguro de que no, todos son casi del mismo estado, pero no del todo] y nosotros tenemos que duplicar todos los estados a los que puede llegar una mente humana al considerar una pregunta antes de que podamos comenzar a pensar en una IA real. Luego está el hecho de que podemos cambiar casi instantáneamente las conexiones entre “ubicaciones de RAM” en nuestros cerebros, y podemos ” t en absoluto en las computadoras digitales sin rediseñarlas. Y algunas pequeñas cosas como esa).

Y una de las cosas que nos da nuestra inteligencia es la capacidad de interactuar libremente con el mundo real, por lo tanto, hasta que nuestras “computadoras” sean lo suficientemente móviles y parecidas a las de los humanos, para caminar por las calles e interactuar con personas y otras computadoras, no tendremos IA real, solo clones rápidos de Google Echo. Si Echo “AI”? ¿Google Translate es “AI”? ¿Qué es exactamente AI? Algunos artículos afirman que lo hemos tenido durante años, algunos se quejan de que aún no podemos definirlo. Cuando Hari Seldon me presente a R. Daneel Olivaw, creeré que hemos logrado la IA.

Un significado de obsoleto

Debería haber quedado obsoleto en el sentido de no servir a ningún propósito útil, servicio, o ya no ser reconocido por realizar una actividad específica. En este sentido, el mercado normal y el empleo dejan de valorar ciertas profesiones o trabajos después de los 65 años. Esta edad sirve como un punto para separar la vida laboral y la vida jubilada . Aunque algunas personas pueden continuar trabajando en empleos remunerados por sus actividades por más de 65 años y posiblemente más cerca de los 100 años.

Desarrollador de software y profesional.

Un desarrollador de software tiene un conjunto de habilidades y conocimientos particulares. Estos incluyen el dominio de los lenguajes de programación, la capacidad de escribir algoritmos y estructuras de datos, comunicarse con compañeros de equipo de software y conversar con gerentes de productos. Estos se resumen en las responsabilidades, deberes y requisitos del trabajo o actividades pagados durante el empleo. Una propuesta simple para desarrolladores de software significa que trabajan con personas para crear software de acuerdo con las especificaciones. Crean un sistema de software que utilizan personas o máquinas . Y estos sistemas de software tienen demanda o valor monetario de acuerdo con la equidad de ciertas personas. Estas personas representan equipos, empresas o industrias enteras que a su vez participan en la economía de mercado . Muchos intercambios en sistemas de software y desarrolladores de software , con el producto terminado y los compradores, entre compañías satisfacen una posición de equilibrio .

El valor de un desarrollador de software

La propuesta de valor de un desarrollador de software depende de cómo el profesional y la profesión en su conjunto comercializan su bien y servicio. Proponen su valor en moneda a las personas y empresas interesadas. La propuesta de valor de la inteligencia artificial satisface las mismas condiciones. El bien y el servicio utilizan más propiedad intangible e intelectual , pero aún están escritos en código mantenible y bibliotecas legibles. Esto permite a las personas con el conocimiento técnico y a las personas con sentido del mercado, colocar la aplicación de inteligencia artificial en el mercado.

La seguridad laboral de un desarrollador de software

En cuanto a los desarrolladores de software obsoletos o cualquier profesión dentro del valor del software, amenazado o reemplazado por aplicaciones de inteligencia artificial , esto depende de la actividad y las responsabilidades del trabajo. Y esto requiere un contexto de empleo, trabajadores y toda la empresa con condiciones de mercado. Parece que con un trabajo representativo continuo para aplicaciones de inteligencia artificial en computadoras, robots o cuerpos físicos, su aplicación en la economía de mercado requiere las mismas leyes y políticas otorgadas a los trabajadores . Esto requiere investigación sobre derechos y valores similares o diferentes de las máquinas. Cuando las máquinas capaces de realizar tareas, valoradas en oficios y acuerdos se codifican en leyes y políticas, pueden reemplazar o negociar mejores ofertas para las mismas actividades, tareas o empleos .

No lo harán.

En cambio, estas (relativamente) nuevas disciplinas transformarán la forma en que trabajan los desarrolladores de software.

Peter Norvig [1] recientemente dio una charla [2] describiendo cómo podría ser este cambio.

¡Disfrutar!

Notas al pie

[1] Peter Norvig

[2] Peter Norvig sobre “Como podemos programar”

A menos que se redefina el aprendizaje automático, no creo que pueda. La capacidad de identificar y enmarcar problemas y soluciones es un proceso de IA, pero solo he visto prácticas que pueden resolver problemas y proporcionar las soluciones según lo solicitado. No voy a decir que tales sistemas son imposibles en un sentido práctico.

Editar

Cuando comencé en el desarrollo de software, tuvimos que escribir controladores para casi todos los proyectos. Cuando muchos de esos controladores comenzaron a distribuirse con el software o el usuario final podía configurarlos fácilmente, un lamento común era que tales cosas harían que el desarrollador de software quedara obsoleto o al menos una profesión de nicho. Casi 30 años después, escuchamos a la industria y al gobierno quejarse sobre la escasez de desarrolladores calificados.

Muy pronto.

Pronto, todos los requisitos de trabajo serán para AI y ML sin que nadie sepa lo que están pidiendo. Los intermediarios tratarán de encontrar personas para llenar los requisitos, pero estarán más perdidos que ellos simplemente usando paquetes banales. Y, realmente están muy perdidos con eso. De hecho, se siente un poco repugnante cuando piensas en lo perdidos que están con eso.

Entonces, pronto nunca volverás a trabajar. Solo aquellos que convenzan a los intermediarios con una charla dulce apropiada podrán pasar. ¿Conoces a algún desarrollador de software que sepa cómo hablar dulcemente con alguien? No tienen remedio.

Entonces, el juego está listo para los programadores, ahora, hoy y para siempre. Pero, eventualmente, en mil años, algunos programadores desempleados podrían hacer herramientas que reemplazarán a los desarrolladores de software, los reales. Lo harán, porque no habrá ningún desarrollador de software real trabajando y la humanidad estará estancada. Con suerte, el resto de la humanidad traerá comida a esos desarrolladores de software reales que nunca podrían conseguir un trabajo.

(Si su automóvil comienza a chocar todo el tiempo. No culpe a los desarrolladores de software reales, solo culpe a los tipos que tienen trabajos de desarrollo de software).

Las áreas objetivo actuales de AI & ML no es reducir el costo de desarrollo s / w o reducir el esfuerzo humano, al menos durante las próximas 2 o 3 décadas. La investigación está más dirigida a aumentar la experiencia humana, para hacer del mundo un terreno de juego más nivelado para todos. Por ejemplo, digamos que las regulaciones sociales y económicas no están al ritmo del negocio, lo que lleva a muchas prácticas corruptas que el gobierno actual no pudo manejar, si logramos potenciar el gobierno al ritmo que avanza el negocio, eso es un gran beneficio tanto para los negocios como para los hombres comunes. Otro ejemplo de la inversión actual en el mercado comercial ocurre más en la euforia y la locura el 70% del tiempo, si logramos reducir esa locura del 70% a través de AI & ML, eso es un gran beneficio para toda la sociedad.

Supongo que al menos en este momento es donde se enfoca la IA y el ML.

Si bien es teóricamente posible que podamos hacer un gran avance en la IA en nuestra vida, resultando en un “bot” de programación con una capacidad extraordinaria, de manera realista creo que es muy poco probable.

Durante las próximas décadas, podemos ver avances en la automatización de la programación que hacen que algunas clases de aplicaciones sean susceptibles de creación sin humanos. En general, sin embargo, creo que los desarrolladores de software seguirán teniendo demanda durante mucho, mucho tiempo.

Cuando es más barato usar ai que usar humanos.

Aún no está allí. Y ciertamente tomará mucho más tiempo de lo que la gente predice.

Pasaron muchos años antes de que la automatización completa se volviera más barata que la mano de obra. Y aún tenemos trabajo manual cuando no es lo suficientemente barato.

Cuando hago una proyección de la historia a nuestros tiempos. Creo que estamos en la fase del motor de vapor de AI. A veces será antes de inventar el gobernador por ai. Solo entonces, comenzaremos a usar ai en todas partes. Y tomará mucho más tiempo para que comience la fase de automatización completa de ai. E incluso entonces, tendremos desarrolladores.

Creo que inventaremos al gobernador por ai en los próximos 50 años. Puede ser mañana o 50 años después. Difícil de predecir. Pero cuando lo hagamos, mucha gente de cuello blanco perderá empleos. La mayoría de las cosas de las que la gente gana dinero se pueden hacer a través del aprendizaje automático. Pero no tan bien como un hombre puede hacerlo. Por lo tanto, no es barato y prudente usar ai todavía (solo lea sobre el adpoclypse de youtube. Para este caso, usar ML es más barato que usar humanos por cierto). Al igual que el uso de motores de vapor sin gobernador no era barato y sabio.

Así que mantén la calma.

Probablemente estaremos muertos antes de que las máquinas se hagan cargo. Y seguramente se harán cargo. Es un problema para varias generaciones en el futuro.

More Interesting

¿Puedo mejorar mis habilidades de desarrollador de software desarrollando juegos?

Estoy trabajando como ingeniero de redes. No estoy interesado en este campo. Estoy cambiando mi perfil a desarrollador de software. ¿Qué idioma debo elegir que tenga un futuro muy brillante para los próximos 5 años al menos?

¿Qué idiomas debo aprender para convertirme en desarrollador de software y desarrollador de sitios web?

¿Los desarrolladores de software hacen un verdadero "desarrollo de software" en TCS / CTS / Infy y empresas de TI similares?

¿Por qué es importante la ingeniería de software para el desarrollo de software?

¿Dañaría una carrera en el desarrollo de software comenzar en una pequeña empresa?

¿Qué empresas ofrecen buenos servicios de desarrollo de software financiero y contable para grandes empresas?

¿Cuáles podrían ser los principales problemas relacionados con una cadena de bloques para valores financieros?

¿Escribir es más difícil que el desarrollo / codificación de software?

¿Qué es mejor, aprender diseño web o desarrollo de software?

¿Hay alguna forma de obtener experiencia práctica como ingeniero / desarrollador de software - DESDE CASA? (debido a mi situación inusual)

¿Prefieres hacer una programación competitiva (o) trabajar en tus propios proyectos (o) tomar algunos buenos cursos en Coursera para mejorar tus habilidades de codificación? ¿Por qué?

Me gustaría saber sobre trabajos de desarrollo de software en Lituania para un extranjero con una larga experiencia en C # que no habla lituano.

¿Cuál es su consejo para nivelar trabajo / estudio / proyectos / amor y lograr sus objetivos?

Cómo acceder a su red doméstica con su computadora portátil con VPN en el trabajo sin que su empleador conozca la dirección IP de su hogar