Este año empezó de forma especial para mí. Después de muchos años queriendo aprender más sobre programación, fue el primer año en que realmente conseguí que fuera uno de mis objetivos anuales.
Con el tiempo he ido evolucionando este modelo desde OKRs personales hacia otras formas de hacerlo, menos serias y, a veces, más efectivas. Pero eso da para otro post 🙂
Últimamente he ido simplificando mi setup general y este año decidí tener solo dos objetivos. Se trataba de adquirir dos nuevas habilidades: una era probar artes marciales (más por el lado de salud y fitness) y la otra aprender programación para conseguir más autonomía.
Ya sabía que mi forma preferida de aprender programación sería a través de CS50, un curso muy reputado de Harvard que esencialmente es una clase presencial grabada y puesta online para que cualquiera pueda verla.
Al mismo tiempo que definía este objetivo, empecé a familiarizarme con OpenAI, y cuando en noviembre de 2022 lanzaron ChatGPT ya vi el enorme potencial real de sus nuevos sistemas de IA.
Por supuesto, he tenido el privilegio de ver el potencial de la IA en Adevinta durante años, pero esta fue la primera vez que sentí que era accesible para las masas de una forma amigable y de propósito general.
Aunque la versión inicial de ChatGPT no era ni de lejos tan buena como GPT-4 hoy en día, ya era notablemente buena en muchas cosas. Esto me hizo pensar que quizás no necesitaba aprender a programar para mis casos de uso.
Pasando por CS50
Empecé a hacer CS50 durante las vacaciones de enero. Al principio era realmente enganchante; el curso está extremadamente bien hecho, por un profesor que realmente sabe cómo enseñar algo difícil de forma fácil. No es aburrido y el tipo es generalmente divertido y atrapante.
Dicho esto, a lo largo de las siguientes clases empecé a tener dificultades para seguir el ritmo. Con el trabajo acelerando rápidamente en enero y la necesidad de tiempo, era difícil avanzar. Ya no me considero un buen estudiante. Después de acabar la universidad, mi apetito por el aprendizaje formal siempre es bajo.
Aunque las clases de CS50 son largas, no son tan difíciles de seguir. El "problema" es que necesitas estar constantemente probando lo que el profesor está haciendo, y eso hace que cada clase dure 2x o 3x el tiempo real, pudiendo fácilmente llevar 5-6h por clase (en mi experiencia, claro).
Luego hay que sumar los ejercicios, que pueden llevar aún más tiempo. Así que mi cálculo es que probablemente necesitas más de 200h para hacer el curso correctamente. Eso era desafortunadamente un problema de disponibilidad de tiempo para mí, y también seamos sinceros, algo que no estaba dispuesto a hacer aunque tuviera ese tiempo 🥹
Este post no va para nada sobre CS50, pero estoy compartiendo el proceso para que puedas identificarte. Y la conclusión aquí es que descubrí que estaba intentando aprender a ser programador cuando en realidad solo quería programar.
Esto puede sonar esencialmente tonto, pero en realidad es muy relevante. CS50 es una clase introductoria/fundamental en Harvard para aprender programación en la carrera de informática. Yo solo quería aprender un poco de scripting para crear scripts básicos, llamar a APIs y hacer consultas SQL. No construir software complejo preparado para millones de peticiones al día.
(Más o menos) todo el mundo cocina, pero no todo el mundo es chef. Yo quería aprender el equivalente a cocinar en programación, sin tener que ir a la escuela de chefs. ¿Y si la IA pudiera eliminar para mí la necesidad de aprender realmente la sintaxis específica de programación?
Para algunos ingenieros este post puede sonar raro, y quizás soy lo que podría llamarse un ChatGPT Programmer, pero creo que es una idea poderosa y solo va a crecer a partir de aquí. Podría estar en la intersección entre No-Code e Ingeniería de Software.
Soy una persona muy práctica y siempre apuesto por invertir el tiempo en las cosas correctas. Así que entonces...
Dejo CS50 y ChatGPT se vuelve loco
Después de unas cuantas clases y luchando por seguir el ritmo, decidí pausar CS50 y centrar mis esfuerzos en intentar entender si ChatGPT podía ser el programador que necesitaba.
Para los menos familiarizados con ChatGPT, cuando salió por primera vez era básicamente una prueba de concepto de cómo un LLM (modelo de lenguaje grande) de propósito general podía usarse en un entorno orientado al consumidor, en forma de chat.

