¿Será necesario conocer el aprendizaje automático para todos los ingenieros de software en el futuro cercano? ¿Si no, porque no? ¿Será tan importante como conocer algoritmos, estructuras de datos, SO o bases de datos?

Conocer el aprendizaje automático no será necesario. Pero, no por la razón que podrías pensar.

Los algoritmos de aprendizaje automático pueden ser increíblemente complicados de idear y comercializar. En realidad, USAR el aprendizaje automático puede ser increíblemente fácil.

A modo de analogía, es como la diferencia entre saber cómo implementar árboles rojo-negros desde cero (un verdadero dolor en la parte posterior, no se pretende un juego de palabras de ML) y simplemente usar una biblioteca de árboles rojo-negro existente (mucho, mucho, mucho más fácil). como la diferencia entre implementar quicksort y llamar a la función qsort ().

Lo que necesita saber para usar el aprendizaje automático se puede aprender en unos minutos. El resto del trabajo consiste en recopilar datos, posiblemente marcar los datos como un ejemplo de esto o aquello, luego alimentarlos a través del aprendizaje automático. El algoritmo de aprendizaje automático genera un modelo (que, lo suficientemente divertido, incluso podría ser un árbol rojo-negro). Cuando desea utilizar su modelo, lo carga en un tiempo de ejecución y luego pasa los datos que desea que ML clasifique / regrese / etc.

Enhorabuena, está utilizando y aprovechando el aprendizaje automático sin saber lo primero sobre cómo funciona debajo de las cubiertas.

Siento que será al menos tan importante como las bases de datos. Una gran parte del trabajo empresarial se trata de bases de datos. Siempre que tenga bases de datos o sea un negocio que tenga la capacidad de acumular grandes cantidades de datos, se requerirá experiencia en aprendizaje automático.

Otras respuestas también son correctas: creo que si bien saber cómo funciona algo como el descenso de gradiente es bueno, es posible que no se requiera conocimiento en el futuro para construir algo útil. Al igual que ahora ya no es eficiente reconstruir un módulo de clasificación o un módulo de lista cuando ya está disponible en Python / C ++. Aunque, uno debe conocer los fundamentos de los algoritmos para poder aplicarlos correctamente.

Dirigir a las computadoras para que tengan sentido de los datos de la manera correcta será donde los humanos vendrán en su mayoría. El pequeño nicho serán los investigadores súper inteligentes que crearán mejores algoritmos para que el resto de nosotros los usemos.

Iré un paso más allá: creo que ML se convertirá en parte del plan de estudios estándar de ciencias / matemáticas. Esto se debe a que la disponibilidad de (grandes) cantidades de datos y la ubicuidad de los sensores está cambiando la forma en que se hace la ciencia. El escritor del siguiente blog es mucho más elocuente que yo sobre esto:

El fin de la teoría: el diluvio de datos hace obsoleto el método científico

Toda persona educada tendrá al menos cierta comprensión de cómo funciona el aprendizaje automático, al igual que se supone que cualquier persona educada de hoy comprenda qué son los gráficos de barras o qué significan los registros. Ahora, cada desarrollador de software necesita aplicar trigonometría o registros o probabilidad básica en su trabajo diario. ¡Realmente no! Muchos programadores podrían salirse con la suya sin comprender profundamente el LD. Para el caso, muchos SE ya se salen con la suya al no saber mucho / nada sobre los sistemas operativos, o incluso RDBMS [ya que estos son dos temas que el OP establece específicamente en su pregunta].

Por lo menos, estoy dispuesto a apostar que dentro de 5 años, cada plan de estudios universitario medio decente en CS tendrá un curso de ML.

Absolutamente no. Los ingenieros de software realizan un trabajo específico, los investigadores de aprendizaje automático realizan otro trabajo específico y el área de su intersección es mínima. Sin embargo, para las empresas que desarrollan productos basados ​​en el aprendizaje automático, es mejor que sus ingenieros de S / W comprendan qué es ML, al menos desde una perspectiva de caja negra. Algunas compañías pueden requerir más que conocimientos básicos de ML para sus ingenieros de S / W. Pero, ¿todas las empresas del mundo están haciendo ML? ¡No! ¿Sucederá alguna vez en el mundo? ¡Probablemente no! Incluso si sucede, aún necesitarían ingenieros de S / W bien calificados para codificar algoritmos y tecnologías eficientes y para eso no es necesario tener un doctorado en ML.

