You can read this post in English here
“Quiero programar en Python”
Quiero hacer un cambio profesional. Quiero trabajar en Python y llegar a tener un nivel de dominio del lenguaje, pero me está costando conseguir trabajo con Python, así que voy a crear un proyecto libre para mi portfolio. Ya tuve que hacer lo mismo para pasar de PL/SQL a PHP y sé que me va a costar, pero tengo que intentarlo.
A continuación, toda la historia al completo:
Volviendo a enamorarme de la programación
Hace aproximadamente 15 años decidí dar un giro a mi carrera profesional y la verdad es que no fue nada sencillo. Llevaba algo más de 5 años programando en Oracle PL/SQL, código embebido en una base de datos, y estaba bastante cansado. Después de dar vueltas por diferentes administraciones públicas sin aprender nada nuevo, la gente empezaba a usar Git y nosotros no teníamos ni un control de versiones en condiciones, ya que lo que no iba en la BBDD se versionaba como binario, generando ficheros corruptos un día sí y otro también.
Al final me puse a ver qué podía aprender y decidí dar el salto a la web. Estamos hablando del año 2010 y, aprovechando que me pasaba mucho tiempo en la web de Menéame y que se trataba de software libre, me bajé el código fuente, que pasé a imprimir en papel. Cada noche me llevaba un par de páginas a la cama y, con un lápiz, analizaba el código y tomaba anotaciones. Aún no sabía ni cómo ejecutarlo y la verdad es que aprender leyendo un libro no me había funcionado: según leía, iba olvidando lo primero que había leído. Quería aprender haciendo.
Entre el código que leía y la documentación de PHP fui aprendiendo cómo funcionaba el lenguaje. Aquel era el PHP que la gente se piensa que se hace aún hoy en día, así que era un poco difícil de seguir, hasta que un amigo con el que trabajaba me habló de Symfony. Me leí la documentación y me encantó. Era la primera vez que trabajaba con un framework. Llevaba 5 años programando, pero no existían frameworks para lo que yo hacía, así que eso de “no reinventar la rueda” me encantó.
Para aprender cómo funcionaba empecé a desarrollar una aplicación web. Yo por aquella época era un apasionado de la fotografía y me movía mucho por foros de análisis de fotos, así que creé una plataforma donde podías compartir fotos, comentarlas e incluso la gente podía editar la foto en sus comentarios para que entendieses lo que querían decir o te diesen consejos. La llamé Picmnt, la mezcla de Picture y Comment. Picmnt
Empecé a usar la versión 2 beta, ya que me dijeron que había muchos cambios entre la 1 y la 2 y, ya que iba a empezar de cero, pues mejor. Al poco me vi en una conferencia, la mítica “deSymfony”, donde aprendí muchísimo e hice muchos contactos. De ahí salió el grupo Symfony Madrid, del que fui uno de los organizadores. Era una buena época. Nos movíamos entre grupos por Madrid: Symfony Madrid, Madrid Agile, Madrid JS y un largo etcétera. Todo muy bonito, la verdad, pero yo seguía trabajando en PL/SQL para un ministerio, haciendo lo mismo una y otra vez ocho horas al día, cinco días a la semana.
“Es que tú eres de Base de Datos”
Por aquella época había un boom de las startups y se buscaban muchos programadores web y de Symfony. Recuerdo ir a conferencias donde buscaban a gente y me entrevistaban. Otras veces, en algún grupo publicaban una oferta y yo les enviaba el CV, pero siempre obtenía la misma respuesta:
“Lo sentimos, pero es que tú eres de base de datos”.
Era duro porque no llegaban ni a entrevistarme. Los que contestaban era para decirme eso y el resto ni contestaba. Así que, después de hundirme una temporada y retozar en un pozo de frustración, decidí pasar a la acción.
Saliendo a producción
Ya cansado y a punto de tirar la toalla, empecé a aprender sistemas por mi cuenta. Ya había hecho algún curso de administración de sistemas GNU/Linux y por aquella época se empezaba a oír ya AWS, así que aproveché para ponerme al día. Contraté un pequeño VPS y subí mi aplicación web. Empecé a pulirla y hacerla funcional. No tenía usuarios y la verdad es que tampoco los quería. Lo único que quería era poder decir:
“No soy de base de datos. Eso no existe. Soy un programador que ha trabajado con bases de datos, pero sé hacer más cosas. Como esta”
y poder enseñar un proyecto con su código fuente y funcionando en producción.
No sería el mejor código fuente del mundo, soy un programador del montón, pero ahí estaba funcionando, en un servidor que había montado yo, con un sistema automático de despliegue.
Un día hice una entrevista en una startup y me dejaron enseñarlo. Lo estuvimos viendo juntos. No era gran cosa, pero, quitando algún bug —una demo sin bugs no es una demo—, funcionaba. Era una entrevista en un coworking y recuerdo que me dijeron: “¿Te importaría mirar un código conmigo?”. Tenían un bug y lo resolvimos entre la persona que me entrevistaba y yo. Ya tenía trabajo, y quiero pensar que fue gracias a mi pet project.
Desde entonces han pasado 15 años. Seguí con PHP y, según me iban conociendo, me daban otras oportunidades, como hacer de DevOps —sé que es una filosofía, pero ya sabes de qué va la cosa—. Incluso gente con la que había trabajado en otros proyectos me ofreció irme con ellos a otras empresas a hacer Javascript, Python, AWS, GCP… y hasta Scala, porque sabían que un programador “no es de…” un lenguaje: es un programador.
De vuelta al inicio
¿Y a qué viene toda esta parrafada —te agradezco y compadezco a partes iguales si has leído hasta aquí—? Pues a que estoy como al principio:
“Tú eres un programador de PHP”.
Amo Python. Llevo haciendo cosas en Python desde hace muchos años. Mirando mi GitHub veo que ya publicaba alguna cosa en 2013, si no recuerdo mal, durante la guerra de Python 2 contra Python 3. Y quiero trabajar con Python, pero bien. Ya estoy cansado de automatizaciones en CLI, scripts, etc. Quiero aplicar todo lo que he aprendido estos 20 años en backend en Python, pero nadie me da la oportunidad. Hoy mismo me han rechazado sin entrevistarme siquiera: he enviado un CV y a la hora ya me habían descartado por no encajar. Pero bueno, es lo que hay.
¿Y qué voy a hacer? Pues lo mismo que ya hice.
Nuevo proyecto de Python
Voy a hacer un proyecto en Python, usando tanto la librería estándar como las librerías y frameworks más modernos. Aparte de eso, también lo montaré en un servidor o varios, con un sistema de CI/CD y un sistema de monitoring y alerting. Me va a llevar mucho tiempo, pero lo voy a hacer poco a poco, cuando tenga ratos libres.
Es más, como también estoy aprendiendo programación con agentes de IA y el front es algo que no me gusta —más bien que no se me da bien o no me interesa—, esa parte la haré con IA para demostrar que también sé usarla, con sus agentes, subagentes, skills, etc. Pero solo la parte de front; el resto lo haré yo a mano, leyendo documentación.
También he pensado en ir documentando el proceso por aquí, pero ya veré, porque tiempo es lo que menos tengo. Ojalá tuviera el mismo tiempo que ganas.
EVE Online
¿EVE Online? ¿Qué es eso? Pues un juegazo, un juegazo que, para sacarle el mayor partido, se juega con un Excel abierto al lado.
Como no se me ocurre de qué hacer el proyecto y estoy enganchado al EVE Online, pues de eso va a ser. EVE tiene una API REST bastante bien documentada y muy completa, y a mí no me gusta el Excel, así que iré montando una web para uso personal donde gestionar mis personajes y sus finanzas. La app será libre por si alguien la quiere para algo, aunque va a ser más un playground para tecnologías que un producto acabado.
Conclusión
Así con esas estoy. Quiero dar el salto a Python, el mercado está mal y nadie me quiere :(, así que voy a empezar un proyecto desde cero sin tener tiempo para dedicarle y el primer día que consigo un hueco para comenzar lo uso para escribir un post en un blog que tengo abandonado.
Gracias por llegar hasta aquí. Espero cumplir con lo que digo arriba y poder ir compartiendo mi progreso contigo.