Mi primer programa en Python

O cómo acercarse a la programación sin rendirse en el camino.
En posts anteriores, he explicado por qué decidí acercarme a la programación. Resumen de la historia: tenía una plataforma web, y quería entender cómo funcionaban los aspectos técnicos de mi blog. Quería aportar yo misma nuevas funcionalidades, sin tener que recurrir a un desarrollador web.
Yo no entendía la selva amazónica en la que me estaba adentrando.
La decisión de aprender a programar le dio un giro de 180 grados a mi forma de pensar. Hoy en día, considero que tengo una caja de herramientas en mi cabeza, y que uso la herramienta que necesite segun las circunstancias en las que me encuentro.
La arquitectura me enseñó a abordar los problemas desde un punto de vista global y estratégico. La informática me enseñó (y me sigue enseñando) a abordar los problemas desde la unidad más pequeña, e ir agregando complejidad a medida que voy extendiendo las partes del todo. Una belleza, cuando ambos mundos se encuentran.
Si tú hoy estás considerando la posibilidad de programar, sabes que entrar a Youtube, Tiktok o Google puede ser abrumador. Hay muchas personas dando su punto de vista, hablando sobre distintos lenguajes de programación, cuál esta de moda, cuál no. Etcétera. La lista de parámetros a considerar antes de empezar a programar es tan larga como la lista del mercado después de dos semanas sin ir a Carrefour.
Yo te voy a contar mi experiencia, lo que aprendí de mi proceso, y cómo lo estoy haciendo todo de nuevo, a mi ritmo.

Primero error en una serie de errores: simplificar lo insimplificable

El primer punto que yo no tomé en cuenta PARA NADA es que, la informática es un mundo inmenso, que apenas te adentras puedes sentir agorafobia. Cuando yo empecé mi búsqueda, yo no entendía toda la complejidad que está detrás de poner público un blog en internet. La imagen que yo tenía en mi cabeza de los programadores era: gente aburrida que no tiene nada que hacer, y que se pasa la vida encerrada en su casa, delante de una computadora, vestido con un suéter de capucha mientras programa.
Equivocada cien por ciento.
La informática engloba múltiples oficios. desarrolladores web, ingenieros de producción, ciencias de datos, expertos en bases de datos, DevOps, ingenieros cloud, ingenieros de seguridad informática, diseño web, UX/UI, arquitectos de aplicaciones, inteligencia artificial (ugh, tema polémico para otro post). Etcétera, etcétera, etcétera. La lista sigue, pero lo voy a dejar hasta aquí por hoy. Mientras escribo, me doy cuenta de que yo venía de un unico oficio (arquitecto) a una multiplicidad de oficios que derivan de un solo término: la informática.
Es por ello que mi aproximación a las ciencias de la computación fue evolucionando a tientas, en la penumbra. Fui avanzando mientras experimentaba in situ, haciendo mis estudios de alternance.
Antes de empezar la escuela de alternance en París, yo le había pedido consejo al único familiar que tengo en el mundo de las computadoras. El me recomendó empezar por un curso que sigo utilizando al sol de hoy como referencia, y que yo misma le recomiendo a cualquier persona que quiere probar su suerte: CS50: Introduction to Computer Science. Gracias a su éxito, este curso ha crecido muchísimo y ahora hay distintas versiones: CS50 para abogados, CS50 para el desarrollo web, CS50 Python. Y aquí es donde la cosa se pone buena.

Pero antes de profundizar en el tema, hablemos un poquito de CS50. ¿Con qué se come ?

