Desarrollador Cubano de Python: Carlos Cesar Caballero Díaz

Continuamos con nuestra serie de entrevistas dedicadas a dar a conocer a los desarrolladores cubanos que emplean Python como lenguaje de programación, esta vez conoceremos un poco al colega Carlos Cesar Caballero Díaz a quién agradecemos el tiempo dedicado a esta entrevista. Carlos es un desarrollador cubano, graduado de la Universidad de Ciencias Informáticas (UCI) y que se desempeña como CTO de Daxslab, un proyecto que viene dando sus frutos y aportes al desarrollo de las TICs desde la Mayor de las Antillas. Sin más, los dejamos con Carlos.

P. ¿Cuál es tu formación académica y/o profesional?

R. Soy Ingeniero en Ciencias Informáticas, de la UCI.

P. ¿Cómo y cuándo llegaste al mundo del Sofware Libre y del Open Source?

R. Antes de la universidad había tenido algún que otro roce con sistemas GNU/Linux, pero no fue hasta entrar en la Facultad de Software Libre de la UCI (por el año 2012), donde, de manos del profesor Abel Meneses, comencé a aprender las ventajas de los sistemas libres y de código abierto, no solo técnicamente, sino de su filosofía, como es posible, entre todos, construir sistemas técnicamente fiables, seguros, y sobre todo basados en principios éticos fundamentales, como el de compartir el conocimiento.

P. ¿Cuándo y cómo decidiste comenzar a programar con Python? ¿Por qué Python?

R. Bueno, la fecha exacta me es un poco complicado… Sería estando en primero o segundo año de la carrera. En aquel tiempo nos enseñaban Java pero comenzaba a nacer una comunidad de estudiantes y profesores que utilizaban Python y nos hablaban de sus ventajas, me dio por probar y así empecé, un script por aquí y otro por allá. Descubrí que era más divertido y productivo programar en Python y me gustó mucho las sintaxis, limpia y fácil de leer. Un día me di cuenta que solo usaba Java para los exámenes de las clases porque me exigían hacerlos en ese lenguaje.

P. ¿Qué herramientas no pueden faltar en tu entorno de desarrollo (editores, IDEs, librerías, otros…)?

R. En los últimos tiempos me he dado cuenta que estoy usando mucho PyCharm, es un IDE que incluye un montón de herramientas y me hace más productivo, pero me viene bien casi cualquier editor de textos, en estos momentos tengo instalado Atom, Gedit y Visul Studio Code, los cuales uso indistintamente cuando quiero hacer algo pequeño y rápido. Siempre que puedo uso Git para el control de versiones y últimamente he comenzado a usar Travis para CI y CD.

En cuanto al uso de bibliotecas en específico, me cuesta más trabajo mencionar algunas, es que en nuestro mundo existen cambios constantes y cuando tienes dominada una tecnología, pues enseguida aparece una mejor o que se adapta mejor a tus condiciones, esto no significa que uno deba estar cambiando constantemente sus herramientas (porque hay que dominarlas para ser productivos), pero no me gusta encariñarme con ellas. Cada vez que inicio un nuevo proyecto hago una revisión del estado actual de las tecnologías, y escojo las que mejor se adapten a las necesidades.

P. ¿En qué proyectos de desarrollo con Python has participado y/o participas y qué ideas tienes para el futuro (propios, colaboras…)?

R. En el marco de Daxslab, en donde soy CTO, utilizamos Python para varios proyectos internos (de hecho, nuestra web está escrita en Python), ahora mismo estoy trabajando en mailProc, un microframework para construir servicios basados en correos electrónicos, que usamos entre otras cosas para el acceso a nuestras apis vía email, y mantengo otros a los que se puede acceder desde la página de la organización en Github. También soy Especialista del grupo de desarrollo de los Joven Club de Cienfuegos en donde trabajamos con algunos proyectos internos usando Python. Fuera del marco de Daxslab y Joven Club, he tenido la oportunidad de colaborar con algunos proyectos, de ellos el más popular es el framework web2py, al cual he implementado alguna que otra funcionalidad menor, corregido algunos bugs y ayudado con las traducciones al español. En estos momentos también estoy colaborando con las revistas Medisur y Finlay junto a otro grupo de personas en la interoperabilidad de la información de artículos científicos con la construcción de un sistema de edición que genere XML-JATS usando Python.