ChatGPT desde entonces ha crecido exponencialmente y como pocas cosas lo han hecho en la historia. Actualmente tiene más de 1.500 millones de visitas al mes en la web y más de 40 millones de usuarios activos semanales en las apps.


Como puedes esperar por el título del artículo, sí, ChatGPT cumplió con la mayoría de mis necesidades sin que yo tuviera que invertir una cantidad significativa de tiempo en aprender programación a fondo.
Vale la pena señalar que mi conocimiento de programación y comprensión general de las cosas no partía de cero. Tenía algo de conocimiento previo en código, aunque bastante limitado, y debido a mi rol en el trabajo, tengo una amplia experiencia en entender cómo las piezas tecnológicas se conectan entre sí, qué es una API, etc.
Esto ayudó enormemente y es probable que no todo el mundo pueda lanzarse a utilizar ChatGPT al máximo solo leyendo este post, pero puede inspirarte a seguir un camino similar.
Cómo ChatGPT revolucionó mi día a día como SEO
Así que después de esta parte introductoria, entremos en cómo ChatGPT (principalmente, entre otras herramientas de IA, pero me centraré en esta) ha mejorado mi día a día como SEO.
Para dar contexto, trabajo como Head of SEO en Adevinta. Aunque una parte de mi rol es ser manager, soy muy hands-on cuando es necesario y apoyo al equipo en diversas tareas muy operativas y analíticas. Esto es algo que forma parte de mi ADN y creo que es la única forma de mantenerse en la arena (juego de palabras intencionado, Chamath jeje) 🙂
ChatGPT es un cambio radical para cualquiera que esté dispuesto a probar sus límites. Hasta ahora, no he encontrado muchos — es decir, no he encontrado una tarea en la que ChatGPT no haya sido capaz de ayudar a completar con éxito.
Aviso: Uso GPT-4 dentro de ChatGPT. Soy cliente de pago porque considero este modelo muy superior a la versión gratuita 3.5 y también disfruto de la estabilidad y otras ventajas de ser cliente de pago. Podrías obtener peores resultados si usas la versión gratuita.
Mis casos de uso
SQL
Un caso muy obvio es hacer consultas SQL. Aunque tenía algo de conocimiento de SQL gracias a cursos internos en Adevinta y también algo de práctica fuera, la realidad del SQL es que tener un conocimiento básico no es muy útil.
Cuando decides que las interfaces de Analytics no te sirven, normalmente significa que estás intentando enfrentarte a una consulta compleja, a menudo haciendo operaciones como reemplazos, subconsultas, joins de diferentes tablas, etc.
Esto significa que saber lo básico de SQL no va a ser muy útil para conseguir tu objetivo.
Con ChatGPT, eso cambia drásticamente; efectivamente hasta ahora no he visto límites en estas tareas. Hay dos puntos importantes que debes tener en cuenta al trabajar en estas iniciativas:
- Comparte el nombre de la(s) tabla(s): informa al bot sobre el nombre de las diferentes tablas, para que pueda construir la consulta lista para producción.
- Comparte los detalles de los valores de las columnas: puede que quieras hacer un rápido SELECT * from nombre_tabla LIMIT 1 para obtener todos los nombres de columnas de la tabla así como ejemplos de los valores, para que el bot sepa qué esperar en cada columna.
Uno de los estereotipos más comunes ya establecidos en IA es que necesitas ser un maestro del prompting para obtener la respuesta correcta. Esto puede ser cierto para ciertas tareas complejas, pero puedo asegurarte que no necesitas casi ningún conocimiento de prompting para conseguir este tipo de cosas bien.
¿Qué ganas tú como SEO, por ejemplo?
Esto habilita casos de uso como consultar la exportación masiva de Google Search Console a BigQuery a su máximo potencial. En Adevinta trabajamos a escala con ReallyBigData ™️. Tenemos datasets que tienen miles de millones de filas y creciendo.
Uno de los descubrimientos interesantes al mejorar mis habilidades de SQL es lo fácil que es gastarse dinero en ello en estos casos, ¡así que cuidado! 😜

