Foto av Johannes Carlén

Visst kan man lära gamla hundar att sitta eller en reflektion om vidareutbildning i Java.

// Johannes Carlén

“Jag måste vara riktigt dum”, tänkte jag. “vad är det jag missat här egentligen?” fortsatte mina tankar när vi satt och pratade på lunchrasten. Det här var strax efter jag gått min första Javakurs för cirka tio år sedan. Visst hade jag lärt mig Java på universitetet innan, men med Javakursen på jobbet så var det ändå lite mer “på riktigt”. Alla pratade om den här så kallade “aha-upplevelsen” vad gäller objektorientering. Alltså ett specifikt ögonblick då tioöringen trillar ned och hela förståelsen för vad objektorientering egentligen handlar om når fram och man helt plötsligt skulle… förstå.

Nå, jag hade i alla fall inte haft något sådant “frälsningsögonblick”, medan fler av mina dåvarande kolleger helt bestämt hade haft en sådan upplevelse. Ja, så då var det ju så enkelt att jag antagligen inte hade förstått vad objektorientering handlar om. Det var inte förrän några år senare, när jag själv skulle börja lära ut Java, som jag egentligen klurat ut hur det egentligen ligger till.

De flesta nyutexaminerade idag har fått lära sig Java/objektorientering från start, kanske redan i första året av utbildningen. De har inte givits någon möjlighet att lära sig “fel” tankesätt. Objektorientering med viss analys och design blir alltså något helt naturligt för dem.

Tar vi då och gör en jämförelse med en utvecklare som de senaste tjugo åren kodat RPG, Cobol eller liknande och som verkligen rotat in ett helt procedurellt tankesätt, så är inte detta lika självklart. Klasser, objekt, operationer, arv och polymorfism är inte självklara termer. Själva tankesättet med operationer på instansen självt kan för många ses som totalt obegripligt.

Allt fler företag ser behovet av att komplettera sina iSeries och mainframe-miljöer med en något mer modern enterprisemiljö. Det blir alltså mer och mer vanligt att RPG-utvecklare skall skolas om till någon annan utvecklingsmiljö och i många fall till just Javamiljön. Det krävs då en annan form av pedagogik än den vanliga genomgången som i de allra flesta fall erbjuds av kursföretagen idag. Ett stort problem är att kursscopet blir alldeles för brett. Man försöker trycka ned, inte bara objektorientering och Javaspråket, i halsen på eleverna, utan också en lång rad av API:er - påfallande ofta ser vi fortfarande exempel på grundkurser i Java där man skall skapa t ex applets eller grafiska gränssnitt med hjälp av Swing. Mekanismer som istället bör läggas i egna kurser (alltså egentligen på motsvarande sätt som man gör med exempelvis JSP/webbutveckling) så att man, då behovet uppstår, kan få en mer rejäl duvning i de delarna, och istället ersätta detta med att försöka nöta in en bättre förståelse för objektorientering, språket och plattformen. En efterlysning efter en mer datavetenskaplig angreppspunkt där man först måste förstå själva problemställningen innan man kan börja angripa lösningen.

Så.. jag var inte så korkad som jag trodde mina första arbetsdagar, utan jag hade helt enkelt lyckats fånga syftet och meningen med objektorientering redan i min utbildning och faktiskt fått ett försprång. Ett försprång som alla studenter ges möjligheten till idag. Varför kan inte kursföretagen göra sitt för att minska denna inlärningsklyfta?

Ett sätt för IT-avdelningarna att hantera utbildningsfrågan är att köpa in skräddarsydd utbildning där det då är viktigt att ställa krav på utbildningen så att den passar de anställda. Eller ännu hellre; - köra någon form av lärandeprojekt inom verksamheten där lärandeformen är det primära. Man får då en naturlig väg för kompetensuppbyggnaden på avdelningen. Det är dock inte helt utan kostnad och går man vidare med ett lärandeprojekt är det viktigt att man styr upp arbetet som vilket annat projekt som helst.

Erfarenheten är dock att den allra viktigaste faktorn för vidareutbildning, och för resultaten av denna, inte helt oväntat är väldigt mänsklig - motivationen från den enskilde utvecklaren.

Kommentarer