Dette indlæg er alene udtryk for skribentens egen holdning.

DIKU Summer of Code

Af Studiebloggen16. juli 2013 kl. 11:376
Artiklen er ældre end 30 dage

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.

Artiklen fortsætter efter annoncen

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å?

6 kommentarer.  Hop til debatten
Denne artikel er gratis...

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.

Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.

Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.

Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.

Debatten
Log ind eller opret en bruger for at deltage i debatten.
settingsDebatindstillinger
5
18. juli 2013 kl. 08:45

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.

4
17. juli 2013 kl. 19:14

"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.

6
18. juli 2013 kl. 09:10

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"?

3
16. juli 2013 kl. 18:22

I KDE hedder begyndervenlige opgaver 'Junior jobs' og man kan finde dem her:http://community.kde.org/KDE/Junior_Jobs

Hvis nogen vil kaste sig over noget af dem, hjælper jeg gerne med at formidle kontakt.

2
16. juli 2013 kl. 16:16

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.cJeg 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?

1
16. juli 2013 kl. 12:59

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