- Funksjonell programmering blir et viktig paradigme fremover

- Studiene kan nok være enda bedre på å fremme funksjonell programmering, mener Sommerkoderen Ahmed Waseem Saeed.

Rammeverk kommer og går, men en grunnleggende forståelse holder seg med årene, mener Ahmed Waseem Saeed.📸: Selma Haugland
Rammeverk kommer og går, men en grunnleggende forståelse holder seg med årene, mener Ahmed Waseem Saeed.📸: Selma Haugland Vis mer

Hei sveis! Kan du først fortelle litt om studiet ditt? 🎓

Hei! Jeg er 24 år, går master i informatikk: digital økonomi og ledelse ved Universitetet i Oslo, er akkurat ferdig med fjerdeåret og begynner på sisteåret til høsten. Dette er en grad som bygger på bachelorgraden med samme navn, der man kombinerer en tredjedel økonomi- og ledelsesrelaterte emner, sammen med to tredjedeler informatikkemner.

Masteren er bygget i lik grad, med en del mer frihet til å velge emner etter eget ønske. Personlig valgte jeg flere informatikkemner, ettersom informatikk-delen av studiet er det som interesserer meg mest. Samtidig er det fint å kunne bytte litt på fagområder og få litt mer kunnskap om forretningsprosesser og strategi. Studiet er relativt nytt, og ble opprettet for å dekke et gap i arbeidslivet der man kombinerer tekniske ferdigheter med forretningsforståelse.

Det som er fint med modellen på studiet, er at man får mulighet til å fordype seg i det man ønsker. Eksempelvis tok jeg et 20-studiepoengs kurs i operativsystemer dette semesteret, der man bygger sitt eget operativsystem fra scratch, alt fra bootloader, schedulering frem til virtuelt minne og et filsystem.

Hva skal du jobbe med i sommer? 👷

I sommer jobber jeg som utvikler hos FINN.no, på kontorene deres på Grensen! Teamet består av åtte sommerstudenter, seks utviklere og to designere. Vi er studenter fra Universitetet i Oslo, Universitetet i Bergen, NTNU Trondheim og NTNU Gjøvik. Valget for årets prosjekt sto mellom to prosjekter: bulk- annonser versus sammenligning av annonser, der vi sommerstudenter fikk være med på å avgjøre.

Avstemmingen ble fire – fire, og ble avgjort gjennom myntkast, hvor bulk-annonser vant. Prosjektet i år lages for Torget på FINN, der vi sikter på å gjøre brukeropplevelsen lettere for brukere som selger og kjøper mange varer i én annonse (bulk-annonser). Per i dag må brukerne legge inn masse tekst i beskrivelsen og manuelt oppdatere annonsen når noe selges og kjøpes, og vi ønsker å gjøre disse prosessene mer brukervennlige og lettere. Vi jobber i Recommerce-vertikalen, som er ansvarlig for Torget på FINN.

I FINN fikk vi veldig stor frihet til valg av teknologier, og kunne velge selv hva vi ville bruke for prosjektet vårt. Etter å ha lekt litt med ulike rammeverk og språk, falt valget ned på Kotlin og Ktor for backenden, samt Svelte og Typescript for frontend. En del av oss hadde vært borti Kotlin tidligere, men Svelte var mer nytt for de fleste av oss, men vi ønsket å benytte sommeren til å lære så mye som mulig.

I tillegg benytter vi teknologier som Kafka, Travis og PostgreSQL, som ellers er hyppig brukt i FINN, i tillegg til deres eget designsystem, Fabric. Vi benytter også FINN sitt eget rammeverk for microfrontends, kalt Podium.

📸: Selma Haugland
📸: Selma Haugland Vis mer

Hva slags oppfølging og kontakt med kollegene dine får du i sommer? 🤗

Vi er kun ett sommerteam i FINN, og ettersom prosjektet er tiltenkt å slippes i produksjon, så får vi god oppfølging og kontakt med de fast ansatte. Vi har et eget område i 4. etasje på kontoret som er satt av til sommerstudentene, og her sitter de fast ansatte som er involvert i sommerteamet også, og hjelper oss når vi trenger det. I tillegg er folk raske til å svare på Slack, så oppfølgingen er meget god her.

I starten har vi benyttet en del mob- og parprogrammering i teamet for å sørge for at alle er på samme bølgelengde, ettersom man ofte har ulike erfaringer og kompetanse knyttet til valgte teknologier. Dette fører det til at vi jobber effektivt, og samtidig får større lærdom av jobben.

Dessuten har vi hattm, og skal ha, en del sosiale aktiviteter, f.eks. badstue med cruise på Kok, Fangene på fortet, middager ute, Syng, ispauser, cageball, buldring og mer.

