¿Tiene sentido que un científico de datos aprenda Python después de adquirir competencia en R.? ¿No es mejor aprender Java con fines de producción?

En cualquier empresa, al menos en las que he trabajado, existe una división aguda entre el grupo de ciencia de datos y los ingenieros de software responsables de crear el código de producción. Por lo general, depende de los científicos de datos desarrollar los scripts necesarios para explorar datos, construir modelos y crear prototipos. Se supone que es mejor contar con ingenieros de software profesionales y dedicados que creen código de nivel de producción. Tenga en cuenta que el diagrama de Venn ampliamente aceptado de Conway de las habilidades de los científicos de datos presenta “Hacking Habilidades” y no “Software Engineering” como uno de sus pilares principales:

No hay nada de malo en dirigir su atención a Python; sin embargo, es posible que desee considerar si tiene más sentido desarrollar el dominio de R primero que la simple “competencia”. Eche un vistazo al libro de Hadley Wickham sobre Advanced R y vea si los conceptos le son familiares o ajenos. Otros libros a considerar incluyen Wickham’s R for Data Science, Gillespie’s Efficient R Programming y Matloff’s The Art of R Programming: A Tour of Statistical Software Design. Cualquiera de estos son excelentes recursos para convertirse en un desarrollador R superior. ¿Por qué convertirse en otro científico de datos que tiene “competencia” en R y Python, cuando puede convertirse en uno de los raros con experiencia en uno?

Buena suerte con lo que elijas. Pero será difícil encontrar un anuncio de trabajo para un rol de científico de datos que aprecie la habilidad de Java.

Sí, tiene mucho sentido aprender Python. Este año, KDNuggets publica una encuesta y Python hizo lo que muchos sabían que haría años atrás: superó a R como el lenguaje más popular utilizado entre el personal de ciencia de datos y aprendizaje automático.

Python se usa con frecuencia en producción porque es simple, tiene una gran cantidad de bibliotecas estándar para la ciencia de datos (pandas, numpy, sklearn, tensorflow, etc.), y está mucho más cerca de la programación “real” que R. También es más poderoso en el tiene la sensación de que hay muchas más bibliotecas estándar para Python que puede integrar con su código ML y al mismo tiempo estar más cerca de un lenguaje de programación normal que R. Para fines de producción, también es MUCHO más rápido que R.

Java para producción es bueno si está utilizando Hadoop o una función MapReduce que necesita velocidad por encima de todo. La mayoría del código de ciencia de datos y ML se escribirá en Python debido a todas las bibliotecas y envoltorios (numpy y tensorflow vienen a la mente) alrededor del código C ++ que puede hacer que Python sea casi tan rápido como compilar C ++ nativo.

¿Eso significa que deberías cambiar completamente de R a Python? ¡¡NO!! R en este punto todavía expulsa a Python completamente del agua para los paquetes de análisis estadístico. Hay demasiadas bibliotecas por ahí que los estadísticos crean tan pronto como sale un nuevo documento para ignorar a R. Todavía uso R si alguna vez necesito un análisis estadístico. Pero para fines de aprendizaje automático y ciencia de datos en general, el 85% de mi trabajo probablemente se realizará en Python.

Editar: Existe la encuesta Nuevo líder, Tendencias y sorpresas en Análisis, Ciencia de datos, Encuesta de software de aprendizaje automático

Si va a trabajar con conjuntos de datos del tamaño de Google, Java y C ++ son los lenguajes para la producción (ya que son mucho más rápidos que Python o R).

Sin embargo, los conjuntos de datos en muchas compañías son lo suficientemente pequeños como para que Python o R puedan usarse en la producción, especialmente si uno lo piensa bien. El trabajo de ML de atención médica es un ejemplo.

En términos de aprender R o Python antes que el otro, no importa. Elija uno y obtenga experiencia práctica. Si la tarea requiere que cambies de idioma en algún momento, no es una transición desalentadora.

Creo que sí, principalmente porque aumentaría su rango y mejoraría su conjunto de habilidades. Siempre es emocionante explorar otra plataforma y trabajar en los conceptos desde un punto de vista diferente.

Los propósitos de producción realmente dependen de sus selecciones: Python también puede ser de calidad de producción, quién dice que no lo es. Java es solo otra plataforma. Tal vez sea un IDK más rápido: recién estoy comenzando en el campo. R parece genial: IDK, por qué no es una plataforma de producción.

Estoy en tu situación ahora. He estado usando R durante aproximadamente un año y medio y estoy en el nivel superior de experto pero por debajo de experto. Mi plan es aprender suficiente python para poder sobrevivir, pero seguir concentrándome en R. No voy a mirar Jaca, C u otros lenguajes ‘reales’.

Python está ganando popularidad, así que quiero suficiente exposición para poder leer y comprender el código de Python. R será mi enfoque principal porque hay una gran diferencia entre competente y experto, y es mejor para un científico de datos dominar un idioma que ser medio en dos.

Si conoce R y ciencia de datos, puede aprender un poco de Python que necesita en una semana.