karriere

Europas største kode-bootcamp skal gjøre deg til utvikler på ni uker. Slik gikk det da vi prøvde

Totalt var 22 elever fra 14 ulike land samlet i Barcelona over 9 uker. Målet var å lære nok webutvikling til å kunne få en stilling som juniorutvikler.
Totalt var 22 elever fra 14 ulike land samlet i Barcelona over 9 uker. Målet var å lære nok webutvikling til å kunne få en stilling som juniorutvikler.

Et skrikende behov for arbeidskraft. Et gapende hull i IT-kompetansen som bare blir større. Rekrutterere som løper over hverandre for å kapre de riktige menneskene.

Dette er virkeligheten i norsk IT-bransje. I alle fall om vi skal tro arbeidsgiverne og IKT Norge. 38 prosent av deres medlemsbedrifter klarte ikke å fylle stillingene de trengte i fjor.

I dag faller de fleste utviklere innen en av to kategorier: Den første er de som har tatt et tradisjonelt studieløp med bachelor og master, og som nå har fast arbeid.

Den andre typen er de som oppdaget koding i ung alder. Disse tok gjerne betalte oppdrag før jevnaldrede rakk å si «studiekompetanse».

9 uker - så jobb?

Men hva med alle de som vil lære seg å kode, men ikke har råd eller tid til å forlate jobben i flere år for å ta utdanning?

De siste årene har det vokst frem en ny måte å lære seg koding på: Bootcamper.

Dette er intensive fulltidskurs i webutvikling som typisk varer i åtte til tolv uker. Ideen er å sende studenter, gjerne uten forkunnskaper, gjennom et intensivt opplegg.

Mot slutten skal man være i stand til å lage webapplikasjoner på egen hånd.

I USA fullførte 18.000 studenter en kode-bootcamp i fjor. Til sammenligning fullførte 61.000 studenter formell høyskole/universitetsutdannelse på bachelornivå.

Også i Europa har konseptet skutt fart. De fleste større byer, inkludert Stockholm og København, har egne kurssteder. Den største i Europa er franske Le Wagon, som driver 29 skoler.

Vi bestemte oss for å sette opplegget på prøve.

Derfor valgte jeg bootcamp

Navnet mitt er Erlend Tangeraas Lygre. Jeg er 28 år og har jobbet som journalist i Teknisk Ukeblad og Digi.no de fire siste.

Til daglig lager jeg nyhetsstoff, karrierestoff og intervjuer med utviklere og bedriftsledere.

Jeg har forsøkt å lære meg å kode i flere år, men har aldri funnet et strukturert opplegg som jeg har klart å gjennomføre.

Det var lett å bli kjent med folk på bootcampen. Her er jeg (midten) sammen med Aaron og Anthony fra USA. Det var disse jeg endte opp å gjøre sluttprosjektet sammen med. Foto: Avalon Van Der Horst
Det var lett å bli kjent med folk på bootcampen. Her er jeg (midten) sammen med Aaron og Anthony fra USA. Det var disse jeg endte opp å gjøre sluttprosjektet sammen med.

Problemet mitt med selvlæring er at man ikke får rask tilbakemelding og oppfølging, slik man gjør i gruppetimer på universitetet eller under opplæring på en arbeidsplass. Dette gjorde at jeg brukte time etter time på små bugs og misforståelser.

Dette er selvfølgelig en del av det å være utvikler, men unødvendig demotiverende når man skal lære seg det grunnleggende.

For å lære trenger jeg gruppepress og rask tilbakemelding. På papiret burde derfor en bootcamp passe perfekt.

Valget falt på Le Wagon. Denne har også fått gode anmeldelser fra tidligere elever på Switchup.

De har avdelinger i blant annet København, London, Berlin og Barcelona. Jeg valgte sistnevnte fordi det er varmt der. I tillegg startet den i fjor, så prisen ligger på 59.000 kroner for opplegget som varer i ni uker. Dette er en hyggelig pris i bootcamp-sammenheng. Lærer-til-elev-ratioen er også høy her. Hos oss var den i overkant av 1 lærer per 4. elev.

