Aprender a programar y no morir en el intento

Por Mario García — @mariogmd

¿Es fácil programar? La primera respuesta que viene a mi mente es SI. Tomaré algunos minutos más para dar una mejor respuesta. Programar no es así de sencillo. Probablemente te tome uno, dos o tres días, talvez más, para aprender la sintaxis básica de un lenguaje de programación.

Pero estoy asumiendo que eres autodidacta. La verdad es que todos tienen una manera diferente de aprender. Algunas personas necesitan de alguien que los guíe en el proceso de aprendizaje, otros, como yo, tomamos la iniciativa de aprender una tecnología nueva porque nos parece divertido o para pasar el tiempo libre. Así que, ¿donde empezar? ¿qué lenguaje elegir? Intentaré responder estás y otras preguntas en las próximas líneas.

Mi primera vez programando

Tenía 16 años en la época en la que empecé a aprender HTML. No recuerdo porque, probablemente fue un proyecto de la preparatoria, pero estoy seguro que no lo aprendí en clase ya que la escuela no ofrecía cursos de programación. Empecé con HTML y un poco de CSS, creando animaciones con Flash y algunos gráficos con Corel Draw. No usaba algún editor de texto excepto Dreamweaver que ofrecía una forma fácil de maquetar una página web para alguien sin experiencia. Limpiar el código después de terminar un proyecto me ayudó a aprender un poco más. Además, hizo que me interesara por aprender a configurar servidores web locales y saber como publicar un sitio web en línea. 12 años después puedo decir que la experiencia pudo haber sido mejor. Pero este primer acercamiento a la programación fue la razón por la que estudié una carrera relacionada a tecnologías de la información.

¿Qué lenguaje elegir?

A veces no tenemos la libertad de elegir con que lenguaje de programación empezar. Cuando estamos estudiando una carrera relacionada a las TICs, nuestros profesores lo eligen por nosotros, lo cual no significa que es la mejor opción, ellos generalmente basan su elección en la experiencia que tienen con una tecnología u otra. Pero lo cierto es que hay muchos lenguajes de programación y algunos tienen una curva de aprendizaje menor que otros.

Cuando empecé la universidad, el primer lenguaje que aprendí fue C++. Fue el lenguaje principal usado durante casi toda la carrera. Luego tuve que aprender Java para un proyecto en el que estaba trabajando. Me tomó tres días aprender la sintaxis básica del lenguaje y terminar el proyecto. Aprendí también lenguaje ensamblador, PHP y tecnologías web (HTML, CSS, JavaScript).

Estaba en el séptimo semestre de la carrera cuando empecé a aprender Python por mi cuenta. Escuché sobre el lenguaje en un evento local de tecnología y ese año, 2009, comencé a leer la documentación oficial y encontré un libro en español (Python para todos) que me ayudó en el proceso de aprendizaje.

Lo que aprendí sobre estos lenguajes de programación es que C++ no es tan malo como punto de partida. No recomiendo Java para alguien que está aprendiendo a programar por primera vez. No estoy diciendo que Java es un mal lenguaje pero su sintaxis hace que escribas muchas líneas de código para una sola tarea como imprimir “¡Hola mundo!” y esa es la razón por la que las Universidades finalmente se dieron cuenta que Java no es recomendable como primer lenguaje.

Probablemente nunca escribiré otra vez código en lenguaje ensamblador pero fue divertido. Recuerdo que mis compañeros de clase utilizaban un emulador del Intel 8086 para ejecutar los programas mientras en mi equipo ejecutabamos código directamente desde la terminal de Ubuntu.

He escuchado comentarios negativos sobre PHP y porque no deberías usarlo para tus proyectos web pero el 25% de la Web funciona con WordPress. WordPress es un sistema manejador de contenido (CMS) escrito en PHP.

Python es un lenguaje interpretado que se usa en áreas como matemáticas, robótica, bioinformática, astronomía, administración de sistemas y desarrollo de software en general. Tiene una sintaxis sencilla y legible que permite que los desarrolladores escriban menos líneas de código, lo que significa una menor curva de aprendizaje.

¡Hola mundo! en Python:

print(“¡Hola mundo!”)

He sido profesor universitario por cerca de año y medio. En mis primeras clases de programación enseñaba C/C++ y luego cambié a Python hace seis meses para usarlo como lenguaje de programación introductorio. Así que voy a recomendarte que empiezes con Python por las razones descritas anteriormente.

¿Donde empezar?

Nací en México por lo que mi idioma nativo es español. También hablo inglés y eso me ha ayudado a aprender las tecnologías con las que hoy trabajo. Hablando de programar y aprender un lenguaje de programación, el problema con ello es que la sintaxis de la mayoría de los lenguajes de programación está en inglés, Latino es el único que tiene sintaxis en español, pero no voy a hablar de eso ahora. Es útil saber inglés ya que eso ayuda a comprender mejor la sintaxis y algunos conceptos. Pero no todas las personas están interesadas en aprender otro idioma aparte de su idioma nativo.

Así que antes de que descargues el interprete desde python.org o alguna otra herramienta que necesites para empezar a escribir código en Python, te sugeriría que busques documentación en tu idioma de tal manera que puedas tener una guía que puedas seguir y entender. Te recomiendo que revises los siguientes libros y sitios.

Español