Tabla de exportación de GSC de uno de nuestros sitios
Puedo decirte que hemos construido consultas juntos que ningún analista habría tenido la paciencia de construir ni en horas, en cuestión de minutos.
Consultas como la de abajo, donde en realidad solo ves una parte que tiene regex extremadamente complicadas basadas en datos de otras herramientas, es algo que GPT-4 es más que capaz de hacer bien... Casi siempre en dos o tres intentos.

RegEx
Cualquiera que haya trabajado con RegEx lo odia. Personalmente no conozco a nadie que pueda llamarse a sí mismo "amante de RegEx".
Probablemente es lo más cercano a los jeroglíficos que existe en informática. De nuevo, conozco lo básico pero cada vez que pienso en escribir una nueva me duele la cabeza. Esto es otra cosa más en la que ChatGPT destaca. Puedes conseguir casi cualquier RegEx correcta en cuestión de segundos. Solo necesitas proporcionar ejemplos de lo que quieres encontrar y en qué formato, y ChatGPT te proporcionará una muy buena para probar.
Más a menudo de lo esperado necesitarás probar un par de veces antes de que coincida correctamente con lo que esperas. Pero de nuevo, esto es lo que hacía antes cuando copiaba y pegaba de StackOverflow. La diferencia principal es que antes copiaba 10 veces y ahora solo 2-3.
Además, ChatGPT es mucho mejor proporcionando RegEx para necesidades personalizadas que StackOverflow. Este último destacaba en proporcionar cosas genéricas, como "encuentra el nombre del subdominio para URLs que no contengan protocolo".
Pero ¿y si quieres "encontrar todas las consultas con variaciones del nombre de marca, incluyendo errores ortográficos para mi marca llamada X, y solo si contienen la palabra 'coches'"? Esto es algo que antes básicamente tenías que construir tú mismo y dedicar un tiempo incontable a un ejercicio no estratégico que ahora está a unos pocos clics de distancia.
Y como puedes ver, estas cosas pueden entrelazarse. Puedes construir una consulta SQL que tenga una RegEx masiva. He usado datos de otros proyectos y herramientas para alimentar ChatGPT y enriquecer aún más el resultado. Las posibilidades son realmente infinitas.
Scripting
Hasta aquí hemos cubierto algunos casos que son principalmente válidos en el lado de Data Analytics. Pero ahora entremos en territorio de ingeniería de software donde también puedes sentir que tienes superpoderes.
Una de las primeras cosas a notar es que el scripting es mucho más complicado que hacer consultas SQL, por su ecosistema.
Para este propósito he usado principalmente algunas herramientas de IDE en la nube como Colab, enfocado principalmente en temas de Data Science con Python, su primo Kaggle, que también tiene recursos bastante buenos disponibles aunque la plataforma es un poco menos flexible, y finalmente Replit, que es más como un equivalente a un IDE full stack real en la nube.
Personalmente, una de las cosas más aburridas que encontré al empezar a programar fue toda la configuración del entorno local. Podías pasar horas intentando instalar todo correctamente y de repente algo se rompía o te perdías. Con este enfoque nativo en la nube evitas toda esa molestia y te pones directamente a producir soluciones. Además, tienes la posibilidad de dejar trabajos ejecutándose si te pasas a los planes de pago de estas herramientas, lo cual puede ser conveniente a veces.
Crear código para ejecutar en Colab (caso de uso principal) es similar a lo que haces con las consultas, con la carga añadida de tener, por supuesto, varias capas más de las que ocuparse. Instalar dependencias, asegurar que estás consultando la API correcta, asegurar que tienes los datos correctos en el formato correcto, etc. Para eso, probablemente podría hacerse un post más largo, pero me centraré solo en algunos básicos y casos de uso.
He construido muchos scripts diferentes que pueden lograr tareas muy significativas para mi día a día, tales como, pero no limitadas a:
- Hacer scraping de la función de autosugerencia de competidores
- Ejecutar análisis sobre qué user-agents son más aceptados en la web
- Eliminar metadatos de imágenes
- Encontrar sitemaps XML ocultos en webs de competidores
- Deduplicar listas de palabras clave
- Consultar una variedad de APIs y exportar en CSV
Comparto mucho de este código en mi cuenta de GitHub. Si te interesa algo que no esté ahí, no dudes en contactarme por DM en Twitter.
Todo esto habría sido imposible o muy complicado con mis niveles anteriores de Python. Es cierto que necesitas saber un poco lo que estás haciendo y entender el código, pero en general el código Python es muy autoexplicativo, así que a menos que estés haciendo cosas muy complejas, debería ir bien.
Si te encuentras con un error, simplemente pégalo en el chat y normalmente adivinará qué puede estar pasando y te ofrecerá una solución para intentar arreglarlo.
Otra limitación en esta parte es el hecho de que ChatGPT todavía está de alguna forma limitado por el número de tokens o palabras que puedes proporcionar en el prompt. Esto se vuelve más problemático a medida que construyes scripts más grandes, que no caben en el prompt o hacen que el ciclo de feedback sea muy lento. Aún no he encontrado solución más allá de la paciencia 🙂
Aunque esto debería resolverse de forma natural en los próximos meses con la introducción de modelos más grandes de 32k tokens, es algo que conviene tener en cuenta.
Encontré este proceso muy disfrutable. Habiendo construido crawlers para millones de URLs, aprendes más sobre casos límite, manejo de errores, multi-threading y otros desafíos que me hacen respetar aún más a los desarrolladores.
Puedo decir con orgullo que la Ingeniería de Software es la segunda cosa más frustrante de la vida después del League of Legends 🙂
Construyendo herramientas, APIs y otras cosas interesantes
Aunque los scripts son una de esas cosas mágicas iniciales, puede que no quieras limitarte a escribir 30, 50 o 100 líneas de código en un Google Colab y luego olvidarte de ello.
Sabía desde el principio que uno de mis objetivos con esto era crear herramientas para ayudar a otros, y tener soluciones estables que pudiera usar yo mismo en el futuro.
Para esa tarea, me apoyé en PythonAnywhere, una mini-nube para el entorno Python. Es simple y abstrae mucho del trabajo necesario para tener una web funcionando. Empecé con eso durante unas vacaciones en el sur de Portugal y conseguí poner varias herramientas en marcha en ese tiempo también. Apuesto a que si hubiera intentado montarlo en una nube normal ni siquiera habría terminado después del viaje.
Esta es probablemente la parte de la que estoy más orgulloso ya que no solo me ayudó a mí sino también a otros. Puedes encontrarlo aquí: https://tools.estevecastells.com/

