– Python er et usedvanlig godt valg for å lære seg programmering for første gang, sier Leon Sandøy. Eller "Lemon" 🍋, som de fleste visstnok kaller ham.
Han er en av grunnleggerne av det som antagelig er verdens største Python-community: Python-discorden med snart 400.000 medlemmer. Til daglig jobber han som Chief Tecnology Officer for det kanadiske konsulentselskapet ion8.
I 2021 ble han utnevnt som Fellow i Python Software Foundation for arbeidet sitt med Python Discord.
Det å drifte Python-discorden er et temmelig omfattende prosjekt: Rundt seks år etter at Leon ble med på laget, har discorden 151 hjelpere, 37 moderatorer, 12 administratorer og 3 direktører.
Den tekniske løsningen minner mest om noe som kunne vært i bruk hos en større bedrift. Vi snakker Kubernetes-clustere, CI/CD, serverløse funksjoner og en masse annet, som vi skal komme tilbake til.
Trodde man måtte være akademiker
Leon forteller at han alltid har elsket teknologi, men at han som ung ofte ble fortalt at koding var noe man måtte være akademiker for å lære. Han fikk høre at det var veldig mye matematikk og alt for vanskelige for vanlige "dødelige".
– Det var kanskje sant en gang i tiden, men det er definitivt ikke sant i dag. Jeg gikk aldri ferdig videregående, og var absolutt ikke en akademiker, så etter at jeg hadde skutt meg i foten et par ganger som mislykka fulltidsmusiker så endte jeg opp som en tech-potet for en internettleverandør.
I dag trives Leon som utvikler, har blitt pappa til to barn, og når han ikke koder elsker han fortsatt å lage musikk (ps! du får en smakebit nederst i denne artikkelen).
– Hvor lenge har du kodet i Python, og hvordan startet det?
– Kjæresten min kjøpte en C++ begynnerbok til meg som julegave for rundt 13 år siden, og jeg tenkte at dette var vel en skikkelig teit gave.
– Men så leste jeg den, og ble egentlig ganske irritert. Det var jo ikke uforståelig i det hele tatt! Hvorfor hadde jeg ikke begynt med dette for mange år siden?
«Så oppdaget jeg Python, og ble hodestups forelska. Dette var språket mitt!»
Etter å ha lært seg C, C++ og C#, følte imidlertid Leon at det fortsatt var noe som manglet.
– Så oppdaget jeg Python, og ble hodestups forelska. Dette var språket mitt! Det var elegant og kortfattet, opptatt av lesbarhet og produktivitet, og uhyre fleksibelt. Jeg kunne jo gjøre nesten hva som helst!
Etter det ballet det på seg, og Leon forteller at han de siste 12 årene har kodet Python nærmest på fulltid – både på jobb og som hobby.
Han mener språket kan løse mange problemer, og er et knakende godt nybegynnerspråk som er lett å lese.
– Men Python er på ingen måte bedre enn alle andre språk til alle typer problemer. Det er mange fantastiske programmeringsspråk der ute, og folk bør lære seg de språkene som passer best til problemet de prøver å løse.
Stor Python-endring: – Kjempespennende!
Det var en ukultur på IRC
I starten da Leon begynte å kode i Python, var det IRC som var teknologenes chattested. Han hadde vært på IRC siden 90-tallet, og selv om han likte plattformen, mener han kulturen i tech-kanaler på IRC var ganske dårlig og lite vennlig overfor nybegynnere.
– Man kan kanskje kalle det en "RTFM-kultur", der dumme spørsmål ikke var tillatt og ble sett ned på som bortkasta tid. Men jeg var jo ikke ekspert, og hadde jo masse dumme spørsmål som jeg gjerne skulle hatt hjelp med!
Rundt 2017 begynte imidlertid mange av gruppene Leon var med i å flytte fra IRC og Skype over til Discord. Mulighet til å kunne poste bilder og etter hvert kodeblokker med syntaks-utheving gjorde at Discord var en langt bedre plattform, mener han.
«Vi ble enige om at kjerneverdien vår skulle være empati, at vi skulle ta imot "dumme spørsmål" med åpne armer.»
– Jeg lette rundt etter en Discord som handlet om Python, og fant en med rundt 250 medlemmer som nettopp hadde blitt startet.
Selv om den var rotete og ufokusert, fant grunnleggeren Joe Banks og Leon fort tonen, og sammen bestemte de seg for å bygge opp et skikkelig Python-samfunn.
– Vi ble enige om at kjerneverdien vår skulle være empati, at vi skulle ta imot "dumme spørsmål" med åpne armer, og at vi skulle ta en veldig hard linje mot all form for destruktiv oppførsel.
Brukte alt av fritid
Det å bygge opp den lille Discorden skulle komme til å legge beslag på bortimot alt av Leons fritid i mange år. Det ble jobbet mye med markedsføring, og andre Python-samfunn som ville godta kjerneverdiene til Python-discorden ble fusjonert inn og ble en del av staben.
Medlemsveksten gjorde at det var nødvendig å rekruttere aktivt for å bygge opp en stor gruppe med moderatorer og administratorer.
– Vi lagde Discord-botter, nettsider, API-er og annen programvare for å berike samfunnet med morsomme ekstrafunksjoner. Jeg deltok i podcasts, talte på konferanser, delte ut klistremerker...
– Og plutselig hadde vi over 300,000 brukere, og et team på over 140 frivillige!
«Bare hittil i år er det sendt rundt 4,5 millioner meldinger i discorden.»
Nå i august 2023 er medlemstallet circa 380.000, og bare hittil i år er det sendt rundt 4,5 millioner meldinger i discorden.
– Hvor krevende er det å drifte et så stort community?
– Kjempekrevende. Vi har til en hver tid rundt 40 aktive moderatorer, og modererer tusenvis av situasjoner hver måned. I tillegg har vi kodet våre egne moderatorverktøy og raid-detection verktøy, slik at moderatorene får en stor og svært nyttig verktøyskasse til disposisjon.
Se - Python får sin egen "Copilot"
79 repoer – nesten alt er Python
Python-discorden består som mange andre Discord-servere av en rekke ulike kanaler med ulike temaer, der man kan stille spørsmål, få hjelp eller bare prate med likesinnede.
Det er også en masse ulike bot-er, der mange er laget for å gjøre det enklere å administerere og moderere alt som skjer på serveren.
– Vi har 79 repositories, og mange av disse er i aktiv produksjon. Nesten alt er skrevet i Python. Vi bruker discord.py til bottene våre, og bruker blant annet Django, React og FastAPI i webapplikasjonene våre, sier Leon.
For å få det hele til å gå rundt, er de sponset av Linode.
– Vi hoster stort sett alt via Kubernetes. Vi bruker aktivt GitHub Actions for Continuous Integration, har Continuous Delivery på alle tjenester, og bygger deploy previews i Netlify.
«Hos oss er det mange som eksperimenterer og bygger ting for oss fordi det vil være en god lærecase.»
Noen av tjenestene driftes som Cloudflare Workers, det vil si serverløse funksjoner. Tjenestene overvåkes aktivt med blant annet Sentry, Grafana og Promethus.
Dette er imidlertid bare en brøkdel av teknologiene i stacken til Python-discorden, forklarer Leon.
– Hos oss er det mange som eksperimenterer og bygger ting for oss fordi det vil være en god lærecase. Vi anser dette som en fin synergi – vi får en ny tjeneste, og de får muligheten til å høste gode erfaringer i en profesjonell tech-stack.
Legg bort læreboka!
– Hva er det viktigste dere vil oppnå med Python-discorden?
– Å sørge for at nye Python programmerere har et trygt sted å spørre om hjelp med hva som helst, og at hjelpen er empatisk, tålmodig og kompetent, sier Leon.
Han oppfordrer de som vil lære seg Python til å for eksempel gå pythondiscord.com/resources/ der du finner en filtrerbar liste over gode ressurser, enten det er videoer, bøker, kurs eller interaktive spill
Men så snart man har lært seg det grunnleggende, bør man legge bort læreboka og heller finne seg et morsomt prosjekt å kode på, mener han.
– Du kan ikke lese deg god til å kode, du må kode deg god. Få fingra på tastaturet så snart som overhodet mulig!
– Og når du sitter fast - og det kommer du garantert til å gjøre - så kan du komme til Python Discord og spørre oss hvordan du løser problemet. Ingen spørsmål er dumme hos oss!
Utbrent PyPi-admin måtte gi opp etter flom av skadevare
Arrangerer hackatons og code jams
Python-discorden arrangerer også en masse events for de som vil treffe andre "med-kodere". For eksempel Code Jam som arrangeres hver år, der man blir en del av et lag med tilfeldig valgte medlemmer, som så skal løse et vanskelig problem i Python i løpet av en uke.
– Du må løse problemet med en gitt teknologi, og med et spesifikt tema. For eksempel kan oppgaven være å bygge en webapp i Django med temaet Early Internet.
To ganger i året er det også PyWeek, en game jam som har pågått i nesten 20 år, som Python-discorden har ansvaret for å drifte. Her er det om å gjøre å lage et spill i Python i et hvilket som helst spillrammeverk, og vinnerne blir stemt frem av deltakerne selv.
Pixel er inspirert av Reddits r/place der du får et stort canvas som folk kan plassere piksler på. Plot-twisten her er at du kun kan plassere piksler via et API, og det er ulike begrensninger for hvor ofte du kan gjøre det.
– Dessuten introduserer vi diverse modifiers i løpet av spillets gang som gjør at du må skrive om koden din for ikke å støte på problemer.
Hver desember hoster også Python-discorden julekalenderen Advent of Code, i tillegg til at de arrangerer PyCon-events og mye annet.
– Det skjer noe hele året på Python-discorden, sier Leon.
Musikkbakgrunnen kom til nytte
Avslutningsvis kommer vi ikke utenom musikkinteressen til Leon, som han liker å dyrke til tross for at han endte opp som profesjonell utvikler i stedet for å leve av musikken.
I 2021 fikk han en masse oppmerksomhet i utviklermiljøet etter å ha laget en sang om PEP 8 – en stilguide for Python-kode.
– Endelig kom musikkbakgrunnen min til nytte!
Skal det være tabs eller spaces? Du får svaret i sangen her: