18 septiembre, 2020

Pongara

Simple. Fácil.

Aprender programación en Linux. Una breve introducción

Aprender programación en Linux

Uno de los mitos que los políticos y los medios de comunicación están instalando es que aquellos que no aprendan programación van a ser los nuevos analfabetos funcionales. Una buena excusa para gastar dinero de los contribuyentes en enseñarle a los niños a copiar del pizarrón o de Internet código que no entienden cómo funciona y que serán incapaces de recrear por si mismos.

Es cierto que la programación, bien enseñada, permite desarrollar habilidades de análisis y resolución de problemas, pero, no es la única disciplina con la que pueden desarrollarse.

No es que tenga nada en que los chicos (y los grandes) aprendan programación, pero que sea porque quieren hacerlo y no se limiten a copiar y pegar código de Stack Overflow.

Aprendiendo programacion en Linux

Linux es tal vez la mejor plataforma para aprender programación. A diferencia de Windows y Mac, todo el código de todo el sistema operativo está disponible para su estudio y modificación. También tiene el mayor surtido de herramientas para la creación de programas y, salvo aquellos de licencia privativa, todos los lenguajes de programación actuales y del pasado tienen una versión compatible.

En general, en Linux puedes ejecutar tus habilidades de programación en 3 niveles

El kernel Linux

El kernel es la piedra fundamental del sistema operativo. Es el que se ocupa de administrar los recursos de hardware. El Kernel Linux tiene una nueva versión cada 3 meses y cuenta con la colaboración de miles de personas, muchos de ellos en forma voluntaria y otros trabajando para empresas.

Para colaborar en el desarrollo del kernel Linux, necesitas dos cosas; una alta autoestima y un profundo conocimiento de su funcionamiento y del lenguaje de programación C. Lo primero es porque si bien cualquiera puede enviar modificaciones (parches), las críticas de los otros desarrolladores y de Linus Torvalds (el responsable principal del proyecto) suelen ser sangrientas.

Si no estás seguro de afrontar las críticas, puedes probar desarrollando un módulo. Esto puede ser un controlador para un hardware específico, un gestor de ventanas o cualquier otro programa que sirva de enlace entre el kernel y los programas usados directamente por el usuario.

Repito que esto es algo reservado para usuarios con profundos conocimientos del funcionamiento del kernel.

De todas formas, puedes encontrar una completa documentación para iniciarte en el tema aquí.

En general las distribuciones Linux suelen incluir las herramientas necesarias para compilar y ejecutar programas en C

Script para el intérprete de comandos

El intérprete de comandos es una herramienta para darle ordenes al sistema mediante el tipeo de texto. En los sistemas derivados de Unix se lo denomina shell. Las distribuciones Linux traen por defecto el shell llamado Bash. El conjunto de instrucciones de BASH hace posible crear programas para automatizar tareas y hacer cualquier otra cosa que no requiera interfaz gráfica.

Puedes crear tus propios script en el editor de textos de tu distribución y ejecutarlos desde el emulador de la terminal.

La documentación de Bash puedes hallarla aquí.

Creación de aplicaciones

Dejamos para el final la forma ideal de iniciarse, la creación de aplicaciones para el escritorio.

Existe mucho consenso de que el lenguaje ideal para iniciarse es Python. Ya viene preinstalado en todas las distribuciones y cuenta con una gran cantidad de documentación y ejemplos. La lista de entornos integrados de desarrollo nos llevaría un artículo por si sola.

En general suele recomendarse usar Visual Studio Code, pero, para mi una mejor opción es PyCharm Edu. Esta herramienta no solo permite crear programas si no aprender de otros programadores del lenguaje.

No voy a agotar en este artículo todas las opciones, que incluyen algunos de los lenguajes vigentes hace tiempo como Java, algunos recién llegados pero ascendientes como Go o Rust o reliquias del pasado como Logo o Cobol.

Lo importante es que si quieres aprender a programar investigues todos los lenguajes hasta encontrar uno con el que te sientas cómodo. Salvo que estés buscando una salida laboral, no importa lo que digan las estadísticas ni los avisos de empleo. Tiene que ser lo suficientemente bueno para ti.

Yo hace poco descubrí QB64, una versión de BASIC muy parecida a la usaba cuando aprendí a programar con la Commodore 64 y estoy muy feliz con los resultados.