¿Debo aprender a desarrollar backend si quiero ser ingeniero de aprendizaje automático?

Un ingeniero de aprendizaje automático es solo un ingeniero de software especializado realmente, y uno que solo funciona en el back-end. Entonces, de alguna manera, se podría decir que un ingeniero de aprendizaje automático es un desarrollador de back-end.

Pero para responder a su pregunta, sí, necesita aprender muchas de las habilidades de un desarrollador de back-end, como bases de datos, servicios web, API, servicios en la nube, infraestructura de implementación, etc. Todo sucede hoy en la web, por lo que debe aprender sobre la web.

Obviamente hay diferencias. La mayor parte de su codificación probablemente se realiza en Python, mientras que un desarrollador de backend típico usa lenguajes como Java y C #. Y el código que escribes es muy diferente. Está implementando canalizaciones de aprendizaje automático y se centra en el rendimiento. Los desarrolladores de backend típicos pasan gran parte de su tiempo escribiendo abstracciones eficientes sobre las operaciones CRUD.

Aún así, a diferencia de un científico de datos, no eres solo un analista. Escribe código de producción, por lo que es un ingeniero de software como cualquier otro.

Bueno, la mayor habilidad que necesitas aprender es Matemáticas o Estadística. Eso es significativamente más importante que la habilidad de back-end, que debo decir que a su vez es más importante que las habilidades de front-end o de aplicación para el aprendizaje automático.

Matemáticas o estadísticas, es la base de todas las formas de aprendizaje automático. No dejes que nadie te moleste diciendo “hay bibliotecas / servicios / marcos para hacer eso”. Casi tendrá la garantía de no entender realmente lo que ha encontrado la máquina. Dicho esto, solo si tiene que procesar grandes cantidades de datos almacenados necesitará habilidades de back-end, pero espera que también se encuentre con muchos de ellos. No es imposible hacer trabajo front-end para Machine Learning. Como ejemplo, di una charla en una conferencia el año pasado y escribí un algoritmo genético simple en Javascript y D3 para ilustrar los conceptos en el trabajo. Está en JSBin en alguna parte.

La respuesta corta es . El aprendizaje automático rara vez se realiza en el lado del cliente porque:

  1. No tienen suficiente poder de procesamiento
  2. Cualquier cosa del lado del cliente es vulnerable a ser robada y utilizada por otra persona.
  3. El aprendizaje automático a menudo se corrige automáticamente, y es más fácil enviar los datos al modelo que enviar el modelo a los datos y enviar actualizaciones al modelo.

En grandes empresas como Google o Facebook, no, absolutamente no.

Los ingenieros de aprendizaje automático conciben, construyen y entrenan modelos. No tienen que recopilar los datos que usan. No tienen que integrar sus modelos en ningún sistema basado en la web. Ni siquiera tienen que hacer las herramientas para monitorear el entrenamiento y visualizar los resultados.

Otros ingenieros hacen esas cosas.

Sin mencionar que hay muchos ingenieros de aprendizaje automático trabajando en modelos que no necesariamente están conectados a algún producto basado en la web.

ML es backend en el sentido de ser algo con lo que un usuario no interactúa directamente.