≡ Menu

Skal journalister programmere?

Jeg holdt torsdag morgen sammen med Ryan McNeill fra The Dallas Morning Post et oplæg ved NICAR-konferencen i St. Louis. Emnet var ”Why learn programming: A reporter’s perspective”. Nedenstående er en let ændret udgave af oplægget.

Jeg har tænkt en del over, om man skal anbefale journalister at lære at programmere.
Det ville være tillokkende at sige ja, for selvfølgelig er det en god ting at kunne.
Men vi lever jo i den virkelige verden. ikke en drømmeverden, hvor alle journalister kan lære at programmere, hvis de vil. Det er svært at lære, og selv om man er motiveret, så er det svært.

En øjenåbner
Men jeg havde en øjenåbner i går. Jeg underviste et hold journalister i Google Fusion, og jeg underviste i, hvordan man bruger Google TablesLayer Wizard. Det er muligt at kombinere to lag i den grafiske brugergrænseflade. Det forstod alle straks betydningen af, for det er smart at kunne.
Men hvis man vil kombinere flere lag, skal man åbne koden og ændre den. Og det var godt at se, hvordan alle uden videre åbnede koden og begyndte at ændre den for at åbne bedre resultater. De tænkte selv videre og fandt måder at kombinere de forskellige elementer i programmeringskoden.
Her handlede det ikke om at “lære programmering”. Det handlede om at ville opnå noget.
Vi hører stadig journalister tale om, hvordan de blev journalister for at undgå matematik. Og at overbevise den slags journalister om, at de kan få gavn af at kunne lidt programmering, bliver svært. I stedet skal vi vise dem, hvad de kan opnå.

Behov motiverer
Men sådan har jeg også selv været. Jeg indså blot, at der var masser af historier, der kun var mulige, hvis jeg lærte computerstøttede metoder – regneark etc.
Jeg har arbejdet som alm reporter i nogle få år for en del år siden. Siden kom jeg til at arbejde i DICAR, og i dag er jeg medejer af Kaas & Mulvad.
Jeg har aldrig lært programmering. Jeg har aldrig ejet en Commodore 64, og jeg har aldrig troet, at jeg skulle programmere. Eller at jeg kunne finde ud af det.
Og det er heller ikke fordi, jeg kan så meget – endnu.
Jeg klarede det jeg skulle i andre programmer og blev fx ret skrap til at bruge Excel. Jeg har renset rigtigt mange ”dirty data” i Excel, og jeg har sågar bygget en lille enhed, så jeg kunne lave webscraping ved hjælp af Excel.
Det var ikke fordi det var det mest egnede. Men fordi jeg havde behov for at rense data og for at skrabe websider, og jeg kunne finde ud af Excel.
Men en af mine venner, som faktisk har haft en lang karriere som programmør, sagde til mig, at når jeg kunne bruge Excel på den måde, så kunne jeg altså også lære at programmere. Jeg syntes dog fortsat, at programmering var lidt skræmmende, så jeg udskød det.
Men jeg kunne føle presset.

Hvorfor programmering?
Jeg har fulgt med på Nicar-l maillisten gennem mange år – siden midt-90’erne. I starten handlede det meget om Excel og Access og sql. Efterhånden begyndte begreberne web scraping og programmering at dukke op.
På forskellige Nicar-konferencer prøvede jeg flere hands on lektioner om web scraping i programmeringssproget Perl. Og der var nogle sessioner, hvor folk diskuterede, om Python eller Perl nu var bedst. (Og det gør de stadig!)
Det gik lidt hen over hovedet på mig, men vi blev da enige om, at vi måtte i gang med det her. Da jeg kom hjem, købte jeg nogle bøger om Python og Django. De kom op på boghylden, og så skete der ikke mere.
Vi har en licens til Kapow, som er et godt værktøj til bl.a. web scraping – men også meget dyrt. Så vi fik efterhånden en masse erfaring med web scraping, og det er let at se, at man med scraping kan lave en masse historier, der før var umulige at lave.