No estaré de acuerdo con todas las otras respuestas y diré que sí, será una necesidad.

Los datos se están volviendo omnipresentes, espero muchas piezas de software dependiendo de aprender algo de los datos en un momento u otro.

Piense en esto: es casi imposible crear software que no genere datos, hasta el punto de que la forma en que se utiliza el software son datos.

Luis

No, conocer el aprendizaje automático no será necesario para todos los ingenieros de software en el futuro cercano.

Al igual que saber algoritmos, o estructuras de datos, o sistemas operativos, o bases de datos, etc., no es absolutamente necesario para un ingeniero de software hoy en día.

No, pero creo que la ciencia de datos (recuerde que el aprendizaje automático es solo una parte del panorama general aquí) será el área de software que tendrá más movimiento y más demanda de talento en los próximos 10 años. No impregnará exactamente todo como lo hacen los algoritmos, por lo que no creo que sea una necesidad para todos los desarrolladores, pero imagino que ocupará una posición similar a la que tiene el desarrollo de aplicaciones móviles en la actualidad.

Absolutamente no. No necesita aprendizaje automático para crear un sitio web de WordPress para su carnicero local. Sospecho que hay más desarrolladores que ganan mucho dinero con los sitios web de WordPress que el aprendizaje automático.

No, no lo creo, la mayoría de los programadores tampoco necesitan mucho conocimiento de algoritmos. Sin embargo, es difícil hacer algo significativo sin unas pocas estructuras de datos simples. Las bases de datos se aplican un poco a mi campo de trabajo, pero la mayoría de los programadores probablemente no harán mucho con ellas a diario.

El aprendizaje automático seguirá siendo un nicho, creo, creo que la utilidad más allá de calcular qué anuncios deberían mostrarse a las personas es todavía bastante limitada.

More Interesting

¿Es demasiado tarde para estudiar programación y convertirme en ingeniero de software si ya estoy trabajando a tiempo completo?

¿Puede un hacker ético convertirse en ingeniero de software?

¿Hay grandes ingenieros de software que dejan el trabajo para perseguir sus pasiones? Si es así, ¿cuáles son sus historias?

¿Debo elegir a Philips para un puesto de ingeniero de software senior sobre las ofertas de Myntra y Walmart Labs?

¿Cuáles son los diferentes niveles de ingenieros de software en Amazon.com?

¿Qué proyectos de cartera debe construir un ingeniero de software senior?

Soy un nuevo graduado universitario que se mudará a Seattle pronto para tomar una posición SDE en Amazon. ¿Alguna sugerencia sobre qué área debería encontrar vivienda de alquiler?

¿Cómo lo aprenden la mayoría de los ingenieros de software autodidactas?

¿Cuáles son algunas palabras de moda para indicar que un ingeniero de software ha trabajado en aplicaciones grandes?

¿Es una práctica común que los programadores / ingenieros de software usen punteros para controlar cualquier parte de sus computadoras, por ejemplo, RAM, GPU, sensores, etc.? ¿O hay funciones / métodos en ciertas bibliotecas, por ejemplo, OpenCL para GPU, que ya lo hacen?

¿Por qué los competidores de software simplemente no copian / pegan código cuando su rival agrega una nueva característica exitosa y la modifica un poco para evitar las leyes de derechos de autor?

¿Cuáles son los mejores equipos de ingenieros de software en Google?

¿Cuáles son los mejores complementos para las pruebas de software que debe tener cualquier ingeniero de pruebas?

¿Qué tipo de sistema operativo e IDE utilizan los ingenieros de software de Facebook?

¿Cuáles son las habilidades necesarias para pasar de un programador de laboratorio de investigación a un ingeniero de software industrial?