DIKU Summer of Code

Det er ikke en programmeringsteknisk udfordring, der afholder studerende på it-uddannelser fra at deltage i Open Source, men derimod kulturelt indblik og personlig overbevisning.

Der gik tre år på datalogi før jeg kontribuerede en patch til et Open Source-projekt, selvom jeg havde programmeret i flere år forinden studiestart.

Årsagen var måske en kombination af to ting: Opfattelsen af eksisterende Open Source-software som en naturresource, og at mange Open Source-projekter har en professionel, autokratisk organisationsstruktur, som kan virke intimiderende.

Professionel: Der bruges issue trackers, versionsstyring, udviklingsmetodikker. Det er alt sammen færdigheder, man kan lære, hvis man har et studiejob i en mellemstor software-virksomhed. Men den kulturelle opdragelse om at give sin kode tilbage til internettet er ikke én som særligt mange virksomheder aktivt opfordrer til.

Autokratisk: Ansvar gives ofte efter evne og ydelse. Jesper Louis Andersen fortalte mig om hvordan han som projektleder på sin etorrent-klient forsøgte at motivere frivillige ved at stille interessante opgaver efter evne. Den samme velvilje fandt jeg hos Jakob Nordfalk og Apertium-projektet. Men det er langt fra alle Open Source-projekter som er newbie-venlige, og de kræver uanset hvad initiativ fra den studerendes side.

På universiteternes programmeringskurser får man ofte udleveret en platform, man skal udvide. Det er vigtigere at rapportere sin forståelse end at ens produkt virker perfekt, og ugen efter får man en vejledende løsning for at sikre læringsmål og kontinuitet på kurset. Det er egentlig fint, men det arbejder ikke i retning af Open Source.

Jeg har erfaret at nogle af mine medstuderende på andet og tredje år har sagt at de gerne vil have et hobbyprojekt for at blive bedre til programmering. Det er som regel ikke gået så godt, men det kan også godt være overvældende at definere et projekt fra bunden.

Denne sommer forsøger vi at lave nogle sjove projekter; computerspil, compilere, hjemmesider og hvad vi ellers kan finde på. Det er alt sammen noget som erfarne nørder alligevel laver i fritiden, men denne gang skal kommende 2. årsstuderende også være med!

DIKU Summer of Code ligger 1. til 16. august og afholdes i kantinen på Universitetsparken 1, 2100 København Ø. Man skal være velkommen til at dukke op, men giv gerne lyd, da det kan være svært at komme ind. :)

Hvis du skulle give et ord med på vejen, hvad er så en god måde at komme ud af lektie-paradigmet og ind i Open Source på?

Simon Shines billede
Simon er tidligere studieblogger på Version2, har læst datalogi på DIKU og et enkelt år økonomi. Han arbejder som FinTech-udvikler og er ved at starte et detektivbureau. Han kan godt lide funktionsprogrammering, oversættere, webudvikling og brætspil.

Kommentarer (6)

Leif Lodahl

Hej Simon,
Jeg tror de fleste open source projekter har det problem, at det er svært at tiltrække og specielt fastholde "new bees". I LibreOffice har vi et begreb, som hedder easy hacks (Se https://wiki.documentfoundation.org/Development/Easy_Hacks ), hvor nybegyndere kan plukke små enkelte opgaver og bugs. Jeg ved at også andre projekter tilbyder tilsvarende "kravlegårde" ;-)

/Leif

Thomas Andersen

I gnome har vi "Gnome Love" bugs, der ligesom LibreOffice's easy hacks er ting der er nemme at gå til. Vi har også maillister og irc kanal specielt til nye udviklere.

Mit råd er dog ikke at sætte sig som mål, at forbedre et program, men i stedet at forbedre koden. Spring bug trackeren over og bare læs koden. Find et eller andet du kan gøre bedre. Hvad som helst. Der skal nok være noget. Det kan være noget helt banalt, som en stavefejl i en kommentar, en ubrugt variable, forkert indention, et mem leak, osv. Det er en nem måde at komme i gang og det er godt for selvtilliden at gøre tingene bedre.
Til dem der gerne vil i gang ved jeg tilfældigvis, at der er en banal kodestilsfejl i denne fil i systemd:
http://cgit.freedesktop.org/systemd/systemd/tree/src/test/test-util.c
Jeg committer meget gerne en patch sendt til phomes@gmail.com. Samtidigt vil jeg gerne vejlede omkring yderligere småopgaver i projektet. Det behøver ikke være intimiderende.

Du skriver at i bla. vil kigge på computerspil. Jeg forestiller mig at i tænker lidt større, men hvis i har lyst til at rode med noget der bliver distribueret til flere millioner brugere, så er jeg tilfældigvis maintainer på en del af de inkluderede spil i gnome. Jeg har ikke rigtig tid til dem og flere af dem er i forfald. Det kunne måske være et sjovt sommerprojekt at udvikle et af dem? Og måske anledning til på sigt at overtage maintainer rollen på det?

Kræn Hansen Blogger

"Det er som regel ikke gået så godt, men det kan også godt være overvældende at definere et projekt fra bunden."

Ja! Og heller ikke så realistisk?

Min umiddelbare reaktion er at universiteterne ofte beskæftiger sig med ideelle situationer i "clean code land". Hvor den studerende altid starter uden en arv fra tidligere udviklere.
Dette betyder at den studerende sjældent får mulighed for at kigge andre udviklere over skuldrene - så fraskæres muligheden for at lære af andres fejl og gode idéer.

Desuden er det min opfattelse at universiteternes virkelighedsfjerne tilgang også bidrager til at nyuddannede udviklere ikke kan forholde sig til et projekt hvis de ikke må starte forfra: De udråber "Fuck det - vi starter forfra!" istedet for "Fork det - vi bygger videre!". Med skiftende bemanding, på svagt definerede projekter, ender man med projekter der genstarter i én uendelighed.

Adam Henriques

Simon, jeg synes det er et godt initiativ i tager for at promovere open source arbejdet i danmark.
For yderligere inspiration se evt. Jenkins CI User Conference der afholdes på DIKU til September. Her vil der være rig mulighed for at afmystificere open source samt lære om best practice. Sidst men ikke mindst vil der deltagelse fra "manden bag det hele" Kohsuke Kawaguchi og andre fremtrædende aktører i branchen.
Arrangementet er åbent for alle.

Torben Mogensen Blogger

Min umiddelbare reaktion er at universiteterne ofte beskæftiger sig med ideelle situationer i "clean code land". Hvor den studerende altid starter uden en arv fra tidligere udviklere.

Til en vis grad, ja. Men der er også en del opgaver, hvor man skal udbygge en eksisterende kodebase. Denne kodebase er dog i reglen forholdsvis lille og/eller ret gennemprøvet og uden (større) fejl, hvilket ikke altid er realistisk. Men der er på et kursus med 8 ugers undervisning ikke tid til at lave projekter af "realistisk" størrelse ved siden af forelæsninger m.m. Det kan man så f.eks. bruge virksomhedspraktik (der kører over 16 uger) til.

Filmskoleprojekter har jo heller ikke omfang som spillefilm, og er heller ikke omfattet af samme restriktioner (og muligheder), som filmproduktion i et kommercielt filmselskab har. Så hvorfor forvente, at udviklingsprojekter på uddannelser har samme omfang og vilkår som udviklingsprojekter i "den virkelige verden"?

Log ind eller opret en konto for at skrive kommentarer