Opplegget

Først og fremst: Bootcamps er kjent for å være intense. Her skal man lære mye på kort tid. Dette var også tilfellet for Le Wagon.

Læreplan (Et utvalg)

  • Forberedende oppgaver (cirka 40 timer): Videoforelesninger og innføringskurs på codecademy. Dette skjer i ukene før skolen starter.
  • Ruby (1 uke): Terminal, kontrollflyt, looper, regex, operasjoner på arrays, hasher, GIT, parsing og skraping.
  • Programvareutvikling (1 uke): Klasser, kodestruktur, arv og objekter.
  • Databaser/SQL (1 uke): Design, CRUD med SQL, activerecord, validering.
  • Front end (2 uker): HTML/CSS, Bootstrap, Javascript, DOM-hendelser, AJAX, HTTP, produktdesign.
  • Rails (2 uker): Ruting, MVC,Heroku, innlogging med Devise, bildeopplasting, søk.
  • Prosjekt (2 uker): API-er, testing, innlogging med Facebook (OmniAuth), prosjektarbeid.

En typisk dag så slik ut:

  • 2 timer med forelesning om dagens tema.
  • 7-8 timer med oppgaveløsning. Her jobber man parvis med andre elever. Man skifter partner hver dag.
  • 1 time med gjennomgang av dagens tema.
  • Sporadiske gjesteforelesninger eller arrangementer på kvelden.

I faktaboksen til høyre kan du se læreplanen for de 9 ukene pluss forberedende kurs.

Oppgaveløsningen står sentralt i læringen hos Le Wagon. Det hele er veldig praktisk rettet.

Dersom du er glad i lange forelesninger, drøfting og refleksjon er nok ikke dette stedet for dét. Det hele går ut på å løse praktiske oppgaver som blir gradvis vanskeligere og mer omfattende gjennom kurset.

Oppsett og teknologivalg

Første dag ble vi introdusert til terminalen og GIT. I tillegg installerte vi nødvendig programvare på maskinene.

Dette inkluderte Sublime text, homebrew for pakkeinstallasjon og Ruby, som er programmeringsspråket skolen benytter seg av. Ruby er valgt over Javascript fordi det har enklere syntaks, og er grunnlaget for Ruby on Rails.

Rails er tro til prinsippet om konvensjon over konfigurasjon. Dette vil si at man følger relativt strenge regler og konvensjoner blant annet når man navngir filer og kodeelementer. Dette skal sørge for at utviklere løser like oppgaver på relativt like måter. Det gjør det enklere å jobbe med andres kode.

I Le Wagon er man påkrevd å benytte enten Mac eller PC med Linux. I vår klasse, med 24 elever, benyttet alle seg av Mac. Ideen er at når alle sitter på samme system med den samme programvaren bruker man mindre tid på oppsett og har færre potensielle feilkilder. Det stemmer nok.

Læringsplattform

Hver dag logger man inn på skolens læringsplattform, Kitt. Her ser du hvem partneren din er for dagen.

Etter forelesningen går du og vedkommende sammen for å løse oppgaver. Dette kan være alt fra å summere tall i et array (i starten) til å lage en restaurant-applikasjon hvor man kan legge inn bestillinger og lagre menyelementer i tekstfiler.

Hver dag løser man kodeoppgaver som disse. Deretter lastes svarene opp på Github. Koden må bestå en rekke tester.
Hver dag løser man kodeoppgaver som disse. Deretter lastes svarene opp på Github. Koden må bestå en rekke tester.

Har man tid til overs etter de obligatoriske oppgavene, kan man gå over på en rekke valgfrie oppgaver.

Underveis i oppgavene «raker» man. Det vil si at man sjekker sin egen kode opp mot en rekke tester som må godkjennes. Når man har passert alle testene kan man pushe (laste opp) oppgaven til Github, og gå videre til neste.

Alle forelesninger og nødvendig kunnskap for å løse oppgavene ligger på læringsplattformen Kitt. Denne er tilgjengelig også etter man slutter.
Alle forelesninger og nødvendig kunnskap for å løse oppgavene ligger på læringsplattformen Kitt. Denne er tilgjengelig også etter man slutter.