Todo empieza en una de mis plataformas preferidas de aprendizaje de internet: edx.org. Esta plataforma fue fundada por miembros del MIT y de Harvard, para brindar educación gratuita de alta calidad a personas que no tienen los recursos de asistir in situ a Harvard o al MIT. Veinte puntos por tomar tal iniciativa, y "democratizar" la educación.
El curso original "CS50: Introduction to Computer Science", tiene un pénsum sencillo, pero retador. Acercarse a la programación a través del lenguaje C no es tarea fácil. Implica compromiso, perseverancia y disciplina. La cara linda de la moneda es que al empezar con C, tienes la oportunidad de entender a grandes rasgos la complejidad de las ciencias de la computación. De una manera muy somera, te das cuenta que programar es mas que el suéter de capucha y las largas horas delante de la computadora.
Programar es lógica, disciplina, y resolución de problemas concretos.
Yo sigo sin terminar el curso original. Hoy, entiendo mejor mis necesidades intelectuales, y las estrategias que me funcionan para que el conocimiento se asiente mejor en mi cerebro.
CS50: Introduction to Computer Science lo dejé en la mitad, aproximadamente. El curso se desarrolla por etapas y yo en paralelo estudiaba en la escuela de alternance, y trabajaba en la empresa donde ponía en práctica lo que aprendía en la escuela. Llegó un momento en el que tuve que tomar decisiones. Retomé CS50 a mi ritmo, luego de terminar mis estudios.
Pero esta vez, fue sincera conmigo misma. Y decidí tomar el curso CS50: Introduction to Programming with Python.
Mejor decisión hasta ahora, y te voy a decir por qué.

  • Primero, yo ya estoy en el mundo laboral. Trabajo como DevOps Engineer en una empresa donde necesito tener herramientas a la mano para aportar valor en lo que hago. Hoy, no necesito entender los grandes rasgos de la computación. Hoy necesito apropiarme de un lenguaje de programación que me ayude a resolver los problemas de mi trabajo. A optimizar mis procesos para ganar eficiencia. El lenguaje C no entra en la ecuación.
  • Python es fácil de abordar. La sintaxis se acerca mucho al inglés. Lo mas importante es ser rigurosa con la indentación.
  • Le dedico AL MENOS cuatro horas semanales. Hoy entiendo mejor como funciona mi cerebro, y el nivel de frescura que necesito para sentarme a programar. Mi mejor momento para inyectar información nueva a mi cerebro es en la mañana. Es el momento del día en el que tengo mejor capacidad de concentración, mayor lucidez, mayor frescura. Eso se traduce a programar el sábado o el domingo en la mañana. Es el momento libre en que mis neuronas estan en su peak 🧠
  • Documentar lo que aprendo es lo que más me ayuda a afianzar los conocimientos adquiridos. Necesito traducir en palabras todo el conocimiento lógico que desarrollo mientras programo. Es por ello que decidí documentar en este blog los problemas que voy resolviendo en CS50, para terminar de conectar las neuronas rebeldes 😅

Por estas razones, creo que CS50 Python es el curso que mejor se amolda a mis necesidades. Si hoy alguien me dijera que quisiera programar pero que no sabe por donde empezar, yo le preguntaria qué problema quiere resolver.

Porque a fin de cuentas, en cualquier oficio dentro de la informática tú estás resolviendo problemas concretos. Tomemos como ejemplo el primer problema del curso que empecé hace meses.

Mi primer programa en Python: Indoor Voice

Cuando nunca antes has programado en tu vida, puede ser complejo instalar los entornos necesarios en tu computadora para empezar a escribir código en un lenguaje de programación. Con CS50, solo necesitas una cuenta en edx.org, una cuenta en Github, y eso es todo. El curso abstrae algunos detalles, que en un primer momento son innecesarios, y se enfoca en lo que tu necesitas aprender: resolver problemas con Python. Todos los programas los desarrollas en la nube (más adelante otro post para hablar de este tema), en un entorno que se llama VSCode, con Python instalado.
A continuación un extracto del enunciado del problema, traducido al español :

En un archivo llamado indoor.py, implemente un programa en Python que pida al usuario que introduzca datos (un input) y luego los muestre en minúsculas. La puntuación y los espacios en blanco se mostrarán sin cambios.


En términos simples, si el usuario escribe "HOLA", el programa debe devolver "hola".
¿Quieres saber la solución de este primer programa?
La abordaré en el proximo post 😉

Nota: el post es mi opinión personal. No tengo sponsors, ni Harvard ni MIT me dan absolutamente nada por recomendar edx.org o CS50. Este texto es fruto de mi reflexión honesta.

Subscribe to cachapa frita

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe