Como científico de datos, ¿cuáles son las cosas que puedo aprender de los desarrolladores de stack completo para poder crear aplicaciones web interesantes para la ciencia de datos?

Si desea crear una aplicación web basada en un análisis, aquí hay algunas habilidades con las que comenzaría:

  • Aprenda a asignar sus datos y análisis a una API RESTful (transferencia de estado representativa). A los científicos de datos generalmente les gusta trabajar con datos tabulares, a menudo vinculados a través de tablas por identificadores comunes y accedidos a través de SQL. Traducir esto a un conjunto de sustantivos y verbos en el estilo REST es un gran paso para hacer que sus herramientas y resultados sean más ampliamente utilizables.
  • Aprenda AJAX básico para que pueda acceder a su API RESTful desde el código del lado del cliente. Creo que jQuery es la mejor manera de comenzar con esto. Además, no se obsesione con la manipulación DOM de bajo nivel en Javascript. Aprenda Selectores y aproveche todo el trabajo duro que los desarrolladores de jQuery han puesto en el problema.
  • Aprenda cómo abordar el diseño en la web. Esto significa HTML + CSS. El marco Bootstrap de Twitter es un punto de partida encantador y bien diseñado.
  • Aprenda a crear gráficos interactivos en el lado del cliente. D3.js es la forma más madura de hacer esto, pero es detallado. Plottable (Home, de Palantir) y NVd3 (nvd3-community / nvd3, recientemente revivido) son agradables capas de abstracción sobre los detalles de D3.

Para experimentar con todo esto, una plataforma como Google App Engine es un buen lugar para comenzar. Maneja muchos de los detalles operativos y le permite concentrarse en implementar la aplicación. Sugeriría comenzar en Python, si eso es con lo que se siente cómodo, o Ir, que prefiero. Ir a App Engine todavía está en sus inicios, pero es fácil escribir servicios web, ejecuta y compila rápidamente, y las partes específicas de App Engine son livianas. El núcleo del código es solo la biblioteca estándar Go, lo que hace que sea más fácil pasar a Google Compute Engine, AWS o cualquier otro lugar que desee.

Finalmente, un poco de mentalidad. Me gusta pensar en la creación de aplicaciones web como otra forma de expresar sus ideas, como dar charlas, escribir documentos o distribuir paquetes R. Un prototipo funcional basado en un nuevo algoritmo o conjunto de datos suele ser mucho más convincente que un informe o una herramienta de línea de comandos, especialmente para los que no son científicos de datos. Sus aplicaciones web no tienen que estar completamente pulidas y producidas para ser útiles en esta capacidad. Pero sí necesita comunicar su trabajo con la misma claridad en una aplicación interactiva que lo haría en cualquier otro medio.

Viniendo de un desarrollador de pila completa (Java) que comienza mi viaje hacia la ciencia de datos, diría que la respuesta es Python, Python, Python. Parece que en el mundo de la ciencia de datos, el debate es sobre R vs Python, y en el mundo del desarrollo de aplicaciones, Python es un gran lenguaje en el que puede implementar aplicaciones en un host web LAMP barato, por lo que Python sería lo mejor de ambos mundos. PD: no he aprendido Python (todavía), así que tómalo como un punto de datos al leer esto 🙂