Læringsplattformen fungerer svært godt, og oppdateres jevnlig med fikser og nytt eller endret pensum.

Personlig var jeg en fan av partner-ordningen. Jeg jobber best i mindre grupper, og det var fint å ha noen å diskutere med. At partnerne rullerte gjorde også at vi ble kjent med alle de andre på kurset. Dersom man fungerte dårlig med en partner, fikk man alltid en ny en dagen etterpå.

Hvis man ble ferdig med en oppgave før sin partner, hadde man i utgangspunktet ansvar for å hjelpe partneren sin med å bli ferdig.

I praksis ble dette fulgt de første dagene. Men etter kort tid begynte de raskere elevene å jobbe med oppgaver lenger fremme, og etterlot partneren sin til lærerassistentene i stedet.

Heldigvis var det plenty med assistenter, så selv om disse kunne bli beslaglagt av de samme elevene i time etter time, var ikke dette et stort problem.

Prosjektukene

Det første ukene raste av gårde. Vi jobbet med, og lærte det grunnleggende om, alt fra arv og Ajax til admin-grensesnitt og sikring av SQL-input. Det er egentlig ganske utrolig hvor mye man får presset inn i hodet på så kort tid.

Da tiden kom for det første prosjektet, å lage en enkel markedsplass (ala Finn og Airbnb), følte jeg meg ganske klar.

Dette er en helt enkel CRUD-applikasjon. Altså en applikasjon hvor man kan opprette, lese, oppdatere og slette leiligheter, bestillinger og brukere fra en database.

I prosjektukene går man sammen med to-tre andre elever. Man får en kjapp introduksjon til arbeidsmetoden Scrum, som er populær blant utviklerne, og forsøker å følge denne så godt man kan.

Etter at man har brukt en uke på markedsplass-prosjektet går man løs på egne studentprosjekter. Disse måtte presenteres flere ganger foran klassen, og til slutt på en demo day. Jeg presenterte mitt eget prosjekt, som jeg fikk to amerikanere med på å lage.

I vår klasse ble det blant annet laget:

Dere kan gjette hvilken vår gruppe jobbet med. Hint: Det er den siste, og det er ikke umulig at den dukker opp på digi.no.

De siste ukene lærer man minst like mye om samarbeid, både teknisk og sosialt, som man gjør programmering. I nesten alle gruppene oppstod det krangler og relativt store forsinkelser.

Heldigvis (?) var det en rekke lærerassistenter som hjalp alle gruppene i mål med sine prosjekter før de ferdige arbeidene skulle presenteres.

Underveis lærte jeg mye om hva utviklere må leve med på en daglig basis. Her er noen eksempler:

  • Jeg brukte rundt to dager på å sette opp den grunnleggende appen med algoritmer, login-system, modeller og database. Etter dette brukte jeg tre dager på å skjønne at jeg måtte endre et variabelnavn som var for langt, som igjen gjorde at man ikke kunne logge inn med Facebook.
  • At ingenting fungerer første gang man laster opp til Heroku.
  • At Javascript er mye mer tungvint enn Ruby.

Vanskelighetsgrad

Le Wagon markedsfører seg mot mennesker helt uten forkunnskaper. I ukene før bootcampen starter, får elevene cirka 40 timer med hjemmelekser. Leksene består av diverse kurs på codecademy, hvor man blir introdusert til basiskonseptene i programmering og løser praktiske oppgaver. I tillegg skal man se gjennom en rekke videoforelesninger på skolens egen plattform.

Målet med dette er å sikre et visst nivå på deltakerne før de kommer.

Dessverre var ikke dette nok. Læringsutbyttet var nemlig vidt forskjellig for de ulike elevene.

Selv hadde jeg mer forhåndskunnskap enn de fleste på kurset. Dette var akkurat nok til å fullføre de obligatoriske oppgavene hver dag. Noen dager kunne jeg bevege meg videre til de valgfrie oppgavene. For meg var tempoet akkurat ikke for høyt, og jeg klarte å fordøye det som ble undervist.

