0

Bli bättre på programmering – bygg skit!

Hittade en riktigt bra artikel jag vill ta upp till diskussion här i kommande inlägg: (http://blog.programmersmotivation.com/2014/06/19/beginner-programmer-want-learn-programming-start-build-crap/). Den behandlar en fråga som man kan tycka har ett givet svar- vilket inte är verkligheten dock.

Frågan är enkel: hur blir jag bra eller bättre på programmering / ett visst språk / ett visst ramverk?
Svaret är: genom att arbeta med det.

Givet eller hur?

Fast ändock inte helt och hållet. Skulle säga av personlig erfarenhet och erfarenhet från studielivet att många angriper programmering, t.ex. ett nytt språk, på så sätt att -> Läsa bok -> Kunna språket. Vilket oftast är rätt långt ifrån sanningen.

Exemplet skribenten till artikeln ovan ger är enkelt. Hur lär du dig att cykla? Läser du en manual som cykeln, alla dess delar, hur den är tänkt att fungera, vad som händer när du trampar på pedalerna, hur bromsarna fungerar? Svaret är nej, du hoppar upp på cykeln och börjar trampa. Förmodligen ramlar, förmodligen vinglar, men blir med tid och övning successivt bättre ju mera tid du lägger på att träna och utvecklas.

Han utvecklar sedan sitt resonemang att på samma sätt måste man se på programmering. Oavsett om man förstår syntaxen och hur man rent teoretiskt skulle kunna använda språket, måste man dra igång sin editor / IDE och börja hacka för att få praktisk erfarenhet, ”bakslag” i form av kod som inte fungerar som tänkt, göra sig bekant med sin debugger osv.

Nästa fråga är: vad ska jag bygga?

Här liknar skribenten sina tidigare program med sina första teckningar. När man som liten stolt visade upp sina konstverk, skulle man snarare idag inse att de ser ut som skit. På samma sätt fungerar den tidiga kod man producerar, vilket är en del i inlärningskurvan. Det viktiga är att man faktiskt gjort något. Man har tagit tag i programmeringen, aktivt sökt svar på problem, producerat och samtidigt lärt sig.

Gör fåniga saker, onödiga, saker som redan gjorts (så länge det inte gör någon form av copyright-överträdelse), miniräknare, anteckningsapp.

Vad detta gör är även att höja din motivation som utvecklare. För även om dina tidigare kreationer är skitdåliga, har du slutfört något. Du har byggt en applikation, webbplats etc. som faktiskt kan köras och fungerar.

Vad bygger jag för skit?

För att avrunda det här inlägget så tänkte jag ge ett litet exempel på vad jag ofta bygger när jag nosar på ett nytt språk, eller ramverk/backend som skiljer sig en bit från det jag gjort tidigare. Exempel, att gå från Web Forms till MVC, eller Web Forms till att köra Node.JS

Jag bygger en gästbok ofta följt av en anteckningsapplikation. Gästboken ger en bra grund att stå på då man får implementera full CRUD-funktionalitet, arbetar man med språk/ramverk där JavaScript är inblandat också, får man även ett ypperligt tillfälle till att arbeta med asynkrona anrop mot det nya språk/ramverk man arbetar med. Det är en stabil startpunkt helt enkelt.

Anteckningsapplikationen sedan bygger egentligen vidare på de kunskaper man anskaffat sig genom att implementera CRUD-funktionalitet för sin gästbok. Bland annat vill man lägga till medlemshantering, administrationsvyer osv.

Med båda dessa i bagaget har man sedan fått känna på språket/ramverket en hel del och är redo att bege sig in på mera avancerade projekt och fördjupa sig. Eller varför inte gå tillbaka och börja refaktorera sin kod? Säkerligen dyker massor av saker upp som kan förbättras.

Nu är mina exempel rätt kopplade mot webben, men samma typ av applikationer kan faktiskt utan problem byggas även i konsolmiljö, eller varför inte i något GUI. App för Android och iOS?