Förra året tog jag ett mycket stort beslut i mitt liv - 2013 skulle bli det år jag äntligen lärde mig att koda.
Jag har alltid varit fascinerad av internet och hur teknik gör det möjligt för oss att kommunicera med människor runt om i världen. Det finns så mycket fantastisk teknik som byggs just nu, och jag insåg att jag inte var nöjd med att bara luta mig tillbaka och använda dessa kommunikationskanaler - jag ville göra dem själv. Jag hade ingen teknisk bakgrund och hade aldrig riktigt gjort någon kodning, men jag visste att det var nu eller aldrig.
Naturligtvis var den första frågan: Hur? Det finns massor av alternativ för att lära sig att koda: online-program, böcker, nattklasser, startläger - listan fortsätter, med varje alternativ som kräver olika åtagandenivåer.
Jag hade spottat runt några kodande handböcker tidigare, men hade inte mycket framgång. Jag ville lära mig, men jag kunde aldrig tyckas komma till en punkt där jag kände att jag åstadkom någonting. Jag skulle få några kapitel i och hamna helt förvirrad, och undrar varför på jorden jag använde kod för att skriva ord till "99 flaskor öl" i terminalen. Då skulle jag ge upp.
För att verkligen lära mig visste jag att jag behövde ett riktigt projekt där jag kunde se de praktiska resultaten av vad jag gjorde och dela min framgång med andra. Så jag bestämde mig för att skapa min egen väg till att lära mig att koda: Jag slutade mitt jobb, fyllde med ramen-nudlar och beslutade att JFDI (bara f * cking do it) genom att bygga 180 webbplatser på 180 dagar.
Även om det verkligen inte är möjligt för alla att ägna sig heltid åt ett projekt som detta, finns det fortfarande många sätt att använda min praktiska strategi för att lära mig en ny färdighet. Oavsett om du kliar för att veta hur du kodar eller något annat helt, läs vidare för några av de största lärdomarna jag lärde mig från min resa och hur du kan tillämpa dem på ditt eget äventyr.
1. Börja små, fortsätt bygga
Att lära sig alla nya färdigheter kan vara överväldigande när du stirrar på ett berg av kunskap du försöker erövra. Så i stället för att ta itu med hela berget, bestämde jag mig för att göra ett miniprojekt om dagen, vilket skulle hjälpa mig att hålla fokus på att göra små, stegvisa förbättringar.
Innan jag startade projektet med 180 webbplatser visste jag att jag ville kunna skapa stora, interaktiva webbappar, men jag visste nästan ingenting om hur man till och med skulle skapa en grundläggande webbplats. Så jag började med att göra något väldigt enkelt, bara ett par kodrader. Det tog mig hela dagen och skurade på internet efter svar på mina frågor, men det var det första steget.
Varje dag gjorde jag något mer komplicerat och byggde på det jag redan hade lärt mig. Att behöva producera en slutprodukt varje dag innebar att jag inte kunde låta mig hänga på att förstå varje koncept jag undersöker - jag var tvungen att fortsätta flytta. Och som ett resultat tog det inte lång tid innan mina lilla förbättringar av små steg började snöbollas i stora språng.
Senare i projektet gjorde jag saker jag aldrig föreställde mig att göra. Många av webbplatserna jag skapade var roliga och lekfulla. Jag gjorde leksaker som Sushi Jiggler och Etch-A-Sketch och spel som Simon och Minesweeper. Jag gjorde också mer allvarliga appar. Jag blev verkligen intresserad av data och gjorde presentationsverktyg som Elevations, som plottar terrängen mellan två platser på jorden. Kommunikation och delning var också ett viktigt koncept för mig, och jag skapade appar som Audio Garden för att hjälpa människor att ansluta världen över. Hur vi känner oss, som spårar känslorna hos människor på Twitter, är en av mina favoriter.
När du lär dig något nytt kommer du ofta över koncept som helt enkelt inte är vettiga första gången du ser dem. Det är farligt lätt att få tag på att försöka förstå varje detalj, bli avskräckt och ge upp. Att sätta en hård tidsfrist på en dag på varje webbplats tvingade mig att bara få saker att fungera snarare än att oroa mig för att "få det." Så länge jag fortsatte att gå framåt, visste jag att jag så småningom skulle förstå de saker som jag inte riktigt få första gången.
2. Att sätta dig själv där ute är det bästa sättet att hålla ansvariga
Förutom att sätta min dagliga hemsida online, satte jag också all min kod på GitHub (koddelningsplattformen för 6 miljoner människor över hela världen) för vad som kändes som hela teknikgemenskapen att se. Inget skämt - det var skrämmande! Alla skulle kunna se hur illa jag var! Alla mina misstag, utomhus!
Vad jag snart insåg var att genom att dela mitt arbete offentligt lämnade jag inget utrymme för slacking och jag kände press för att fortsätta förbättra mig. Jag kunde också få verklig feedback om min kod och mina webbplatser, vilket hjälpte till att forma vilka idéer jag ville utforska nästa. Ännu viktigare är att att avslöja mina misstag och missuppfattningar lärde mig att vara mer bekväm med att inte veta allt.
Saken är att lärande är rörigt och du kommer att göra misstag, oavsett ämne. När du lär dig något nytt har du stora luckor i dina kunskaper, vilket kan vara riktigt pinsamt. Din instinkt kan vara att försöka täcka dessa luckor, men det hjälper dig inte att fylla i dem. Att dela mina misstag hjälpte mig att övervinna den instinkten, att möta mina kunskapsluckor och verkligen växa från dem.
3. Att spåra din resa är det bästa sättet att se hur långt du verkligen har kommit
Förutom att bygga en webbplats varje dag, skrev jag också ett dagligt blogginlägg för att journalisera mitt projekt. Naturligtvis är bloggning absolut inte nödvändigt för att lära mig att koda - eller lära mig något annat än att skriva - men det hjälpte mig att utveckla en mycket viktig färdighet: förmågan att kommunicera om mitt arbete och dela min berättelse.
Jag hade aldrig skrivit ett enda blogginlägg innan jag startade projektet med 180 webbplatser (vilket inte kommer att överraska om du läste mina första inlägg från projektet), så att skriva varje dag var inte lätt i början. Jag kände ofta att jag inte hade något intressant att säga. Men ju mer jag skrev, desto lättare blev det. Jag tyckte att att skriva om vad jag lärde gav mig en plats att sammanfatta de koncept jag kämpade med och möjlighet att utveckla mitt programmeringsordförråd. Det gav mig också en plats att tänka på saker utöver kodning, till exempel hur det jag lärde relaterade till det verkliga livet. I slutet av de 180 dagarna hade jag inte bara lärt mig att koda, utan också hur jag skulle prata om min erfarenhet som kodare.
Ett år och 250+ blogginlägg senare är jag nu en enorm förespråkare för kraften i bloggning, och jag uppmuntrar alla och alla jag möter att börja, särskilt om du försöker lära dig något nytt.
Att följa min egen väg var inte alltid lätt, och det fanns verkligen dagar jag kände mig väldigt ensam. Men det gav mig möjligheten att utforska idéer som jag kanske inte kunde ha i en mer strukturerad atmosfär. Till exempel upptäckte jag att även om jag inte är stor på siffror och matematik så älskar jag data! Jag lärde mig också att glömma perfektion och omfamna snabb iteration.
Viktigast av allt, jag lärde mig att äga mitt arbete unapologetically. När du tar stora gungor i livet kommer det att vara naysayers och skeptics. Deras kommentarer kan svåra, men låt inte negativitet mata ditt självtvivel. Om du vill göra något banbrytande måste du ibland gå ut på en lem.