Soy un cientista social indenfesx ¿Debiera aprender a programar?

 


Para algunos podrá ser una respuesta obvia (SI), para otres, no tanto digo ¿Qué tiene que ver la programación con las ciencias sociales?

La respuesta no es tan obvia dado que les cientistas sociales vienen en variados colores y formas:

Los hay de los teoretas de escritorio, que solo saben leer y escribir (y perdónenme lo despectivo, pero francamente desconfío mucho de esa ciencia social que en su vida ha abierto un Excel o hecho trabajo de archivo o campo, y en todos estos años me ha resultado tremendamente inútil lo que ese tipo de cuentistas ha escrito). 

Están los que enfatizan más la dimensión interpersonal. Gente que se encarga de gestionar, de persuadir, o de montar estafas. 

Por último están los investigadores, que además de pensar, van a terreno a ver si lo que piensan tiene o no sentido con la realidad. Son la gente que hace la ciencia social. Estos también vienen en dos grandes "culturas", idiosincráticamente catalogadas como cualitativos y cuantitativos. 

Si eres de los primeros o aspiras a serlo, te recomiendo aprender meterle mano a la empírea, o mejor sigue tu camino, no te servirá nada de lo que escriba. Si eres de los segundos, solo te servirá si eres honesto y profesional, sino, si en realidad estas sacando el título para validar tu carrera política, o no quedar mal en tu red de contactos, etc, espero que ni siquiera egreses y que reconsideres tu vida. 

Si eres de los últimos, de todas maneras. 

Ya pero ¿y por qué?

Primero tengo que aclarar que la programación no es precisamente escribir código, esa es solo la parte visible, o la consecuencia de "saber programar". Pero programar es más bien aprender a razonar, a razonar algorítmicamente, a entender como manejar cosas digitales, y cuál es su lógica (al respecto ver la entrada sobre  Programación Orientada a Objetos).

Razonamientos que son transversales a prácticamente cualquier lenguaje. Y acá menciono parte de mi experiencia con R y Python. Tuve la chance de aprender estructura de algoritmos en Java por mi carrera, y gracias a ello mi manejo en estos otros dos lenguajes se vio tremendamente potenciado; ya no solo escribía los comandos, ahora era capaz de entender que estaba haciendo o como construir mis propios algoritmos que usaran cosas como recursión, procesos paralelos, control de eventos complejos, etc. 

Es decir, la competencia que aprendí en un dominio, fue transferible fácilmente no solo a otros lenguajes, sino que a mi área particular que es el análisis de datos y la estadística. Si eres cuantitativo, programar es lo tuyo, aún si usas Stata (que de hecho también se programa), Excel (las funciones avanzadas, como las macros se hacen a través de Visual Basic) o SPSS, porque hasta esa mierdecita de programa requiere que le metas mano al código (en este caso el lenguaje Basic) para aquellas funcionalidades avanzadas en las que no tiene botoncitos. 

¿Y si soy cualitativo?

Bueno, las notas de campo, los registros audiovisuales de entrevistas o focus group, sus transcripciones, archivos, etc, todos son técnicamente datos, solo que las aproximaciones cualitativas usan otras estrategias para analizarlos. Por ejemplo, el ejercicio de "codificar" un documento en el análisis de contenido o de discurso, es básicamente una forma de metadatos o de relaciones semánticas, todos procesos muy propios de la lógica informática. 

Y es muy probable que para ello uses un software como Atlas.ti o Nvivo. Pues aprovecho de pasarte el dato de que todo lo que esos softwares hacen y muchas cosas más, se pueden hacer en Python o R, y sin necesidad de pagar licencias o andar pirateando programas; cuando entres al mundo laboral verás que no puedes simplemente ir por ahí con softwares pirata. 

