Progress

Jonathan Sulo tipsade om en intressant artikel som behandlar ämnet hur man hittar bra programmerare.

Det fick mig att tänka lite på vad för faktorer som har tagit mig framåt som utvecklare. Genomgående är att jag tycker det är kul med nya grejer. Även om jag i förhållande till en del människor antagligen framstår som konservativ. Mitt måtto är att jag tittar på teknologier när jag har tid och när de kan gynna mig. Det är sällan jag tar mig för projekt i helt nya språk bara för att experimentera, det är lite för högt insteg (även om det har hänt, jag skrev nästan klart en nätverksbaserad opengl pong-version i pike bara för att det var kul).

Mitt professionella utvecklande började när min far bad mig skriva en miniversion av deras administrativa system för psions series 3 handdatorer i mitten av nittotalet. Det var en kul maskin som till mina fysik- och mattelärares frustration ledde till att jag löste fler uppgifter med iterativa metoder än att faktiskt lära mig saker. Att bli tvingad att följa en kravspec till punkt och pricka när en datafil skulle läsas och skrivas var en ny erfarenhet till skillnad från mina tidigare hobbyprojekt där jag oftast undvikit svårare problem istället för att konfrontera dem (jag är rätt easy-going i mitt utvecklande). Varför stånga sig blodig när man kan lösa ett problem med ett par copy-paste och lite innovativ fulkod?

Denna insikt ledde antagligen om inte annat delvis till att jag fick jobb som webbutvecklare hos JiiComp AB (sedemera Sigma). Historien om hur jag fick mitt jobb där är en rolig anekdot. Kvällen innan jag skulle på min interjuv hos dem så var jag av okänd anledning på deras kontor med en klasskamrat som hade jobbat hos dem ett par år. Han visade mig lite SQL (som jag vid det tillfället inte kände till alls), kunskaperna jag helt slumpmässigt tillgodosedde mig då gjorde att jag passerade det inte allt för täta nålsögat dagen efter. Jag lyckades även lura i dem att jag “kunde” perl, i ärlighetens namn så bestod mina kunskaper i perl mest av att jag visste att my old man programmerade i det. Hey, om han kan det, så kan jag. Perl-kunskaper runs in the family.

Utvecklingsmodellen på Sigma var väldigt grundläggande, faktum är att om någon där vid den punkten visste vad en utvecklingsmodell var skulle jag bli förvånad. Skriv asp-kod i en text-editor, försök få grafikerna att leverera i tid och se till att kunden var nöjd. Versionshantering, backuper och var okända begrepp pre 2001. Hos Sigma lärde jag mig däremot vad det innebär att arbeta mot en kund. Mitt förakt för beställare har inte riktigt hämtat sig. En kunds behov är sällan samma som mitt, vart resurser skall läggas och vilka funktioner som skulle utvecklas var alltid fokuserat på det affärskritiska, nästan aldrig på slutanvändaren. Detta ledde såklart till att jag utvecklade en hel del detaljer på egen hand, om inte kunden fattar att de behöver en funktion så får man hjälpa dem lite. En festlig historia från denna epok involverar netonnets administrationssystem där jag på egen hand byggde in översiktlig statistik över antalet användare eftersom jag tyckte det var kul att se. Lärdomen var: om du ger dem handen så tar de armen. Det fick jag lära mig ett par månader senare när de ringde och var förbannade för att statistiken inte stämde överrens exakt… tack!

Sigma var ingen plats där jag kände att jag kunde utvecklas, det fanns utbildningsmöjligheter men det var i regi med utbildningsbolag som ville lära oss ta microsoft-certifieringar och andra obskyra teknologier. En klassiker är när jag surt replyade till utvecklingschefen med en fet tirad om hur värdelösa kurserna verkade. Synd att jag tryckte på reply-all istället för reply på ett mail som gått ut till alla i företaget, kudos money cant buy. Det blev ingen löneökning för Hjalmar i nästa förhandling.

