hur jag använder inlärningstekniker från Coursera-kursen för att bli en bättre utvecklare
dr. Oakley föreslog en bra steg-för-steg-process för att närma sig att lära sig något. Först, undersökning och priming — det handlar om att skanna en bok eller kursplanen för en kurs, till exempel för att få en allmän uppfattning om den större bilden. För det andra, observera ett exempel. Gör det själv. Och slutligen gör det om och om igen i olika sammanhang.
Så-låt oss säga att jag försökte lära mig React och jag hade turen att hitta Tyler McGinnis fantastiska React.js Program kurs. För att tillämpa denna föreslagna process skulle jag först titta över alla enheter i kursen för att försöka få en allmän sammanfattning av de ämnen som omfattas. Sedan, jag skulle följa noga när Tyler bygger en exempelapplikation. Efter det skulle jag bygga min egen ansökan. Och slutligen skulle jag tillämpa dessa lärdomar i de nya funktionerna vi utvecklar i React på mitt jobb.
akta dig för illusioner av kompetens
det finns många sätt på vilka vi kan få oss att känna att vi har ”lärt oss” ett koncept. Att till exempel titta på en lösning och tänka att du vet hur du kommer fram till den lösningen är en av de vanligaste illusionerna om kompetens i lärande. Att markera eller understryka är också tekniker som ofta leder till denna illusion av lärande. Å andra sidan är korta anteckningar som sammanfattar nyckelkoncept mycket effektivare.
nyligen hittade jag den här fantastiska applikationen som heter Highly (du borde använda det här!). De gör det väldigt enkelt att markera alla artiklar som jag läser på webben med ett Chrome-tillägg. När jag är klar med att läsa och markera en artikel ger den en vacker sammanfattning av allt jag lyfte fram. Detta är oerhört användbart för mig.
Jag försöker vara sparsam i det jag lyfter fram. Ju färre takeaways, desto mer troligt att jag faktiskt tar bort det. Detta binder väl in i nästa punkt…
Recall
dr.Oakley pekar på Dr. Jeff karpickes forskning om hämtningspraxis för att ge vetenskapligt stöd bakom att ta ett par minuter för att sammanfatta eller återkalla material du försöker lära dig. Det går långt att ta något från korttidsminne till långsiktigt lärande. Även att återkalla material i olika fysiska miljöer kan hjälpa dig att förstå materialet oberoende av fysiska signaler som din hjärna kan ha.
så-när du har läst den här artikeln (eller någon artikel), Ta en stund och försök att ange vad du kommer ihåg från artikeln. Det kommer att gå långt.
Bite-Sized Testing
För att undvika eller bryta igenom illusioner av kompetens bör du testa dig själv när du stöter på nytt material. Recall är ett enkelt exempel på denna mini-testning.
det är inte viktigt att du klarar dessa tester utan att göra några misstag. Misstag (och korrigera dessa misstag) är ett viktigt steg mot att stärka ditt lärande.
över-lärande
den huvudsakliga takeaway på denna punkt är inte att spendera för mycket tid i ett sammanträde som går över samma material om och om igen. Lagen om minskande avkastning gäller verkligen. Sprid ut det över många sessioner och över många olika sätt att lära sig.
Jag har försökt att avsätta 30-60 minuter varje dag för varje ny sak jag försöker lära mig eller lära mig mer ingående. Inte bara har detta varit bättre för att resultera i varaktigt lärande, men jag tycker också att det är mer möjligt att säga att jag ska arbeta på X i 30 minuter.
Interleaving
När du har en grundläggande förståelse för vad du försöker lära dig kan interleaving användas för att hjälpa dig att behärska begreppen. Genom att öva på att hoppa fram och tillbaka mellan problem som kräver olika tekniker kan du stärka din förståelse av begreppen genom att lära dig hur du väljer att tillämpa dem i olika situationer. Vet när man ska tillämpa ett visst koncept är lika viktigt som att veta hur.
Jag har inte medvetet tillämpat denna teknik ännu, men går tillbaka till det tidigare exemplet på learning React, kan jag tillämpa interleaving-tekniken genom att ha 2 olika projekt där jag tillämpar React och Flux-arkitektur.
Process över produkt
När du står inför förhalning, tänk på process över produkt. Jag förhalar mig ofta när jag är överväldigad av tanken,”Ok, jag måste få X gjort”. Istället kan det vara fördelaktigt att tänka, ”Ok, jag kommer att spendera en timme på X” — vilket inte är överväldigande, kräver inte en lång uppdelning av uppgifter och får mig igång (90% av striden).
metaforer och analogier
metaforer och analogier talas ofta om som användbara studietekniker. Personligen har jag aldrig använt dem mycket. Men eftersom jag har träffat fler människor och fler lärare/mentorer har jag funnit att de bästa alltid använder dessa när de kommunicerar. Och att kunna kommunicera vad du har lärt dig är en av de viktigaste färdigheterna som skiljer en bra utvecklare från en bra (IMHO).
så försök att göra en avsiktlig ansträngning för att lära ut vad du lär dig till någon annan och genom att göra det kommer du sannolikt att tvingas förklara begrepp med relaterbara metaforer och analogier.
det finns flera möjligheter i den dagliga praktiken av mjukvaruutveckling att undervisa och lära av andra. Du kan para ihop program, kommentera pull förfrågningar, registrera dig för att ge en kod prata om ett visst ämne, och blogg! Gör alla dessa saker. Jag vet att jag försöker.
studiegrupper/lagarbete
den här är inte ny för mig och har visat sig vara mest fördelaktig för att upprätthålla fortsatta framsteg och hålla varandra ansvariga. Men det är viktigt att inkludera i den här listan och notera att det är viktigt att hitta rätt grupp.
på jobbet har jag tur att ha gott om interna grupper: tech book club (läser för närvarande pragmatisk programmerare), open source club, culture club, elixir group och sannolikt andra också. Men det finns flera fantastiska samhällen som möts och lär sig tillsammans i NYC och online!
oavsett vad eller var du lär dig behöver du inte lära dig ensam. Det är faktiskt det unika med de människor du lär dig och de diskussioner du har tillsammans som gör det du lär dig oförglömligt.