Advertentie
Programmeren is moeilijk. De enige mensen die iets anders zeggen, zijn degenen die jarenlange codeerervaring achter de rug hebben. Het is oké om overweldigd te zijn! Er is een kavel om te leren en je zult dingen waarschijnlijk net zo snel vergeten als dat je ze leert. Geloof me: dat is normaal.
Maar alleen omdat het normaal is, wil nog niet zeggen dat het niet frustrerend is. Eerlijk gezegd, leren coderen Programmeren leren zonder alle stressMisschien heb je besloten om te gaan programmeren, of het nu voor een carrière of gewoon als hobby is. Super goed! Maar misschien begin je je overweldigd te voelen. Niet zo goed. Hier is hulp om uw reis te vergemakkelijken. Lees verder kan extreem stressvol zijn als je het niet met de juiste mentaliteit en houding benadert.
Die nieuwe taal of bibliotheek of dat framework wil je toch zo snel mogelijk leren? Dat is begrijpelijk. Gelukkig zijn er een handvol tips die je kunnen helpen om al die zware programmeerinformatie die je het ene oor in en het andere recht uit blijft vliegen beter te onthouden.
Geen Cram-sessies meer
Niemand wil het horen, maar proppen is de slechtste manier om te leren programmeren. Als je op mij lijkt, was proppen iets voor jou modus operandi allemaal op school en universiteit. Het is de enige manier waarop je weet hoe je moet studeren.
Maar leer van mijn fouten: hoe meer je probeert te proppen, hoe minder je je zult herinneren. Dat geldt vrijwel voor elk op kennis gebaseerd onderwerp, maar het geldt vooral als het gaat om programmeren.
De basis van deze bewering komt uit een onderzoek uit 2008 door de Universiteit van Californië, San Diego:
"Studenten presteren beter wanneer ze hun studiesessies verdelen in plaats van wanneer ze tijdens één vergadering alles in hun noggins proberen te proppen."
Waarom? Hoogstwaarschijnlijk vanwege de seriële positie-effect:
"Seriële positie-effect is de neiging van een persoon om de eerste en laatste items in een reeks het beste te herinneren, en de middelste items het slechtst."
Met andere woorden: in een bepaalde studiesessie is de kans groter dat je de informatie die je hebt geleerd in de buurt van het begin en het einde van de sessie en meer kans om de informatie uit het midden van de. te vergeten sessie.
U wilt het aantal begin en einde maximaliseren. Daarom is het beter om meerdere korte sessies te hebben in plaats van een paar lange sessies als het gaat om het leren en absorberen van nieuwe stof.
De volgende keer dat u gaat zitten om code te leren, neemt u het onderwerp voor onderwerp en neemt u een korte pauze tussen elk onderwerp. (Zorg er wel voor dat je pauzes niet veranderen in uitstelgedrag!)
Review, Review, Review
Een andere reden waarom proppen in tegenspraak is met kennisbehoud op de lange termijn, is omdat het geheugen na verloop van tijd vervaagt. Dit is niet altijd waar - ik weet zeker dat we allemaal een paar jeugdherinneringen hebben die nooit zullen verdwijnen - maar het lijkt het algemene geval te zijn voor herinneringen die niet gebonden zijn aan emotie.
Er is enige discussie of het geheugen zelf vervalt door de tijd (verval theorie) of wordt gewoon naar buiten geduwd en na verloop van tijd vervangen door nieuwe herinneringen (interferentietheorie). Welke theorie je ook onderschrijft, het resultaat is dat oudere herinneringen eerder vervagen.
Hier komt recensie om de hoek kijken.
Zie het als wandelen door een woud van herinneringen. Elke keer dat u toegang wilt tot een geheugen, moet u: traceer de neurale route om het te vinden. Elke keer dat je die herinnering traceert, wordt het pad er een beetje meer in geëtst - net zoals hoe een onverharde weg zich op natuurlijke wijze vormt wanneer mensen hetzelfde pad steeds opnieuw bewandelen. Als je het pad niet meer bewandelt, kan het vervagen en belandt de herinnering ergens in het bos.
Afgezien van alle poppsychologie, is hier de afhaalmaaltijd: als het op programmeren aankomt, is het niet genoeg om een onderwerp slechts één of twee keer te leren. Je moet het tientallen of zelfs honderden keren opnieuw bekijken. Elke recensie etst dat onderwerp een beetje dieper in je brein.
Ik weet hoe moeilijk dit kan zijn als je een natuurlijke kraker bent, maar je zult verbaasd zijn hoe snel je materiaal begint vast te houden als je eenmaal moeite doet om het regelmatig te bekijken.
Gebruik verschillende bronnen
Het moeilijkste aspect van programmeren - althans voor gloednieuwe programmeurs - is de enorme hoeveelheid details en nuances die moeten worden geïnternaliseerd. Totdat die internalisering plaatsvindt, zul je in een voortdurende staat van hoofdkrabben verkeren.
Afhankelijk van de taal, moet u honderden syntaxisregels onthouden (bijv. trefwoorden, puntkomma's, witruimte). Sommige talen zijn strenger, andere minder, en weer andere hebben hun eigen unieke benaderingen van syntaxis die nergens anders worden gebruikt. Dit alles kan verwarrend zijn als je geen eerdere codeerervaring hebt.
Om nog maar te zwijgen van alle conceptuele informatie die individuele talen overstijgt. Onderwerpen als objectgeoriënteerd programmeren, entiteit-componentsystemen en waarnemerspatronen kunnen je hoofd doen tollen wanneer je ze voor het eerst probeert te leren.
Ik heb deze illustratie eerder gedeeld, maar het is zo actueel dat het herhaald moet worden:
“Stel dat iemand je een foto van een standbeeld laat zien. Het kan je genoeg van een beeld geven om een goed beeld van het beeld te krijgen, maar je zou niet het hele plaatje krijgen. Een uitgezoomde foto zou ingewikkelde details verliezen, terwijl een ingezoomde foto een gevoel voor perspectief zou verliezen. Met extra foto's die vanuit andere hoeken zijn genomen, kun je echter echt beginnen met het zien van de volheid van het beeld in textuur, in grootte, in detail, van voor naar achter, van links naar rechts en boven naar beneden."
Leren programmeren kan verrassend willekeurig zijn. Iedereen kan Resource A prijzen als de beste manier om taal X te leren, maar misschien slaat het voor jou nergens op. Misschien heeft iedereen een hekel aan Resource B, maar als je één blik werpt, is het volkomen logisch! Wat betreft iemand anders, misschien komen ze uit bij het bestuderen van bronnen A en B, maar profiteren ze enorm van bron C.
Daarom is het zo belangrijk dat je bereid bent om allerlei soorten bronnen te gebruiken. Iedereen leert op een andere manier. Als je problemen hebt met een bepaald onderwerp, zoek dan rond naar een andere bron. Misschien is die meer geschikt voor jou. Misschien niet.
Zelfs als je denkt dat je bepaalde onderwerpen begrijpt, is het mogelijk dat er meer over te leren is. Het is ook mogelijk dat de uitleg van iemand anders het concept voorgoed in je geest verstevigt. Je weet maar nooit, dus waarom zou je niet zoveel mogelijk middelen verbruiken?
Merk op dat games een zeer nuttige bron kunnen zijn! Bekijk deze leuke en leerzame programmeerspelletjes De 9 beste codeerspellen om uw programmeervaardigheden op te bouwenCodeergames helpen je sneller te leren door hands-on te oefenen en te ervaren. Bovendien zijn ze een leuke manier om je programmeervaardigheden te testen! Lees verder .
Leer concepten terwijl u ze leert
Er is een prachtig concept in programmeren genaamd badeend debuggen De vreemdste programmeerprincipes waar je nog nooit van hebt gehoordDe volgende principes zullen je leren om verstandig om te gaan met je code. Sommige zijn vreemd, en veel zijn humoristisch, maar ze zijn allemaal even praktisch en belangrijk. Pas op! Lees verder , die de techniek beschrijft om iemands code regel voor regel uit te leggen aan een levenloze badeend. Het wordt gebruikt wanneer een bepaald codesegment wordt verbroken, maar er is geen duidelijke reden voor.
Vreemd genoeg hebben de meeste programmeurs een "Eureka!" moment in het midden van het uitleggen van de code, omdat ze plotseling zien waar de fout in de codeerlogica optreedt. Verbalisatie triggert een ander deel van de hersenen, waardoor je het probleem vanuit een nieuwe hoek moet bekijken.
Dit concept kan ook worden gebruikt om u te helpen bij het leren van nieuw materiaal. Je bent misschien deze populaire quote tegengekomen die vaak wordt toegeschreven aan Albert Einstein:
"Als je het niet eenvoudig kunt uitleggen, begrijp je het niet goed genoeg."
Met uitzondering van enkele gebieden die te maken hebben met geavanceerde theoretische kennis, is dit gezegde waar. Hoe meer je een onderwerp begrijpt, hoe beter je bent toegerust om het zo uit te leggen dat iemand die geen kennis heeft van dat onderwerp het toch kan begrijpen.
Het tegenovergestelde hiervan is ook waar. Als je een onderwerp probeert te onderwijzen, kom je bepaalde concepten tegen die je niet op een duidelijke manier lijkt uit te leggen. Dit is niet alleen een geweldige manier om zwakke punten in uw kennis te diagnosticeren, het daadwerkelijke proces van het vinden van de juiste verklaring kan helpen het concept in uw geest te verstevigen.
Het wordt learning-by-teaching genoemd en het is eigenlijk een variant op het debuggen van rubberen eendjes.
Nu, ik zeg niet dat je zou moeten eigenlijk anderen leren; probeer het liever bij elk nieuw programmeeronderwerp dat je leert aan een badeend (of een onzichtbare vriend) te leren. Het kan in het begin misschien gek aanvoelen, maar je zult het misschien ongelooflijk vruchtbaar vinden als het gaat om geheugenbehoud.
Opzettelijke oefening baart kunst
Het begrip talent is complete onzin. Niemand verlaat de baarmoeder als een violist, worstelaar of programmeur van wereldklasse. Natuurlijk zijn sommige mensen misschien meer geneigd tot bepaalde disciplines, maar talent zonder ervaring is nutteloos Laat je verborgen talenten niet sterven: 7 manieren om te gaan en ze opnieuw te vindenHet slechte nieuws is dat je hard moet werken met de intentie om je verborgen talenten op te poetsen. Het goede nieuws is dat er meer dan ooit mogelijkheden zijn om je talenten te laten stralen. Lees verder . Evenzo is hard werken altijd waardevoller dan talent.
Dat gezegd hebbende, niet alle vormen van hard werken zijn gelijk. Malcolm Gladwell bedacht de beruchte 10.000-uurregel, die zegt dat je minimaal 10.000 uur in een onderwerp moet investeren om er een meester in te worden. Hoewel het sentiment waar kan zijn, interpreteren veel mensen verkeerd wat hij probeerde te zeggen.
Om een lang verhaal kort te maken, een verbintenis van 10.000 uur is geen garantie voor meesterschap. U kent het gezegde: “Oefening baart geen kunst. Perfecte oefening baart kunst.” Om zinvol te zijn, oefenen moet opzettelijk zijn Wil je ergens een expert in worden? Probeer opzettelijke oefeningHet is maar al te gemakkelijk om je bedroefd te voelen wanneer je moeizaam probeert een bepaalde vaardigheid te verbeteren. Gebruik de kracht van "opzettelijke oefening" om je over die irritante plateaus te krijgen. Lees verder . Meesterschap kan alleen worden bereikt door 10.000 uur doelbewust te oefenen.
Hoe u oefent, is veel belangrijker dan hoeveel tijd u aan het oefenen besteedt.
Lezen is passief. YouTube-lessen bekijken is passief. Luisteren naar podcasts is passief. Als beginnend codeur zou je in de verleiding kunnen komen om van tutorial naar tutorial te fladderen, onderwerp na onderwerp aan te pakken zonder die kennis daadwerkelijk op een praktische manier toe te passen. Weersta deze verleiding.
Het is één ding om een voorbeeld voor je te begrijpen, maar het is iets anders om een oplossing helemaal opnieuw te synthetiseren. Als je het leerproces wilt versnellen, moet je bereid zijn actief te zijn in plaats van passief. Actieve oefening is de enige soort die er uiteindelijk toe doet.
Experimenteer met persoonlijke projecten
Voor mij was huiswerk het ergste van school. Het leek gewoon een ingewikkelde truc om plezier te doden en studenten bezig te houden - wat, om eerlijk te zijn, soms waar was. Maar nu ik terugkijk, is het belang van huiswerk eindelijk logisch. Het dwong me om nieuw verworven kennis op een actieve manier toe te passen.
Als je bent ingeschreven in programmeercursussen en lessen De 11 beste sites voor gratis online computerprogrammeercursussenMet behulp van deze gratis online computerprogrammeercursussen kun je een geweldige programmeur worden zonder een diploma informatica. Lees verder , onderschat de effectiviteit van huiswerk niet. Neem het serieus en behandel het altijd als een kans om wat je hebt geleerd verder vast te leggen in het langetermijngeheugen.
Maar vaak is huiswerk nog steeds niet genoeg. (En als je zelf leert programmeren zonder een echte instructeur, heb je waarschijnlijk geen huiswerk om mee te beginnen.)
Wat is de oplossing? Maak een paar wegwerp zijprojecten!
Denk aan een paar projectideeën 5 projectideeën om u te helpen sneller te leren programmerenEr zijn een paar manieren om de leercurve voor programmeren te vergemakkelijken. Maak je handen vuil en leer sneller met nevenprojecten die je op elk moment kunt starten. Speel wat met deze vijf. Lees verder die u wilt implementeren. Voor absolute nieuwkomers kun je een spelletje Tic-Tac-Toe of Galgje overwegen. Voor ervaren programmeurs die een nieuw framework proberen te leren, probeer een eenvoudige mobiele app of webgame te coderen. Zolang het je persoonlijk interesseert, ga ervoor!
De schoonheid van deze benadering is tweeledig.
Ten eerste is de kans groter dat het je aandacht vasthoudt. Studies hebben aangetoond dat studenten beter leren wanneer ze onderwerpen kunnen nastreven die hen interesseren. Dat is precies wat een persoonlijk project biedt. Je hebt een einddoel dat je echt wilt bereiken, dus het is waarschijnlijker dat je de informatie behoudt die je daar zal brengen.
Ten tweede is er geen druk voor u om te slagen. Hoewel succes leuk zou zijn, kun je door het gebrek aan formaliteit experimenteel en creatief zijn. Je zult onvermijdelijk tegen problemen aanlopen, maar het is meer spelen met Lego dan huiswerk. Het is leuker en niet zo stressvol.
Ontspan en maak een bladwijzer voor alles
De waarheid is dat geen enkele programmeur het zich herinnert alles ze hebben geleerd. Zelfs nadat je een tijdje met een bepaalde bibliotheek of framework hebt gewerkt, is het niet ongebruikelijk dat je niet elke functie of variabele uit je hoofd kunt herinneren.
In feite kan proberen om alles te onthouden uiteindelijk een enorme verspilling van tijd en moeite worden. Referentiebladen bestaan niet voor niets. Waarom een hele encyclopedie in het geheugen vastleggen als je hem gewoon kunt openen wanneer je hem nodig hebt?
Dus, wanneer onthouden en wanneer verwijzen?
Als het gaat om conceptueel materiaal, internaliseer het dan altijd zo goed mogelijk. Daarmee bedoel ik het begrijpen van de theorie, zelfs als je het niet in daadwerkelijke code kunt omzetten (en de theorie zou duidelijk genoeg voor je moeten zijn om het duidelijk te onderwijzen).
Voor al het andere - zoals specifieke functienamen, parameterlijsten of zelfs taaleigenaardigheden - Ik zou me geen zorgen maken over het vastleggen van herinneringen. Voel je vrij om uit te stellen naar een referentieblad. Soms verwijs je zo vaak naar iets dat je het uiteindelijk onthoudt. Als dat gebeurt, prima. Zo niet, dan is dat ook goed.
Persoonlijk heb ik honderden internetbladwijzers voor verschillende API's, handleidingen en tutorials. Als ik een soort van pathfinding-algoritme moet implementeren, kan ik verwijzen naar een gids om me te helpen het te coderen voordat ik het weer vergeet. Het helpt om de onderliggende concepten te begrijpen, maar ik probeer me niet druk te maken over implementatiedetails.
Laatste gedachten
Ik zal het een miljoen keer herhalen als het moet: programmeren is moeilijk en het is oké als je ermee worstelt. Ik programmeer al meer dan tien jaar als hobby en ik voel me nog steeds geïntimideerd als ik nieuwe concepten moet leren.
Sla jezelf niet voor de kop als je niet alles meteen kunt onthouden. De bovenstaande tips zullen hopelijk nuttig voor u zijn, en zelfs als dat niet het geval is, kunt u als laatste redmiddel altijd vertrouwen op referenties met bladwijzers.
Vind je programmeren moeilijk? Wat voor soort trucs en tips ken je die nuttig kunnen zijn voor beginnende programmeurs? Deel uw wijsheid met ons in de reacties hieronder!
Afbeeldingscredits: Binaire programmeur via Shutterstock, Geheugenwisser via Shutterstock, Verduisterde code via Shutterstock, Rubber Ducky via Shutterstock, Toetsenbordtypist via Shutterstock, PHP-broncode via Shutterstock, Bestandsmappen via Shutterstock
Joel Lee heeft een B.S. in Computer Science en meer dan zes jaar professionele schrijfervaring. Hij is de hoofdredacteur van MakeUseOf.