De første to timene hver dag var satt av til forelesning. Her gikk vi gjennom grunnlaget for oppgavene vi løste resten av dagene. Foto: Avalon Van Der Horst
De første to timene hver dag var satt av til forelesning. Her gikk vi gjennom grunnlaget for oppgavene vi løste resten av dagene.

Jeg tilhørte dermed en gruppe på kanskje fem-seks elever som klarte å følge løpet slik det var tenkt. Èn måned etter bootcampen har fire av disse fått jobb som junior webutvikler.

Historien var en helt annen for de som ikke hadde vært borti grunnleggende programmering før. Disse slet spesielt med konsepter som klasser og objekter. Det var rett og slett ikke nok tid til å lære dette på en god måte for første gang på bootcampen, og mange ble overveldet allerede den andre uken.

Likevel lærte de fleste nok til å lage sine egne applikasjoner – i det minste opplevde de å få en god innføring i webutvikling, slik at de kunne lære detaljene på egenhånd senere.

Dessverre var det fem-seks elever som hele tiden hang langt bak de andre elevene. Dette var de som ikke kunne noe om programmering før de begynte. Disse var gjennomgående misfornøyde med læringsutbyttet og ble resignerte underveis. Ingen av disse hadde planer om å søke på utviklerjobber etter bootcampen.

Konklusjon

Å gjennomføre Le Wagon var en fantastisk opplevelse. En opplevelse jeg vil anbefale til nesten alle som vil lære seg programmering.

Pensumet er utrolig bra lagt opp, og læringsplattformen er enkel og brukervennlig. Det var høy kvalitet på lærerne og lett å få hjelp når man trengte det.

På ni uker gikk jeg fra å ikke kunne lage noe som helst nyttig, til å lage fullgode – men enkle – applikasjoner i rails. Kanskje viktigst av alt: Nå vet jeg hvordan ting henger sammen. Det gir meg grunnlaget til å velge ut biter fra programmeringsverden som jeg vil fokusere på. Å skaffe dette grunnlaget kan være veldig vanskelig på egenhånd.

Man får mye igjen for de rundt 60.000 kronene det koster. For mange betyr kurset en helt ny karriere og ofte langt høyere lønninger. Bootcamps er også midt i blinken for folk som vil starte noe selv, uten å være avhengig av andres tekniske kompetanse.

Ikke minst er det en fantastisk fin sosial opplevelse. Det er lett å få venner når alle er i den samme situasjonen. De fleste i klassen befant seg et eller annet sted i tjue- eller trettiårene, men det var også et par over og under.

Det største problemet med bootcampen jeg var på – og dette har jeg hørt om mange andre bootcamps også – er markedsføringen mot folk helt uten programmeringskunnskaper. Flere var rett og slett ikke godt nok forberedt, og fikk en dårlig opplevelse. Her må Le Wagon bli bedre.

Men har du derimot knotet litt med programmering før, er dette en perfekt måte å få knyttet sammen kunnskapen og brukt den til noe nyttig. Det er ikke så voldsomt mye som skal til.

Kan det hjelpe bemanningssituasjonen?

Det er en helt utrolig god følelse å kunne sette seg ned og faktisk realisere de tankene og ideene man sitter med i hodet. Det er dette bootcamps gjør best: Å på kort tid gi elevene ferdigheter til å bygge webapplikasjoner.

Men flere rene bootcamp-studenter vil på ingen måte redde bemanningssituasjonen i Norge. Til det er opplæringen for grunn og overfladisk. Norge trenger spesialister – særlig innen Java, .Net, skytjenester og sikkerhet.

Samtidig er ingen som kan si hva disse studentene velger å gjøre med kunnskapen de tilegner seg. I min klasse var interesseområdene vidt forskjellige. Mens noen har bestemt seg for å bli rene frontend-designere, er det andre igjen som har dykket dypere ned i sikkerhetsaspektet, mens andre har hoppet over på kompilerte språk som Go.

Powered by Labrador CMS