Nästa steg blev Linköpings Universitet. En erfarenhet som trots en hel del motsträvighet visat sig helt ovärderlig för mig. Här fick jag för första gången bättre förståelse för begrepp som datastrukturer och pekare. LiU’s metoder går ut på att ge sina datavetare en bred förståelse för utveckling. Utbildningen sträcker sig från abstrakta programmeringsspråk till lågnivåspråk som microassembler och c++. På gott och ont är det en hel del kurser där jag inte har slutfört. Kunskaperna jag har kunnat tillgodogöra mig därifrån har däremot hjälpt mig att förstå hur databaser fungerar, varför viss källkod inte är snabb (även om jag inte alltid kan göra något åt det) och en mängd grundläggande begrepp för att kunna kommunicera med andra riktiga utvecklare när det kommer till exempelvis objektorientering. Eller hur Jimmy?
Den för mig mest intressanta tiden på LiU var de sista åren då jag hade hoppat av datavetenskapsprogrammet och läste fristående kurser. Att kunna plocka fritt ur curriculumet var en skön upplevelse som passade mig mycket bättre både inriktnings- och tidsmässigt. Det gjorde att jag kunde läsa ett antal poäng som var mer i linje med vad jag klarade av. De kurserna var ofta projektinriktade som ledde till att jag träffade många extremt duktiga personer som lärde mig att utnyttja den uppsjö av mjukvara som existerar för att effektivsera utveckling. Mest talande för detta är när jag började använda mig av versionshantering. Från en början CVS men senare Subversion.

Det händer så bisarrt mycket på internet i form av utvecklingsmöjligheter. När jag började utveckla i ASP på Sigma var det stora alternativen coldfusion, mod_perl och kanske det där nya buggiga PHP. Idag finns det en handfull av stora språk lämpade för webbutveckling. Ruby, python, java, PHP5, .NET. Databaserna har gått från att vara Access/MSSQL och Oracle till att utökas med PostgreSQL, MySQL, SQLite, Firebird och massor av andra alternativ. På klientsidan för javascript och html har det hänt otroligt mycket, från att ha varit funkar det i netscape och internet explorer 4 så är det lugnt så skall en webbsida idag vara standard compliant och fungera på allt från konstiga os som macos till mobiltelefoner och för handikappades textläsare.

För mig har det alltid varit viktigt med användarinteraktivitet, redan när jag utvecklade i borland delphi så var det roligaste att designa användargränssnitten. Det magiska i att kunna utföra en funktion när man tryckte på en standard windows-button var i flera år ett spännade moment för mig. Annat saknas efter ett par år med qbasic, pascal och c i osexiga dos och linux-prompter. Därför är det kanske idag jag mest fascineras av javascript. Även här har det hänt otroliga saker. Från att ha varit ett bespottat alternativ som bara kunde köras ordentligt i en browser i taget har det blivit ett fullvärdigt alternativ till att skriva server-side-kod i. Från och med Ajax (frågan är, vad kom först, hönan eller ägget?) intåg hände mycket. Javascript-bibliotek som prototype, yahoo ui, scriptaculous, jquery och andra frameworks har gjort mycket för att underlätta för gränssnittsdesignern i oss alla. Mitt nästa steg är att erövra domänen javascript. Än finns mycket att lära. Och glöm för all del inte det viktigaste, ingenting är omöjligt – det tar bara olika lång tid!

Nån som har någon rolig historia om de viktigaste moment i sin egen utveckling? Dela gärna med er!


8 Responses to “Progress”

  1. Jonas Says:

    Denna är bra: http://www.joelonsoftware.com/articles/fog0000000073.html

  2. Dan Says:

    Spännande att läsa historien för en som varit med hela tiden (nästan) :)

  3. Adam Says:

    Kul att läsa om din bakgrund Hjalmar. Är lite nyfiken på hur gammal du är samt hur många poäng på LiU du tog?

    MVH

  4. Hjalmar Says:

    Adam, har 87p från LiU och 40-50 från Mittuniversitet som var en högskola då. Läste ett par kurser på distans. Jag är 27.

  5. Hjalmar Says:

    Jonas, ack denna joel on software.. en annan gammal favorit av honom är: http://www.joelonsoftware.com/articles/HighNotes.html

    Kan få vemsomhelst att känna sig helt värdelös.

  6. Jonas Says:

    Hjalmar, har du någon erfarenhet av RentACoder.com?

  7. Hjalmar Says:

    Nej, ingen alls. Har blivit lite avskräckt när jag har sett vad andra som har jobbat med den typen av sidor fått för resultat levererade. Det lilla jag har köpt i form av outsourcing har inte direkt känts så förtroendeingivande (content). Slutligen tycker jag inte det känns så billigt ofta i förhållande till vad man erbjuds.

    Själv?

  8. Jonas Says:

    Nej, ingen erfarenhet alls. Men la just ut ett jobb där och tyckte nästan att det tog längre tid att fylla i alla formulär än vad jobbet skulle ta ;) Återkommer med resultat på min blogg.

Leave a Comment


nine − 3 =

Subscribe without commenting