Si vives en un país donde se habla un idioma diferente al español, puedes revisar los siguientes sitios.

Inglés

OpenLibra es una biblioteca en línea donde puedes encontrar libros y revistas en español e inglés sobre muchos temas. Todo el contenido está disponible bajo licencias libres como Creative Commons, así que puedes compartirlo con tus amigos.

Hay dos versiones de Python, 2.7.12 y 3.6.1. Los cambios entre las dos versiones están en su sintaxis, qué es ligeramente diferente, y la compatibilidad con algunas librerías.

Python 2.7.12

print “¡Hola mundo!”

Python 3.6.1

print(“¡Hola mundo!”)

El interprete de Python está disponible para Windows, GNU/Linux y Mac OS y lo puedes descargar desde python.org/downloads, donde puedes encontrar ambas versiones (2.7.12 y 3.6.1). Sólo necesitas elegir la versión correcta de acuerdo al dispositivo donde vas a instalar. Si usas una distribución GNU/Linux, probablemente Python venga instalado por defecto ya que algunas aplicaciones están escritas en este lenguaje. Si no está instalado, lo puedes instalar desde el gestor de paquetes de la distribución que uses.

Consola interactiva en Manjaro

Estoy hablando de GNU/Linux porque lo he usado por los últimos diez años y mi principal sistema operativo es Manjaro. Pero no voy a decirte como iniciar en Python en GNU/Linux, ya que probablemente no lo usas o no estás familiarizado con la terminal. Tienes dos opciones para empezar a escribir código en Python después de instalar el interprete, usar la consola interactiva que puedes encontrar en el menú de Windows, ejecutarlo desde la terminal en GNU/Linux o Mac OS. Escribir el código en un editor de texto como Atom, SublimeText, Notepad++ o nano y ejecutarlo desde la línea de comandos.

Escribiendo código con nano

Una manera más sencilla es usar un IDE como Ninja IDE o Thonny. Herramientas como estas incluyen el editor y la consola en la misma aplicación. Thonny tiene una interfaz fácil de usar, viene con Python 3.6 y de esa forma solo tienes que ejecutar un instalador. Thonny está disponible para Windows, GNU/Linux y Mac OS.

Thonny

Puedes escribir código en Python desde un dispositivo Android como una tablet o un smartphone. QPython es una aplicación para Android que puedes usar para correr programas escritos en Python. No está disponible desde Google Play pero puedes descargarlo desde su sitio oficial. Hay dos versiones. QPython para Python 2.7 y QPython3 para Python 3.x. Viene con un editor de texto y la consola.

QPython — Source: https://qpython.com/

¡Juguemos! Hace unos días descubrí CodeCombat, una plataforma para que los estudiantes aprendan ciencias computacionales mientras juegan. Puedes aprender Python, HTML, CSS y JavaScript. No todas las personas aprenden de la misma forma, así que, ¿por qué no probar CodeCombat?

Students write code and see their changes update in real-time — Source: https://codecombat.com/

Si necesitas ayuda extra para empezar con Python, busca un curso en CodigoFacilito, Platzi, CodeSchool, Udemy, edX. Asiste a un evento de tecnología donde Python sea uno de los temas por ver. Pregúntale a un experto. Busca en redes sociales a desarrolladores de Python. Sígueme en Twitter o Facebook y envíame un mensaje si necesitas más consejos.

Eventos de Python

Hay eventos de Python por todo el mundo. Visita meetup.com y busca eventos cerca de ti. Si no hay algún evento en tu ciudad, organizalo. No necesitas ser un experto para organizar un evento, contacta a un experto y envíale una invitación para que de una charla o taller sobre algún tema relacionado a Python.

Si estás en Colombia, sigue a Django Girls Colombia en Facebook para saber cuando están organizando un taller en tu ciudad. Sigue a Argentina en Python en Twitter para saber cuando un evento de Python viene a Argentina u otro país en América Latina.

La comunidad internacional para el lenguaje de programación Python organiza muchas conferencias cada año, llamadas PyCon. Estuve en Bogotá, Colombia en Febrero, participando como ponente en PyCon Colombia 2017. Estuve dando un taller sobre Flask, un micro framework para crear aplicaciones web con Python. Fue una experiencia asombrosa y me permitió conocer el tipo de proyectos interesantes que se pueden hacer con el lenguaje. Así que, si hay una PyCon en tu país, no dudes en asistir.

El 10 de junio se realizará el PythonDay México en TelmexHub en Ciudad de México. Estaré dando un taller de Flask. Aquí hay un artículo en epsañol sobre mi participación: “Flask: Introduction to Python for Web”. Allá nos vemos.

PythonDay Mexico agenda

Pensamientos finales

No vas a aprender Python u otro lenguaje de programación en un día, es algo que tienes que practicar tanto como sea posible. Encuentra ejercicios que resolver. Piensa en algo que quieras hacer y mira si es posible implementarlo en Python. Lee tanto como puedas, no solo documentación, tutoriales y artículos sino código. No te rindas la primera vez que no puedas hacer algo. Y busca ayuda siempre que lo necesites.

Si finalmente decides que Python no es para ti, hay otras tecnologías que puedes probar como HTML5, CSS3, JavaScript para crear contenido web o Kotlin para aplicaciones para Android.

Recuerda, programar debería ser algo que hagas por diversión.

Artículo original en inglés: Learning to code and not die trying.