P. ¿Cuáles serían tus consejos para los desarrolladores cubanos y foráneos que se inician en Python?

R. Bueno, el primer consejo es estudiar mucho, Python incluye un montón de funciones que en ocasiones ignoramos y eso nos lleva a trabajar el doble o a no hacer las cosas de la forma correcta. Cuando digo estudio, también me refiero a aprender otro lenguaje que no es de programación: el Inglés. Aprender inglés les va a permitir consumir un montón de información que no está disponible en español e intercambiar en comunidades con miles de desarrolladores de todas partes del mundo. Es una sensación increíble cuando, por ejemplo, el líder de un proyecto que tiene miles de seguidores y usuarios te escribe para ayudarte y/o aconsejarte, pero esto es poco probable que suceda si no sabes Inglés, porque es el idioma de facto en las grandes comunidades de desarrolladores.

Otro buen paso cuando estamos comenzando (y cuando ya llevamos tiempo también) es insertarnos en alguna comunidad de desarrolladores. De esa forma podemos aprender de la experiencia y los puntos de vista de otros. Un buen lugar para comenzar es StackOverflow, en donde hay almacenada una base de conocimientos enorme en formato de preguntas y respuestas, y donde hay personas dispuestas a ayudar siempre y cuando preguntemos correctamente. Pero si el acceso a Internet es complicado, igual podemos encontrar listas de distribución vía correo electrónico o buscar en la localidad a personas con los mismos intereses y organizar encuentros (si no existen ya) para compartir experiencias.

Otro buen paso, en mi opinión, cuando estamos comenzando y queremos ganar experiencia es vincularnos a algún proyecto de código abierto. Hay un montón de proyectos con los cuales podemos colaborar y aprender gracias a los desarrolladores experimentados que trabajan en ellos. Para esto lógicamente tenemos que tener la posibilidad de acceder a Internet, porque no contamos con ninguna herramienta de desarrollo colaborativo de alcance nacional, pero si tienen la posibilidad, es una muy buena opción para aprender y ganar experiencia.

Y finalmente el consejo de la abuela: “No hay mejor moda, que la que más acomoda”. Cuando vemos que una biblioteca o framework o tecnología X tiene muchos usuarios, pues entonces algo bueno tiene, pero ello no significa que sea lo que mejor solución dé a nuestras necesidades o mejor se adapte a nuestras condiciones de trabajo. Antes de dar el salto, lo mejor es estudiarla, ver sus ventajas y desventajas y entonces decidir si usarla o no. Hay un montón de ejemplos en los que se ha perdido tiempo y/o dinero por seguir la tecnología más popular y no la que mejor se adapta a las condiciones y necesidades del proyecto.

Muy bien, y hasta aquí la entrevista, una vez más agradecemos a nuestro colega Carlos por su tiempo y como siempre, esperamos que estos últimos consejos sean de utilidad a muchos que se inician en la programación y en específico en el empleo de Python. Si este artículo te resultó interesante, compártelo para que otros también puedan acceder a él. Déjanos tus comentarios y podremos mejorar nuestros contenidos.

Gracias de antemano,

lpozo

3 comentarios

    • dcruz en 8 marzo, 2018 a las 4:03 pm

    Mucha razón en lo del Inglés.. muchísima! actualmente todo lo nuevo por ejemplo de Android está en inglés..

    1. Coincidimos plenamente, sobre todo si de informática se trata, el Ingés es vital. En ocasiones estoy escribiendo algún artículo y me cuesta trabajo encontrar la palabra adecuada en Español para algún término o concepto en Inglés, simplemente a vece no existe la traducción apropiada. Un ejemplo: keyword, la traducción sería Palabra Clave o Palabra Reservada, no existe un término único, y así por el estilo. Además, está el tema de que la bibliografía, primero sale en Inlés y luego, si alguien la traduce, sale en Español u otro idioma. Con esto, si no sabemos Inglés nos estaremos perdiendo la inmediatéz y estaremos en desventaja en el mercado.
      saludos,
      lpozo

  1. Eso Cesar. Exitos!!!

Los comentarios han sido desactivados.