Aquest any va començar com un d’especial per a mi. Des de molts anys que volia aprendre més sobre programació, va ser el primer any en què realment va aconseguir-se incloure-ho com a un dels meus objectius anuals.
Amb el temps, he estat evolucionant aquest model des de OKRs personals a altres maneres de fer-ho, menys serioses i, en ocasions, més efectives. Però això és per a una altra publicació 🙂
Recentment, he estat simplificant la meva configuració general i aquest any vaig decidir tenir només dos objectius. Era adquirir dues noves habilitats, una de les quals era provar arts marcials (més en el costat de la salut i la forma física) i aprendre programació per aconseguir més autonomia.
Ja sabia que la meva manera preferida d’aprendre programació seria a través de CS50, un curs molt reconegut de Harvard que essencialment és una classe presencial, gravada i pujada en línia perquè qualsevol la pugui veure.
Al mateix temps que definia aquest objectiu, vaig començar a familiaritzar-me amb OpenAI, i quan al novembre de 2022 van llançar ChatGPT ja vaig veure el gran potencial real dels seus nous sistemes d’IA.
Per descomptat, he tingut el privilegi de veure el potencial de la IA a Adevinta durant anys, però aquesta va ser la primera vegada que vaig sentir que estava accessible a les masses de manera amigable i per a propòsits generals.
Encara que la versió inicial de ChatGPT no era gairebé tan bona com GPT-4 avui, ja era notablement bona en moltes coses. Això em va indicar que potser no necessitava aprendre programació per als meus casos d’ús.
Passant per CS50
Vaig començar a seguir CS50 durant la temporada de vacances de gener, al principi era molt captivador, el curs està extremadament ben fet, per un professor que realment sap com ensenyar una cosa difícil de manera fàcil. No és avorrit i el noi és generalment divertit i captivador.
Dit això, durant les classes següents vaig començar a tenir dificultats per seguir el ritme. Amb el treball augmentant ràpidament al gener i la necessitat de temps, era difícil avançar. Ja no em considero un bon estudiant. Després de finalitzar la universitat, el meu apetit per l’aprenentatge formal sempre és baix.
Encara que les classes de CS50 són llargues, no són tan difícils de seguir. El \”problema\” és que has d’intentar constantment el que fa el professor, i això fa que cada classe prengui 2 o 3 vegades més temps, així que pot fàcilment prendre 5–6 hores per classe (segons la meva experiència, per descomptat).
Després has d’afegir els exercicis, cosa que pot prendre una quantitat encara més gran de temps. Així que els meus càlculs indiquen que probablement necessites més de 200 hores per fer el curs correctament. Això va ser, desafortunadament, un problema de disponibilitat de temps per a mi, i també, se’m seriós, una cosa que no estava disposat a fer fins i tot si tingués aquest temps 🥹
Aquesta publicació no tracta sobre CS50 en absolut, però només estic compartint el procés perquè puguis relacionar-te. I la conclusió aquí és que vaig descobrir que estava intentant aprendre a ser programador quan en realitat només volia codificar.
Això pot sonar essencialment stupid, però realment és molt rellevant. CS50 és una classe introductòria/fundacional a Harvard per aprendre programació en la branca de ciències de la computació. Només volia aprendre una mica de scripting per crear scripts bàsics, cridar APIs i fer consultes SQL. No per construir programari complex que estigui preparat per a milions de sol·licituds al dia.
(Tipus) Tothom cuina però no tothom és un xef. Volia aprendre l’equivalent de cuinar per a programació, sense haver de anar a l’escola de xefs. Què passaria si la IA pogués eliminar per a mi la necessitat d’aprendre específicament la sintaxi de programació.
Per a alguns enginyers aquesta publicació pot sonar estranya, i potser sóc el que es podria anomenar un Programador ChatGPT, però crec que és una idea potent i només crec que creixerà a partir d’aquí. Pot ser en la intersecció entre No-Code i Enginyeria de Programari.
Sóc una persona molt pràctica i sempre recomano invertir temps en les coses correctes. Així que després…
Deixo CS50 i ChatGPT es dispara
Després de algunes classes, i lluitant per seguir, vaig decidir fer una pausa en CS50 i centrar els meus esforços en intentar entendre si ChatGPT podria ser el programador que necessitava.
Per a aquells menys familiaritzats amb ChatGPT, quan va sortir per primera vegada, essencialment era una prova de concepte de com es podria utilitzar un LLM (model de llenguatge gran) de propòsit general en un entorn orientat al consumidor, en forma de xat.
ChatGPT des d’aquesta data ha crescut exponencialment i com pocs altres coses han fet-ho en la història. Actualment té més de 1.5B visites al mes al lloc web i més de 40M d’usuaris actius setmanals a les aplicacions.
Com esperes pel títol de l’article, sí, ChatGPT va complir la majoria de les meves necessitats sense haver de invertir una quantitat significativa de temps per aprendre programació a fons.
Val la pena notar que el meu coneixement de la codificació i la comprensió general de les coses no va començar des de zero. Tinc alguns coneixements existents de codificació però bastant limitats, i a causa del meu rol al treball, tinc una experiència extensa en comprendre com les peces tecnològiques es connecten entre si, què és una API, i així successivament.
Això ha ajudat enormement i és probable que no tothom pugui saltar a utilitzar ChatGPT al màxim només llegint aquesta publicació, però pot inspirar-te a seguir un viatge similar.
Com ChatGPT va turbocargar el meu dia a dia com a SEO
Així que després d’aquesta part introductòria, entrem en com ChatGPT (principalment, entre altres eines d’IA però em centraré en aquesta) ha millorat el meu dia a dia com a SEO.
Per context, treballo com a Cap de SEO a Adevinta. Tot i que una part del meu rol és ser gerent, sóc molt pràctic quan cal i dono suport a l’equip en nombroses tasques molt operatives i analítiques. Això és una cosa del meu ADN i crec que és l’única manera de mantenir-se en l’arena (joc de paraules intencionat, Chamath hehe) 🙂
ChatGPT és un canviador de joc per a qualsevol que estigui disposat a provar els seus límits. Fins ara, no n’he trobat molts — vol dir que no he trobat una tasca on ChatGPT no hagi pogut ajudar a aconseguir-ho amb èxit.
Descàrrec: Utilitzo GPT-4 dins de ChatGPT. Sóc un client de pagament perquè trobo aquest model molt superior a la versió gratuïta 3.5 i també gaudeixo de la estabilitat i altres avantatges de ser un client de pagament. Podries obtenir resultats pitjor si utilitzes la versió gratuïta.
Els meus casos d’ús
SQL
Un cas molt evident és fer consultes SQL. Tot i que tenia alguns coneixements de SQL gràcies a cursos interns fetes a Adevinta i també alguna pràctica feta a fora, la realitat de SQL és que tenir uns coneixements bàsics no és gaire útil.
Sempre que decideixes que les interfícies UI d’Analytics no et serveixen, normalment significa que estàs intentant enfrontar-te a una consulta complexa, sovint fent operacions com substitucions, sub-consultes, unions de diferents taules i així successivament.
Això significa que conèixer els conceptes bàsics de SQL no serà gaire útil per aconseguir la teva tasca.
Amb ChatGPT, això canvia dràsticament, efectivament fins ara no he vist cap límit en aquestes tasques. Hi ha dos punts importants que has de tenir en compte quan treballes en aquestes iniciatives:
- Comparteix el(s) nom(s) de la taula: informa al bot sobre el nom de les diferents taules, de manera que probablement puguin construir la consulta preparada per a producció
- Comparteix els detalls dels valors de les columnes: potser voldries fer un ràpid SELECT * de table_name LIMIT 1 per obtenir tots els noms de les columnes de la taula així com exemples dels valors, de manera que el bot sàpiga què esperar en cada columna.
Un dels estereotips més comuns ja establerts en IA és que necessites ser un mestre en el prompting per obtenir la resposta correcta. Això pot ser cert per a certes tasques complexes, però et puc assegurar que no necessites gairebé cap coneixement de prompting per aconseguir aquestes coses correctament.
Què en et pot aportar com a SEO, per exemple?
Això habilita casos d’ús com fer consultes al Google Search Console BigQuery Bulk Export a la seva màxima expressió. A Adevinta treballem a escala amb ReallyBigData ™️. Tenim conjunts de dades que tenen milers de milions de files i creixen.
Un dels descobriments agradables d’haver millorat les meves habilitats en SQL és com és fàcil gastar diners en aquests casos, així que sigues curos 😜
Et puc dir que hem construït consultes junts que cap analista hauria tingut la paciència per construir ni tan sols en hores, sinó en qüestió de minuts.
Consultes com la següent, on realment només veus una part d’ella que té regex extremadament complicades basades en dades d’altres eines, és alguna cosa que GPT-4 és més que capaç d’obtenir correctament… Molt sovint en dues o tres intents.
RegEx
Quin qui ha treballat amb RegEx el detesta. Personalment, no conec ningú que es pugui autoproclamar \”Amant de RegEx\”.
Probablement està més a prop dels jeroglífics que existeixen en la informàtica. Novament, conec els conceptes bàsics però sempre que penso en escriure’n un de nou, em dóna mal de cap. Aquesta és una altra cosa en què ChatGPT excel·leix. Pots obtenir gairebé qualsevol RegEx correcte en qüestió de segons. Només has de proporcionar exemples del que vols coincidir i en quina forma, i ChatGPT et proporcionarà una molt bona per provar.
Més sovint que no, hauràs d’intentar-ho un parell de vegades abans que coincideixi correctament amb la teva expectativa. Però novament, això és el que feia abans quan copiei i enganxava de StackOverFlow. La diferència principal és que abans copiava 10 vegades i ara només 2–3.
A més, ChatGPT és molt millor proporcionant RegEx per a necessitats personalitzades que StackOverFlow. Aquest últim excel·leix en proporcionar coses que són genèriques, com ara \”coincidir el nom del subdomini per a URLs que no contenen un protocol\”.
Però què passa si vols \”coincidir totes les consultes amb variacions del nom de la marca, incloent errades d’ortografia per a la meva marca anomenada X, i només si contenen la paraula ‘cotxes’ dins d’elles\”. Això és alguna cosa que abans bàsicament havies d’aconseguir per tu mateix i passar un temps incalculable en un exercici no estratègic que ara només està a uns quants clics de distància.
I com pots veure, aquestes coses poden estar entrellaçades. Pots construir una consulta SQL que tingui un RegEx massiu. He utilitzat dades d’altres projectes i eines per alimentar ChatGPT per enriquir encara més el resultat. Les possibilitats són veritablement infinites.
Scripting
Fins aquí hem cobert alguns casos que són majoritàriament vàlids en el costat de l’Analítica de Dades. Però ara entrem en el terreny de l’enginyeria de programari on també pots sentir que tens superpoderes.
Una de les primeres coses a notar és que el scripting és molt més complicat que fer consultes SQL, a causa del seu ecosistema.
Per a aquest propòsit, he utilitzat principalment algunes eines d’IDE en el núvol com Colab, centrada principalment en temes de Ciència de Dades a través de Python, el seu cosí Kaggle, que també té recursos molt bons disponibles, encara que la plataforma és una mica menys flexible, i finalment Replit, que és més com un equivalent d’un veritable IDE de pila completa en el núvol.
Personalment, una de les coses més avorrides que vaig trobar quan vaig començar a codificar va ser tot aquest configurament de l’entorn local. Podries passar hores intentant instal·lar tot correctament i de sobte alguna cosa es trenca o et perds. Amb aquest enfocament nadiu del núvol evites tot aquest embolic i entres directament a produir solucions. A més, tens la possibilitat de deixar treballs en execució si actualitzes als plans de pagament d’aquestes eines, cosa que pot ser convenient de tant en tant.
Crear codi per executar a Colab (cas d’ús principal) és similar al que fas amb consultes, amb la càrrega addicional de tenir, per descomptat, diverses capes més que has de cuidar. Instal·lar dependències, assegurar-te que estàs consultant la API correcta, assegurar-te que tens les dades correctes en el format correcte, etc. Per això, probablement hi hagi una publicació més llarga que es podria fer, però només em centraré en alguns conceptes bàsics i casos d’ús.
He construït molts scripts diferents que poden aconseguir tasques molt significatives per al meu dia a dia, com ara però no limitant-se a:
- Funció d’auto-suggest de competidors per a scraping
- Executar anàlisi sobre quins user-agents són més acceptats en la web
- Eliminar metadades d’imatges
- Trobar sitemaps XML amagats en llocs web de competidors
- Desduplicació de llistes de paraules clau
- Consultar una varietat d’APIs i exportar en CSV
Compartir molta d’aquest codi al el meu compte de GitHub. Si estàs interessat en algun que no hi estigui, no dubtis a contactar-me a través de DM per Twitter.
Tot això hauria estat impossible o molt complicat amb els meus nivells existents de Python abans. És cert que has de saber una mica què estàs fent i comprendre el codi, però parlant en termes generals, el codi Python és molt autoexplicatiu, així que a menys que estiguis fent coses molt complexes, hauria de funcionar bé.
Si et trobes amb un error, simplement enganxa’l al xat i normalment endevinarà què pot estar passant i et oferirà una solució per intentar-ho arreglar.
Una altra limitació en aquesta part és el fet que ChatGPT encara està de certa manera limitat pel nombre de tokens o paraules que pots proporcionar en el prompt. Això es torna més problemàtic a mesura que construeixes scripts més grans, que no caben en el prompt o fan que el bucle de retroalimentació sigui molt lent. Encara no he trobat una solució, però paciència 🙂
Encara que això s’hauria de resoldre naturalment en els propers mesos gràcies a la introducció de models de 32k tokens més grans, és alguna cosa que potser voldràs tenir en compte.
He trobat aquest procés molt agradable, havent construït crawlers per a milions d’URLs, aprens més sobre casos límit, gestió d’errors, multi-threading i altres desafiaments que em fan respectar encara més els desenvolupadors.
Puc dir amb orgull que l’Enginyeria de Programari és la segona cosa més frustrant en la vida després de League of Legends 🙂
Construir eines, APIs i altres coses genials
Encara que els scripts són una d’aquestes coses màgiques inicials, potser no vols limitar-te només a escriure 30, 50 o 100 línies de codi en un Google Colab, i després oblidar-les.
Sabia des del principi que un dels meus objectius amb això era crear eines per ajudar els altres, i tenir solucions estables que podria utilitzar jo mateix en el futur.
Per a aquesta tasca, vaig confiar principalment en PythonAnywhere, un mini-núvol per a l’entorn Python. És simple i abstrau molta de la feina necessària per tenir un lloc web en funcionament. Vaig començar això durant algunes vacances al sud de Portugal i vaig aconseguir posar en marxa diverses eines també durant aquest temps. Aposto que si intentés configurar-ho a través d’un núvol normal, ni tan sols ho hauria acabat després del viatge.
Aquesta és probablement la part de la qual més estic orgullós perquè no només m’ha ajudat a mi sinó també als altres. La pots trobar aquí: https://tools.estevecastells.com/
ChatGPT al teu telèfon
Hi ha un truc molt bonic per millorar l’ús de ChatGPT al telèfon i és tenir l’aplicació com una de les aplicacions principals al menú, ho col·loqueo juntament amb el navegador i WhatsApp en el meu cas, i ajuda totalment a augmentar l’ús.
Vaig començar a escriure aquest article fa un temps i la quantitat de progrés amb el Mode de Veu, Dalle 3 i així successivament, és increïble, així que probablement estarà obsolet quan el publiqui, però indiferentment, aquest és un bon truc i millorarà molt com aprens i consumes informació.
Conclusió
Em pregunto quin serà el futur de l’aprenentatge. Però definitivament, canviarà. Google ja ho ha canviat una mica però els assistents d’IA a escala definitivament canviaràn com consumim informació i aprenem.
En aquests dies, no estic segur si el que estic fent pot no ser considerat aprenentatge, però potser així funcionaran les coses en el futur? Simplement aprendre a partir del cas d’ús en lloc de començar amb la teoria. Moltes universitats de tot el món estan adoptant aquest tipus de projecte i mentalitat d’aprendre fent des de fa un temps, així que això pot només accelerar-ho.
Vull finalitzar dient que sempre vaig dir que la programació definitivament no és necessària per ser un SEO amb èxit, i mantinc aquest punt de vista fins i tot ara on he adquirit molt més habilitats al seu voltant, però pot ser útil. Ja que la inversió necessària és molt menor avui en dia, potser voldràs considerar-ho provar-ho.