ChatGPT en tu teléfono
Hay un truco muy bueno para mejorar tu uso de ChatGPT en el móvil: tener la app como una de las apps principales en el menú. Yo la puse junto al navegador y WhatsApp en mi caso, y ayuda totalmente a aumentar el uso.
Empecé a escribir este artículo hace un tiempo y la cantidad de progreso con Voice Mode, DALL-E 3 y demás es increíble, así que probablemente estará desactualizado para cuando lo publique, pero independientemente de eso, este es un buen truco y mejorará mucho cómo aprendes y consumes información.
Conclusión
Me pregunto cómo será el futuro del aprendizaje. Pero definitivamente cambiará. Google ya cambió esto un poco, pero los asistentes de IA a escala definitivamente cambiarán cómo consumimos información y aprendemos.
Hoy en día, no estoy seguro de si lo que estoy haciendo podría no considerarse aprendizaje, pero quizás así es como funcionarán las cosas en el futuro. Simplemente aprender desde el caso de uso en lugar de empezar con la teoría. Muchas universidades en todo el mundo llevan adoptando este tipo de mentalidad de aprender haciendo desde hace tiempo, así que esto podría simplemente acelerarlo.
Quiero finalizar diciendo que siempre he dicho que la programación definitivamente no es necesaria para ser un SEO exitoso, y mantengo ese punto de vista incluso ahora que he adquirido muchas más habilidades en torno a ella, pero puede ser útil. Dado que la inversión necesaria es mucho menor hoy en día, quizás quieras considerar probarlo.