Contents

¿Qué lenguaje de programación debo aprender?

Durante una mis clases de la universidad, un profesor se dirigió a todos y nos dijo: “Si van aprender algo, aprendanlo bien.” Esas palabras se quedaron grabadas en mi mente por mucho tiempo, incluso influyó en gran medida al momento de comenzar a aprender algo nuevo.

El Sensei

El supervisor de mis prácticas profesionales, el Ing. Raymundo Gutierrez, se dio cuenta que me gustaba mucho las computadoras y los dispositivos móviles. Para ese entonces, era 2012 y tenía 22 años, estaba en mi primer trabajo relacionado a mi carrera en el Centro Internacional de la Papa (CIP). Raymundo me llamó a su despacho y me dijo, te voy a presentar a alguien que te va ayudar en lo que te gusta - jajaja por no decirme que yo era un friki :nerd_face: - y me llevó a la oficina del Dr. Kelvin Huamani. Hasta ahora no me olvido de ese momento, Kelvin estaba trabajando en el sistema operativo de linux, con dos monitores y las pantallas totalmente negras :sweat_smile: y con la consola prendida llena de códigos… me pareció tan extraño e interesante… que actualmente es mi modo de vida y un resumen de lo que hago día a día 😆.

Kelvin me comenzó a contar entusiasmado todo lo que estaba haciendo, así como lo hago yo ahora cuando alguien quiere aprender a programar jejejeje. Kelvin fue mi Sensei y aprendí mucho de su filosofía, la cual llevo hasta ahora; promover el uso de programas libres que no dificulten su uso por requerimiento de pago de licencias.

Menos es más

Cuando llegó el momento de escribir mi tesis para optar por ingeniero. Kelvin me recomendó escribirla en latex (LaTeX Project, 2020), yo ni corto ni perezoso emprendí un camino desconocido entre múltiples programas bajo la tutela de Kelvin que me explicaba poco a poco como ir usando cada herramienta. Inicié usando JabRef (JabRef, 2020) para mis referencias y RSweave (RPubs, 2020) para escribir el documento en latex… que por cierto muchas veces no compilaba y era un dolor de cabeza para encontrar el error. Pero siempre soy persistente al momento de aprender y le dedico mucho tiempo a ese proceso… entonces sin desistir terminé de escribir mi tesis en latex, el cual ahora ya no compila más 😆, y quedó para el recuerdo. Actualmente uso Rmarkdown para escribir mis documentos (Xie et al., 2020; Xie, 2017). También con la tesis inicié mi travesía con R (R Core Team, 2020) para el análisis de mis datos experimentales, y actualmente después de casi 8 años se ha convertido en mi programa favorito y uno de los que más uso. Pero no fue fácil, me tomó mucho tiempo entender muchas cosas de programación ya que como agrónomo lo único complejo que conocía hasta ese momento era excel.

Cuando inicié mi proceso de aprendizaje usaba distintos programas para hacer cada proceso, i.e. uno para editar las figuras, otro para hacer las tablas, otro para las referencias, otro para hacer los análisis, etc etc… actualmente en mi escritorio solo tengo dos programas: R (R Core Team, 2020) y Zotero (Digital Scholarship, 2020) las cuales las combino con las herramientas de google para generar un flujo de trabajo reproducible, y es más que suficiente para hacer todas las cosas que requiero para mis trabajos de investigación.

La perseverancia es la clave

En una oportunidad uno de mis supervisores me dijo que estaba perdiendo mi tiempo al tratar de aprender R que había programas más fácil para hacer los análisis; y quizás estaba en lo cierto… pero esos programas NO eran libres y requería pagar licencias para su uso, y eso no me parecía adecuado sobre todo en nuestro país donde abunda el uso de software pirata y no se respeta los derechos de propiedad intelectual, por lo que sería bueno difundir la filosofía de uso del software libre en las áreas educativas y de investigación.

Toma mucho tiempo aprender algo nuevo, pero con el tiempo puedes llegar a ser mucho más productivo y eficiente. Generalmente el inicio es la parte más complicada y donde la mayoría de personas desisten en aprender por la falta de paciencia; y al final terminan haciendo todas las cosas de forma manual que al corto plazo es más rápido pero a la larga es ineficiente y consume mucho tiempo. Como me dijo alguna vez otro de mis supervisores: “Si vas hacer algo muchas veces, es mejor crear una función que te ayude en las tareas repetitivas”… ya con el tiempo y el incremento de mi proficiencia en programación fui implementando diversas funciones para distintas tareas; quizás al inicio me toma mucho tiempo pero una vez que las funciones esten implementadas se puede ahorrar mucho tiempo y me permite avanzar más rápido en mis demás tareas.

Y, la pregunta?

Entonces vamos a la pregunta… ¿Qué lenguaje de programación debo aprender?.. lo que normalmente hago al momento de aprender una nueva herramienta es buscar en la internet cuales son las mejores y entró a los foros para leer los comentarios de los usuarios. Luego de eso, me pregunto: ¿para qué quiero aprenderlo? y ¿cuál es el objetivo de hacerlo?, ¿vale la pena invertir tiempo en aprender esta nueva herramienta? - hay mucha gente que se pasa años queriendo aprender algo y nunca llega a hacerlo por que en el camino pierde el foco y va aprendiendo un poco de todo y nada a la vez - ya teniendo claro la elección inició el proceso de aprendizaje. La idea es no aprender múltiples programas y al final no saber ninguno bien. Es mejor dedicarle todo el esfuerzo y tiempo a uno solo y se darán cuenta que al final del día van a ser mucho más eficientes con el programa que hayan elegido.

La constancia y la perseverancia trae sus frutos, no desistan en el proceso de aprendizaje… buena suerte con los 10 mil softwares que usan :stuck_out_tongue_closed_eyes:.

Referencias

Digital Scholarship. (2020). Zotero | Your personal research assistant. https://www.zotero.org/

JabRef. (2020). JabRef - Free Reference Manager - Stay on top of your Literature. https://www.jabref.org/

LaTeX Project. (2020). LaTeX - A document preparation system. https://www.latex-project.org/

R Core Team. (2020). R: A language and environment for statistical computing. R Foundation for Statistical Computing. https://www.R-project.org/

RPubs. (2020). Introduction to Sweave (R and LaTeX). https://rpubs.com/YaRrr/SweaveIntro

Xie, Y. (2017). Bookdown: Authoring books and technical publications with R Markdown. CRC Press. https://bookdown.org/yihui/bookdown/

Xie, Y., Allaire, J. J., & Grolemund, G. (2020). R Markdown: The Definitive Guide. 121. https://bookdown.org/yihui/rmarkdown/