Varför ska du inte lära dig att koda med Codeacademy
Från titeln tror du förmodligen att jag har lite större nötkött med Codecademy. Jag gör inte.
På många sätt beundrar jag dem. Sedan 2011 har de introducerat otaliga miljoner till den ädla hantverket för mjukvaruutveckling och har lanserat karriärerna hos tusentals utvecklare. Det numret ser ut att sväva med frisläppandet av deras första Java-kurs. Men samtidigt är deras produkt - och att vara mer exakt, deras undervisningsmetoder - mycket att önska, och lämnar tusentals frustrerad och osäker på var de ska utvecklas med sina formativa utvecklingsförmåga.
Så vad är så fruktansvärt fel med Codecademy?
Och hur kan du som en journeymanare kringgå dessa brister för att nå din programmeringspotential?
Problem ett: Det lär inte tanken
Att vara en programmerare är mer än att bara kunna regurgitate syntaxen. Det handlar om att ha en viss tankegång, där du systematiskt kan bryta upp ett problem i individuella och logiska steg och sedan återskapa det på ett språk som datorn förstår.
Du måste kunna titta på ett problem i stor skala och förstå hur varje steg du tar påverkar resten av programmet. Dessutom måste du kunna tolerera en hög grad av frustration och kunna fortsätta när du slår en mental tegelvägg. 5 sätt att slå programmerarens block just nu 5 sätt att slå programmerarens block just nu Varje programmerare möter en rad negativa känslor under resans gång, och om de lämnas obekanta, kan dessa känslor få en djupgående inverkan på framsteg - även orsaka att vissa ger upp helt. Läs mer . Du måste kunna kunna undersöka fel och felmeddelanden och kommunicera ditt problem med andra. Enkelt uttryckt måste du kunna tänka som en kodare.
Codecademy lär dig inte att tänka som en kodare.
Snarare lär det dig grunderna i ett antal programmeringsspråk, utan någon riktig instruktion om hur du skulle tillämpa dem på verkliga problem.
Så, hur kan du få den ovärderliga erfarenheten?
Personligen är jag en stor fan av Project Euler och Reddit's Daily Programmer SubReddit, som innehåller tillräckligt med böjande programmeringspussel för att sänka någons tänder i. Jag är en stor fan av den senare, eftersom du uppmanas att dela din kod för att få feedback från andra medlemmar i samhället.
Den dagliga programmeraren subreddit, som namnet antyder, kommer med dagliga pussel för alla färdighetsnivåer, från absoluta nybörjare till härdade code jockeys.
Problem två: Blink och du kommer att sakna det
En av mina största frustrationer med Codecademys inställning till undervisning är att det känns så otroligt övergående. Du lär dig något, då fyller du i en utmaning, och du återkommer knappast det ämnet igen. Blink, och du kommer sakna det.
Det är till skillnad från det sätt som har tagits Lär dig ett språk och översätt för övning med Duolingo (nu öppen för alla!) Lär dig ett språk och översätt för övning med Duolingo (nu öppen för alla!) Internet har gett oss några fantastiska verktyg för språkinlärning, och Duolingo är den senaste webbplatsen för att ge det ett steg. Det har bara kommit ut ur sluten beta och är nu tillgänglig för alla ... Läs mer av Duolingo Lär dig ett språk och översätt för övning med Duolingo (nu öppen för alla!) Lär dig ett språk och översätt för övning med Duolingo (nu öppen för alla!) Internet har gett oss några fantastiska verktyg för språkinlärning, och Duolingo är den senaste webbplatsen för att ge det ett steg. Det har bara kommit ut ur sluten beta och är nu tillgänglig för alla ... Läs mer, till exempel, där du regelbundet måste se över och förstärka det du har lärt dig för att kunna utvecklas.
Så, om du vill cementera dina framsteg, måste du göra en del avsiktlig övning utanför Codecademy. Ett av de bästa sätten att göra det är att helt enkelt skriva kod. Många programmerare - och jag inkluderar mig själv i den kadre - svär också med avsiktlig notering och regelbunden revision med flashcards.
Papper flash kort är billiga och effektiva. Faktum är att du kan köpa 1000 på Amazon för mindre än tretton dollar.
Oxford Blank Index Cards, 3 "x 5", Vit, 1000 kort (10 förpackningar med 100) (30) Oxford Blank Index Cards, 3 "x 5" Köp nu hos Amazon $ 11.99
För de digitalt benägna, finns det också ett antal appar som du kan använda. Jag är ett stort fan av Anki, helt enkelt på grund av hur anpassningsbar det är. Den kan skryta med tusentals community-built flashcards, och kan utökas genom sitt kraftfulla och väl dokumenterade programprogram för programmeringsgränssnitt (API).
För mobila användare finns det också många flashcard-applikationer för Android 6 Flash Card Apps för Android, Jämfört: Vilket är bäst? 6 Flash-kort Apps för Android, Jämfört: Vilket är bäst? Flash-kort är ett otroligt användbart verktyg för att studera, men de är inte alltid lämpliga att göra och bära runt; Det är där din smartphone kommer in. Läs mer och för iPhone Ace Din nästa tentamen med Flashcard Apps för iPhone eller iPad Ace din nästa examen med hjälp av Flashcard Apps för iPhone eller iPad Om du vill börja ta examen i skolan går du förmodligen att vilja börja använda flashcards. Läs mer . Du kan också använda Google Sheets för att göra dem!
Jag använder för närvarande CodeCode.Ninja - vilket, fullständigt avslöjande, byggdes av min vän och tidigare MakeUseOf-författare Erez Zukerman. Denna prenumerationstjänst är byggd med programmerare i åtanke, och du kan bygga en levande, flash-kort baserad kunskapsbas av allt du behöver veta.
Vad jag tycker om det sätt som tagits av CodeCode.Ninja är att för att gå vidare genom ditt däck, är du tvungen att avsiktligt skriva ut svaret på varje kort. Detta, jag har hittat, hjälper till att bygga upp ditt muskelminne.
Problem tre: Syntaxen programmeras inte
Again, Codecademy lär dig syntaxen i ett programmeringsspråk, men för det mesta kommer det inte att berätta för dig hur du ska tillämpa det. Därför ser du ofta frågor som detta, som publicerades på ovan nämnda LearnProgramming subredddit.
Den inledande JavaScript Vad är JavaScript, och kan Internet existera utan det? Vad är JavaScript, och kan Internet existera utan det? JavaScript är ett av de saker som många tar för givet. Alla använder det. Läs mer Kursen lär dig inte hur man lägger in ett skript i en webbsida för att lägga till interaktivitet till annars platt, statisk HTML. Java-kursen lär dig inte hur du sammanställer din kod för att kunna köra den. Hej, det säger inte ens att Java är ett kompilerat språk eller skillnaden mellan ett kompilerat språk och ett tolkat språk.
Det finns andra saker som är skummade över. Codecademy lär dig inte hur man skriver kod som är ren Arduino och Raspberry Pi Beginner? Så här skriver du ren kod Arduino och Raspberry Pi Nybörjare? Så här skriver du ren kod Läs mer, och stiliserat för att vara läsbar och lätt att förstå. Det lär dig inte hur man skriver kod som är självdokumentation. Det lär dig inte om pakethantering, och hur man använder andras kod i din egen kod.
Det här kan du bara övervinna genom att lämna de säkra hamnarna i Codecademy vid första möjliga tillfället. Genom att skriva kod, och lära sig på egen ånga.
Problem fyra: För mycket kaka, inte tillräckligt med grönsaker
Anledningen till att Codecademy lyckas är att det tar kodning och omvandlar det till beroendeframkallande bitbitar som är lätta att uppnå och erbjuder omedelbar återkoppling. Det är godis för kodning.
Problemet är att lära sig att vara en utvecklare betyder ofta att du måste lära dig om saker som är viktiga, men från offset är inte fruktansvärt spännande eller för den delen lätt. Du lär dig inte om teorin om programmering. De saker som Donald Knuth tillbringade tusentals sidor - och den bästa delen av två decennier - skrev om i The Art of Computer Programming.
Konsten för datorprogrammering, volymer 1-4A Boxed Set Art of Computer Programmering, volymer 1-4A Boxed Set Köp nu På Amazon $ 179.99
Codecademy skyddar dig väsentligt från den klibbiga, komplicerade delen av programmeringen. Det finns inget sätt i detta, annat än att vara disciplinerad och göra egen forskning. Om du inte vet vad du ska titta på, överväga att fråga mer etablerade utvecklare för vägledning.
Codecademy är inte så dåligt
Det finns mycket att tycka om Codecademy. De har introducerat tusentals till grundämnena för datavetenskap. Men det finns också mycket utrymme för förbättring.
För en annan metod för inlärning, kolla in de bästa kurser på Coursera värt att betala för De 10 bästa gratis Coursera-kurser Du kommer att vilja betala för de 10 bästa gratis Coursera-kurser du kommer att vilja betala för Du kan lära dig något online med Coursera . Dessa 10 gratis kurser är så bra att du vill betala för att få ett certifikat också. Läs mer .
Har du använt Codecademy? Har det skadat eller hindrat dig? Berätta om det i kommentarerna nedan.
Utforska mer om: Utbildningsteknik, Programmering.