Pero además hay otras 2 razones por las que si eres cualitativo, encontrarás un tremendo valor en saber programar:

  1. Internet es la puta base de datos cualitativos más grandes de la historia: esto ha hecho surgir múltiples metodologías como las etnografías digitales, que han buscado sacarle el jugo a estos datos. Pero su acceso no es algo trivial, el volumen de estos es gigante y tiene tanta basura entre medio, que el copy & paste o la limpieza manual se vuelve infactible. Para ello existen técnicas como el Web Scraping, que básicamente es construir un algoritmo que saque cosas de páginas web y te las deje en un formato que sea usable para ti. Obviamente no lo hace automático, tienes que bueno, programar. Por cierto, les recomiendo buscar si esta maravilla de técnica se puede hacer en Atlas.Ti, Stata o SPSS jajajaja
  2. Las nuevas técnicas de análisis cualitativo: puede que hayas escuchado sobre el Procesamiento de Lenguaje Natural, el modelamiento de tópicos o cosas por el estilo. Sino, bueno, aplica su gugleo. Pero básicamente son técnicas que permiten procesar de manera semántica múltiples datos textuales, buscando patrones en estos, las cuales pueden apoyar, complementar, o ser en si mismas el producto de la investigación. Nuevamente, estas técnicas se pueden implementar sin mayor dificultad en R o Python (si manejas bien la teoría), y again, todo eso involucra saber programar rutinas de análisis.
A esto agregar que los scripts con el código que escribiste son compartibles, lo que le da un tremendo valor en términos de transparencia, cuestión central para el proceso científico. De hecho muchos investigadores han empezado a compartir el código de sus estudios, permitiendo a cualquiera auditar sus decisiones metodológicas y replicar sus estudios, un buen ejemplo de ello es el framework de la Fundación de Ciencia Abierta

Esto que he mencionado hasta ahora se ha denominado como Ciencias Sociales Computacionales, que es como el último grito de la moda en ciencias sociales, y que te recomiendo le pegues una mirada, acá te dejo un buen curso gratuito

¿Y si me dedico a la gestión?

Bueno, la programación no es solo para investigar y procesar datos, se puede hacer literalmente de todo con lenguajes de programación, desde páginas web hasta softwares de escritorio o aplicaciones. 

Esto significa que puedes manipular cualquier cosa que esté dentro del rango de tu computador, desde la planilla de Excel, hasta la presentación de powerpoint, o incluso, algún software especial que usen en tú empresa u organización. Y acá entra la magia, si parte de tu trabajo involucra una rutina relativamente regular con cualquiera de estas herramientas, pues está pidiendo ser automatizada, lo que nuevamente, se puede programar, al respecto te recomiendo este clásico texto sobre el tema. 

Puedes sacar el texto de acá

Revisa el índice ¡¡Puede que una buena parte de tu trabajo sea automatizable!! En lo personal yo automatizo reportes. Construyo una rutina que descarga reportes desde una página del cliente con Web Scraping (usando Selenium y Phantom JS en R), los que luego procesa, limpia, y convierte en un resumen con gráficas, textos parametrizados, que luego exporta a ppt o word, e incluso, puede enviar automáticamente por correo al cliente. 

Y ya si te entusiasmas demasiado, puedes construir tu propia aplicación de escritorio que haga algo que necesites, y quien sabe si en una de esas, hasta construyes un producto comercializable (aunque lo dudo, ya está todo hecho, jajaja). 

En resumen, si quieres una habilidad dura bastante demandada, con aplicaciones prácticas para múltiples áreas, la programación es la tuya, y para nuestra suerte, si puedes leer esto desde un computador, tienes ya literalmente todo lo que necesitas para aprender. 


Comments

  1. Que buen post. Si antes aprender Rstudio era una necesidad, ahora lo reafirmo.

    ReplyDelete
  2. Me leíste la mente con lo de honestidad y profesionalidad. Si hay algo en que vale morir con las botas puestas es en eso. Trabajarle a un cobarde ganador que en su vida se leyó un libro porque sí, por el placer de descubrir, no es el más óptimo de los escenarios.

    ReplyDelete
  3. Te agradezco esta entrada. Cuando tuve Facebook pude ver la publicación y gracias a eso estoy aprendiendo a manejar RStudio (me dio curiosidad).

    Un abrazo grande.

    ReplyDelete

Post a Comment