¿Deberían los científicos de datos aprender JavaScript?

Los pros y los contras de utilizar el lenguaje número uno de la web para la ciencia de datos

Si ha estado siguiendo el panorama tecnológico en los últimos años, probablemente haya notado al menos dos cosas.

Por un lado, es posible que haya notado que JavaScript es un lenguaje muy popular en estos días. Ha ido creciendo en popularidad desde que Node.js permitió a los desarrolladores de JavaScript escribir código del lado del servidor.

Más recientemente, marcos como Electron, Cordova y React-Native han permitido a los desarrolladores de JavaScript crear aplicaciones nativas en una amplia gama de plataformas.

Probablemente también haya notado que hay mucho entusiasmo en torno al campo de la ciencia de datos, especialmente el aprendizaje automático. Los avances recientes en la teoría y la tecnología han hecho que este campo que alguna vez fue esotérico sea mucho más accesible para los desarrolladores.

Entonces, podría preguntarse si forman una pareja natural. ¿Deberían los científicos de datos considerar aprender JavaScript?

La mayoría de los científicos de datos trabajan con alguna combinación de Python, R y SQL. Si es nuevo en el campo, estos son los idiomas que debe dominar primero .

Los científicos de datos también pueden especializarse en otro lenguaje como Scala o Java. Hay muchas razones por las que estos idiomas son tan populares.

Pero relativamente pocos científicos de datos se especializan en JavaScript.

Sin embargo, dada la ubicuidad de JavaScript y la popularidad de la ciencia de datos, ¿cuánto podrían beneficiarse los científicos de datos al aprender incluso los conceptos básicos del lenguaje? ¿Y qué hay de los desarrolladores de JavaScript que quieran explorar la ciencia de datos?

Comencemos examinando algunas objeciones importantes y luego revisemos algunos argumentos a favor.

En contra

  • Funcionalidad : JavaScript simplemente no tiene la gama de paquetes de ciencia de datos y la funcionalidad incorporada en comparación con lenguajes como R y Python. Si no le importa reinventar la rueda, esto podría ser un problema menor. Pero si necesita ejecutar análisis más sofisticados, se quedará sin opciones bastante rápido.
  • Productividad : otra ventaja de los extensos ecosistemas de Python y R es que hay muchas guías y procedimientos disponibles para casi cualquier tarea de ciencia de datos que desee realizar. Para JavaScript, este no es realmente el caso. Probablemente le tomará más tiempo descubrir cómo resolver un problema de ciencia de datos en JavaScript que en Python o R.
  • Subprocesamiento múltiple : a menudo es útil procesar grandes conjuntos de datos o ejecutar simulaciones en paralelo. Sin embargo, Node.js no es adecuado para tareas vinculadas a la CPU con un uso intensivo de la computación. Para tales tareas, lenguajes como Python, Java o Scala tienen ventaja sobre JS. Pero, consulte el proyecto Napa.js de Microsoft. Proporciona un tiempo de ejecución de JavaScript multiproceso que puede complementar Node.js.
  • Costo de oportunidad : quizás la razón principal por la que los científicos de datos tienden a no aprender muchos lenguajes más allá de Python y R se debe al 'costo de oportunidad'. Cada hora que se dedica a aprender otro idioma es una hora que se podría haber invertido en aprender un nuevo marco de Python u otra biblioteca R. Si bien estos lenguajes dominan el mercado laboral de la ciencia de datos, hay más incentivos para aprenderlos. Y debido a que la ciencia de datos es un campo en rápido movimiento, siempre hay algo nuevo que aprender.

por

  • Visualización : JavaScript sobresale en la visualización de datos. Bibliotecas como D3.js, Chart.js, Plotly.js y muchas otras facilitan la creación de cuadros de mando y visualización de datos potentes. ¡Vea algunos buenos ejemplos de D3!
  • Integración de productos : cada vez más empresas utilizan tecnologías web con una pila basada en nodos para crear su producto o servicio principal. Si su papel como científico de datos requiere que trabaje en estrecha colaboración con los desarrolladores de productos, entonces no está de más "hablar" el mismo idioma.
  • ETL : las canalizaciones de procesamiento de datos generalmente se implementan en un lenguaje de propósito general, como Python, Scala o Java. JavaScript a menudo no se ve. Sin embargo, esto podría ser injusto. El módulo del sistema de archivos de Node 'fs' proporciona una gran API que le permite llamar a las operaciones estándar del sistema de archivos de forma sincrónica o asincrónica. Node también funciona muy bien con MongoDB y muchos otros sistemas de bases de datos populares. La API de Streams hace que sea muy fácil trabajar con flujos de datos grandes, otra ventaja potencial para ETL. Como se mencionó anteriormente, para procesamiento en paralelo y multiproceso, consulte el proyecto Napa.js de Microsoft.
  • Tensorflow.js : ¿Quién dice que JS no puede hacer cosas interesantes de aprendizaje automático? A principios de 2018, se lanzó Tensorflow.js. Esto lleva el aprendizaje automático a los desarrolladores de JavaScript, tanto en el navegador como en el servidor. Tensorflow es una biblioteca de aprendizaje automático popular, desarrollada por Google y de código abierto en 2015. Reconocimiento de gestos, reconocimiento de objetos, composición musical… lo que sea, probablemente pueda tenerlo. Lo mejor que puede hacer ahora mismo es echar un vistazo a algunas demostraciones.

Conclusión

Entonces, ¿deberían los científicos de datos aprender JavaScript?

Aprender JavaScript no dañará su currículum. Pero no lo aprenda como reemplazo de otros idiomas.

Como primer idioma, el mejor consejo es aprender uno de Python o R. También debería sentirse cómodo usando algún lenguaje de base de datos, como SQL o MongoDB.

Sin embargo, una vez que esté familiarizado con los conceptos básicos, es posible que desee especializarse más. Quizás desee aprender Apache Spark para trabajar con conjuntos de datos distribuidos gigantes. O tal vez prefiera aprender otro idioma como Scala, MATLAB o Julia.

¿Por qué no considerar JavaScript? Será valioso si desea especializarse en visualización de datos, o si su función requiere que trabaje en estrecha colaboración con un producto creado con JavaScript o una tecnología relacionada.

Las capacidades de aprendizaje automático de JavaScript están avanzando rápidamente. Para algunos casos de uso, quizás ya sea una alternativa sólida a los lenguajes de ciencia de datos habituales.

En última instancia, la decisión es práctica y personal. Depende de qué aspectos de la ciencia de datos le parezcan más interesantes y de las oportunidades profesionales que más le entusiasmen.

Pero con las tendencias actuales, una cosa es segura. En los próximos años, JavaScript abrirá más puertas de las que cierra.