Nogle få eksempler:
Vi skraber hver dag Folketingets website og kan derfor løbende lave historer om fremmøde – eller om hvem der taler – og hvor meget i Folketinget – og om hvilke emner.
Vi skrabede informationer fra EU Kommissionens lobbyistregister. På den måde kunne vi ikke alene finde dem, der registrerede sig, men også finde dem, der senere slettede sig selv. Vi kunne ud fra den viden stille de rigtige spørgsmål.
Vi overvåger løbende tildelingen af fiskeri- og landbrugsstøtte. En del hentes ind via web scraping. Vi kombinerer data og gør dem offentligt tilgængelige via et fælles søgeinterface.
Vi har gennem en række år brugt Kapow. Da OpenKapow eksisterede arrangererede vi træning i programmet. Men den version er væk nu. Jeg ved der findes andre gratis løsninger, men min holdning er nu, at hvis man ikke har en masse penge, og hvis man vil lave en effektiv web scraping, så må man kunne programmere.
Så vi besluttede os for at lære det.
Og det gjorde vi så. Vi skabte det træningsforløb, vi selv gerne ville have haft. Og vi har indtil videre trænet to journalisthold i at bruge Python til web scraping. Seneste forløb løb over to gange to dage.

Barrierer
Når man underviser journalister i at bruge Python, støder man ind i mange barrierer.
For mange begyndere og uindviede forekommer programmering ret abstrakt.
Det kræver meget, hvis man skal lære det på egen hånd. Det er også svært at undervise i.
Kaas & Mulvad betalte endda en underviser, en professionel programmør – ikke en journalist – til at undervise os selv. Vi følte, at det var svært at få ham til at forstå, hvad det var, vi havde brug for. Så det opgav vi hurtigt igen.
Vi havde nemlig ikke behov for at forstå Python fra A til Z. Vi behøvede bare så meget, at vi kunne gå i gang med scraping.

Pointer
Så en pointe er, at journalister skal undervise journalister – også i programmering.
En session på Nicar-konferencen handler om at have ”a data state of mind”. Vi kunne også tale om ”a programming state of mind”. Vi skal ikke tænke som programmører, men vi skal ikke være bange for at gøre det en gang imellem.
Programmering handler også om, hvordan man hugger andres programmer og bruger dem til sine egne formål. Det er skønt at få en succesoplevelse, når noget faktisk virker. Også selv om man ikke helt forstår hvorfor. Bare det virker.
Og programmering er meget mere end at lære fx Python og kunne rense en fil eller at kunne visualisere data på nettet.
Programmering er også at turde ændre en url, så siden viser noget andet. At skabe en Google Chart-grafik ved at lege lidt med den URL, der skaber grafikken. Eller at kunne åbne source koden til et Google kort, som andre har lavet, og få det til at vise noget nyt, baseret på mine egne data.

Det der hjalp
Hvad har hjulpet mig? Jo, jeg kunne tage mig tid til – i en sommerferie – at læse en bog om programmering. Og prøve mange af øvelserne af på min egen computer. En god bog.
Jeg vidste, hvad jeg skulle bruge det til – jeg ville lære web scraping – og jeg vidste, at vejen dertil indebar en del programmeringskundskaber.
Jeg fandt nogle tutorials, som andre havde lavet. Især Ben Welshs artikler om web scraping fik mig til at forstå, hvad det handlede om.

Det der gjorde det svært
Langt det meste, der er skrevet om programmering, er skrevet for folk, der allerede kan programmere. Det er skrevet som om folk bare skal lære endnu et programmeringssprog, og bøgerne – i det mindste dem, jeg er stødt på – er ofte fulde af referencer til andre programmeringssprog. Hvis nu man brugte dette eller hint programmeringssprog, ville det være på den ene eller anden måde.
Det er ikke det, man har brug for. Man har brug for at komme i gang med det første sprog.

En god ide
For et par dage siden lancerede Dagbladet Information en konkurrence i et meget usædvanligt emne, nemlig datajournalistik.
Avisen indbyder journalister, der kan programmere og web-udviklere, der kan tænke journalistisk til at deltage i konkurrencen.
Information har indset, at webudviklere er nødvendige i redaktionerne eller meget tæt på. De skal ikke gemmes væk i en anden bygning eller afdeling. Information havde en flot dækning af The Warlogs fra Wikileaks, og de indså, at det fx var nødvendigt at skabe egne søgeværktøjer – blot for at kunne forstå sammenhængen og for at kunne finde og præsentere historierne.
Jeg regner ikke med, at denne konkurrence får journalister til at programmere, men måske kan resultaterne skabe ny interesse for emnet blandt journalister. Og det har vi brug for.

 


{ 0 comments… add one }

Leave a Comment