Hvor godt synes du studiet ditt har forberedt deg på det faktiske arbeidslivet? 📚

Jeg synes studiet har forberedt meg godt på det faktiske arbeidslivet, men tidligere sommerjobb og deltidsjobb som utvikler har vært også vært ganske viktige læringsarenaer. Studiet danner grunnlaget for den grunnleggende forståelsen, spesielt på Universitetet i Oslo der emnene er nokså teoretiske. Den praktiske erfaringen er noe man tilegner seg i større grad når man først hopper inn i arbeidslivet.

En undervurdert faktor som studiet gir, er evnen til å løse problemer og fortsette å stå på selv når det butter imot. Det er ofte man støter på problemer og utfordringer i arbeidslivet som man kanskje ikke har vært borti på studiet, spesielt med enkelte teknologier og konfigurasjon i prosjekter. Dersom man har en positiv innstilling og evner å kartlegge hva som må gjøres for å løse et gitt problem, så ordner det meste seg.

Jeg er en tilhenger av å benytte studietiden til å fordype seg i stoff, og samtidig ta kurs som anses som vanskelige. Å velge vanskelige kurs, som samtidig fanger ens interesse, mener jeg er en sterk bidragsyter til å gjøre en student mer rustet for arbeidslivet.

Noe av grunnen til dette er at "vanskeligere" kurs ofte tester aspektet jeg var inne på tidligere, at man stanger hodet litt i veggen og utvikler problemløsningsferdighetene i stor grad.

- Bordtennisbordet og området vi slapper av i mellom slagene, sier Saeed. 📸: Selma Haugland
- Bordtennisbordet og området vi slapper av i mellom slagene, sier Saeed. 📸: Selma Haugland Vis mer

Hva er det vanskeligste med utvikleryrket? 💪

Basert på erfaringene mine gjennom sommerjobber og deltidsjobb, så er noe av det vanskeligste å korrekt estimere tid knyttet til et gitt problem man skal løse.

Uten erfaringsgrunnlaget som opparbeides gjennom å ha jobbet som utvikler et par år, er det ikke alltid like lett å estimere hvor fort det vil ta å løse et gitt problem man ikke har vært borti tidligere. Problemer som opprinnelig anses som enkle kan ta lenger tid enn tiltenkt, og motsatt.

Her hjelper det selvfølgelig med folk på teamet som har fartstid i yrket og kan skyte inn med erfaringene sine, og kan bidra til å korrekt estimere omfanget av en oppgave.

En annen utfordring kan være å manøvrere seg i alle ulike teknologier og rammeverk som finnes samtidig som det kontinuerlig dukker opp nye, men dette er noe av sjarmen i utvikleryrket også, der man må kontinuerlig lære for å utvikle seg selv og holde seg oppdatert.

Hvilke teknologier og ferdigheter blir det viktig å lære seg for framtiden? 🤖

Jeg er fremdeles en tilhenger av at en solid forståelse av grunnleggende ferdigheter er essensielt, og at det gjør tilegningen av nye teknologier og rammeverk enklere. Rammeverk kommer og går, men en grunnleggende forståelse holder seg med årene.

Med det sagt, tror jeg teknologier som GitHub Copilot og ChatGPT kan hjelpe utviklere i å effektivisere arbeidet sitt og gi en ny dimensjon i det daglige arbeidet som utvikler, selv om det i skrivende stund oppleves som utilregnelig til tider.

I tillegg tror jeg det å tenke "funksjonelt" om koden man skriver fremdeles kommer til å være viktig, og at funksjonell programmering blir et viktig paradigme fremover. Studiene kan nok være enda bedre på å fremme dette paradigme, samt konsepter som er sentrale innen funksjonell programmering.

- Grupperommene i FINN er navngitt etter ulike ting i FINN, for eksempel på Torget, sier Saeed. 📸: Selma Haugland
- Grupperommene i FINN er navngitt etter ulike ting i FINN, for eksempel på Torget, sier Saeed. 📸: Selma Haugland Vis mer

Hva er planene dine videre? 🔮

Planene videre er å skrive en kort master (30 studiepoeng) i samarbeid med FINN våren 2024.

Før den tid er planen å jobbe som retter i et kurs på UiO som jeg tidligere har vært gruppelærer i, ved siden av et eventuelt utvekslingsopphold i utlandet, men jeg avventer litt informasjon på den fronten.

Akkurat nå nyter jeg sommeren i FINN, før jeg tenker å begynne å se på fulltidsstillinger etter studiet. Til høsten tenker jeg å ta emner innen distribuerte systemer, nettverk og etisk hacking, noe jeg ser veldig frem til!