
Gabriel Brooks
0
1488
5
Programiranje je teško. Jedini ljudi koji kažu drugačije su oni koji imaju dugogodišnje iskustvo kodiranja ispod pojasa. U redu je biti prezadovoljan! Tamo je mnogo učiti i vjerojatno ćete stvari zaboraviti jednako brzo kao što ih naučite. Vjerujte mi: to je normalno.
Ali to samo zato što je normalno ne znači da nije i frustrirajuće. Istina će vam se reći, naučiti kako kodirati Kako naučiti programiranje bez ikakvog stresa Kako naučiti programiranje bez ikakvog stresa. Možda ste se odlučili baviti programiranjem, bilo za karijeru ili samo kao hobi. Sjajno! Ali možda se počinjete osjećati preplavljeno. Nije tako sjajno. Evo pomoći da vam olakša putovanje. može biti izuzetno stresno ako mu ne prilazite ispravnim načinom razmišljanja i stavom.
Želite što prije naučiti taj novi jezik ili biblioteku ili okvir, zar ne? To je razumljivo. Srećom, postoji nekoliko savjeta koji vam mogu pomoći da bolje zadržite sve te teške programske informacije koje lete u jedno uho, a pravo u drugo.
Nema više krepskih sjednica
To nitko ne želi čuti, ali gužva je najgori način da naučite kako programirati. Ako ste išta poput mene, gušenje je bilo vaše način rada sve kroz školu i sveučilište. To je jedini način na koji znate kako studirati.
Ali učite se iz mojih pogrešaka: što se više pokušavaš stisnuti, manje se sjećaš. To prilično vrijedi za bilo koji predmet temeljen na znanju, ali posebno je istinito kada je riječ o programiranju.
Temelj ove tvrdnje proizlazi iz studije Sveučilišta u Kaliforniji, San Diego iz 2008. godine:
“Studenti bolje rade kada odlaze na svoje studijske sesije, nego kad pokušavaju ugurati sve u noge tijekom jednog sjedenja.”
Zašto? Najvjerojatnije zbog učinka serijskog položaja:
“Efekt serijskog položaja je tendencija osobe da se prisjeti prvih i posljednjih stavki u seriji najbolje, a srednjih najgore.”
Drugim riječima: vjerojatnije je da ćete zadržati informacije koje ste naučili na početku i na kraju sesije te je vjerojatnije da ćete zaboraviti podatke iz sredine sesije..
Želite maksimizirati broj početaka i završetaka. Zato je bolje imati više kratkih sesija umjesto nekoliko dugih sesija kada je u pitanju učenje i apsorbiranje novog materijala.
Sljedeći put kada sjednete naučiti kôd, uzmite je jednu po jednu temu i napravite kratku pauzu između svake teme. (Samo pripazite da spriječite da se pauze pretvore u odugovlačenje!)
Pregled, recenzija, pregled
Još jedan razlog, zašto je gužvanje antitetičko za dugoročno zadržavanje znanja, je to što pamćenje vremenom bledi. To nije uvijek istina - siguran sam da svi imamo nekoliko uspomena iz djetinjstva koji nikada neće nestati - ali čini se da je općenit slučaj za uspomene koji nisu vezani za emocije.
Postoji neka debata da li se memorija vremenom raspada (teorija propadanja) ili se jednostavno s vremenom odgurne i zamijeni novim sjećanjima (interferencijska teorija). Bez obzira na koju se teoriju pretplatili, rezultat je da će starije uspomene izblijediti.
Tu se odigrava recenzija.
Zamislite to kao šetnju šumom sjećanja. Svaki put kada želite pristupiti memoriji, morate pronaći trag neuronskog puta da biste ga pronašli. Svaki put kada pronađete to pamćenje, put se urezuje u nešto više - baš kao što se prirodni oblik prašine stvara kada ljudi hodaju istim putem stalno i dalje. Ako zaustavite hodanje stazom, ona može izblijediti i sjećanje završi izgubljeno negdje u šumi.
Ako se ostavi po strani psihologija popa, evo poteza: kad je u pitanju programiranje, nije dovoljno naučiti temu samo jednom ili dvaput. Morate je ponovo pogledati na desetine, pa čak i stotine puta. Svaki pregled ugravira tu temu u vaš mozak malo dublje.
Znam kako to može biti teško ako ste prirodni crammer, ali iznenadit ćete se koliko brzo počnete zadržavati materijal nakon što se potrudite redovito ga pregledavati..
Koristite nekoliko različitih resursa
Najteži aspekt programiranja - barem za potpuno nove kodire - je sama širina detalja i nijansi koje je potrebno internalizirati. Dok se to ne dogodi, internalizacija ćete biti u stalnom grebanju glave.
Ovisno o jeziku, trebat ćete zapamtiti stotine pravila sintakse (npr. Ključne riječi, zareze, razmak). Neki su jezici stroži, drugi manje, a drugi imaju svoje jedinstvene pristupe sintaksi koji se ne koriste nigdje drugdje. Sve ovo može biti zbunjujuće ako nemate prethodno iskustvo s kodiranjem.
Da ne spominjem sve konceptualne informacije koje nadilaze pojedine jezike. Teme poput objektno orijentiranog programiranja, sustava komponenata entiteta i obrazaca promatrača doista mogu učiniti da vam se glava zavrti prvi put kada ih pokušate naučiti.
Prije sam dijelio ovu ilustraciju, ali toliko je točna da se ponavlja:
“Pretpostavimo da vam je netko pokazao fotografiju statue. Moglo bi vam pružiti dovoljno slike da dobijete adekvatan osjećaj kipa, ali ne biste dobili cijelu sliku. Uvećana fotografija izgubila bi zamršene detalje, dok uvećana fotografija izgubila bi osjećaj perspektive. Međutim, dodatnim fotografijama snimljenim iz drugih kutova zaista možete početi vidjeti punoću kipa u teksturi, veličini i detaljima, od prednjeg do stražnjeg dijela, od strane do kraja i odozdo prema dolje..”
Učenje programiranja može biti iznenađujuće proizvoljno. Svatko se može pohvaliti resursom A kao najboljim načinom učenja jezika X, ali možda vam to nema smisla. Možda svi mrze Resurs B, ali pogledajte jedan pogled i to ima smisla! Što se tiče nekoga drugog, možda se usredotoči kad proučavaju resurse A i B, ali imaju veliku korist od resursa C.
Zato vam je toliko važno da budete voljni konzumirati sve vrste resursa vani. Svi uče na drugačiji način. Ako imate problema s određenom temom, potražite drugi resurs. Možda će vam ta biti prikladnija. Možda ne.
Čak i ako mislite da razumijete određene teme, moguće je da o tome možete više naučiti. Također je moguće da tuđe objašnjenje zauvijek učvrsti koncept u vašem umu. Nikad se ne zna, pa zašto ne biste potrošili što više resursa?
Imajte na umu da igre mogu biti kritično koristan resurs! Pogledajte ove zabavne i edukativne igre kodiranja 9 najboljih igara za kodiranje kako biste izgradili svoje programske vještine 9 najboljih igara za kodiranje kako biste izgradili svoje vještine programiranja Igre kodiranja vam pomažu da brže učite pomoću praktične prakse i iskustva. Uz to, oni su zabavan način testiranja vaših programerskih vještina! .
Podučavajte pojmove dok ih učite
Postoji lijep koncept u programiranju koji se zove debugiranje gumenih patki. Najučudnija načela programiranja za koje nikada niste čuli najčudnija načela programiranja za koja nikada niste čuli Sljedeća načela naučit će vas da budete mudri sa svojim kodom. Neki su čudni, a mnogi duhoviti, ali svi su jednako praktični i važni. Obratite pažnju! , koja opisuje tehniku objašnjavanja nečijeg koda, red po redak, neživoj gumenoj patki. Koristi se kada je određeni segment koda razbijen, ali nema očitog razloga za to.
Čudno što većina programera ima “Eureka!” Trenutak usred objašnjavanja koda kad odjednom vide gdje se pojavljuje pogreška u logici kodiranja. Verbalizacija pokreće različito područje mozga, prisiljavajući vas da problem vidite iz novog ugla.
Ovaj se koncept može koristiti i za učenje novih materijala. Možda ste naišli na ovaj popularni citat koji se često pripisuje Albertu Einsteinu:
“Ako to ne možete jednostavno objasniti, ne razumijete ga dovoljno dobro.”
S izuzetkom nekih područja koja se bave naprednim teorijskim znanjem, ova izreka vrijedi. Što više razumijete temu, to ste bolje opremljeni da je objasnite na takav način da je netko tko nema poznavanje te teme ipak mogao razumjeti..
Isto tako je i suprotno tome. Dok pokušavate podučavati temu, naići ćete na određene pojmove koje ne možete objasniti na jasan način. Ne samo da je ovo sjajan način dijagnosticiranja nedostataka u vašem znanju, stvarni postupak pronalaska odgovarajućeg objašnjenja može vam pomoći učvrstiti koncept u vašem umu.
Zove se učenje podučavanjem i u osnovi je zaokret na otklanjanju greške kod gumenih patki.
Ne kažem da bi trebao zapravo podučavati druge; radije, svaku novu programsku temu koju naučite, pokušajte podučiti je gumenom patku (ili nevidljivom prijatelju). U početku se može osjećati blesavo, ali možda će vam se činiti nevjerojatno plodnim kada je u pitanju zadržavanje memorije.
Namjerna praksa čini savršenom
Pojam talenta je potpuno smeće. Nitko ne izlazi iz utrobe kao violinist svjetske klase, hrvač ili programer. Sigurno da su neki ljudi skloniji određenim disciplinama, ali talent bez iskustva je beskoristan. Nemojte dopustiti da vaši skriveni talenti umru: 7 načina da ih potražite ponovo ne dopustite da vaši skriveni talenti umru: 7 načina da pronađete i pronađete Opet ih Loša vijest je da morate naporno raditi s namjerom da polirate svoje skrivene talente. Dobra vijest je da postoji više mogućnosti nego ikad da pljunete-zasjajite svoje talente. , Slično tome, naporan rad uvijek je vrjedniji od talenta.
To se kaže, nisu svi oblici napornog rada jednaki. Malcolm Gladwell je skovao zloglasno Pravilo od 10 000 sati, koje kaže da morate uložiti najmanje 10 000 sati u temu da biste postali gospodar u njoj. Iako je mišljenje istinito, mnogi pogrešno tumače ono što je pokušao reći.
Ukratko, priča od 10 000 sati zapravo ne jamči majstorstvo. Znate onu izreku: “Praksa se ne čini savršenom. Savršena praksa čini savršenu.” Da bi to imalo smisla, praksa mora biti namjerna Želite li postati stručnjak na nečemu? Pokušajte s namjernom praksom Želite li postati stručnjak za nešto? Isprobajte smišljenu praksu Sve je previše lako osjetiti kićenje kad naporno pokušavate poboljšati određenu vještinu. Iskoristite snagu "namjerne prakse" da biste prevladali te zaluđene visoravni. , Ovladavanje se može postići samo 10 000 sati promišljene prakse.
Način na koji vježbate je bitno više od toga koliko vremena provodite vježbajući.
Čitanje je pasivno. Gledanje nastave na YouTubeu je pasivno. Slušanje podcasta pasivno je. Kao novak koder možda ćete biti u iskušenju da lagano prelazite s udžbenika na udžbenik, baveći se temom nakon teme, a da zapravo ne primijenite bilo koje od tih znanja na praktičan način. Oduprite se ovom iskušenju.
Jedno je razumjeti primjer pred sobom, ali drugo je sintetizirati rješenje ispočetka. Ako želite ubrzati proces učenja, morate biti voljni biti aktivni, a ne pasivni. Aktivna praksa jedina je stvar koja je na kraju bitna.
Eksperimentirajte s osobnim projektima
Za mene je domaći zadatak bio najgori dio škole. Činilo se to samo kao istančana zavjera za ubijanje zabave i zaokupljanje studenata - što je, da budemo pošteni, ponekad bilo istina. Ali sada kad se osvrnem natrag, važnost domaće zadaće konačno ima smisla. Prisililo me na aktivno primanje novo stečenih znanja.
Ako ste upisani u tečajeve i nastavu programiranja 11 najboljih web stranica za besplatne tečajeve programiranja na mreži 11 najboljih web stranica za besplatne tečajeve programiranja na mreži Pomoću ovih besplatnih tečajeva programiranja na mreži možete postati izvrstan koder bez diplome informatike. , nemojte podcjenjivati učinkovitost domaćih zadaća. Shvatite to ozbiljno, uvijek to tretirajući kao priliku da dodatno cementira ono što ste naučili u dugoročno pamćenje.
Ali mnogo puta domaća zadaća još uvijek nije dovoljna. (A ako učite samostalno programirati bez stvarnog instruktora, vjerovatno za početak nemate domaću zadaću.)
Što je rješenje? Napravite nekoliko bačenih projekata!
Zamislite nekoliko projektnih ideja 5 Projektnih ideja koje će vam pomoći da naučite programirati brže 5 Projektne ideje koje će vam olakšati učenje bržeg programiranja Postoji nekoliko načina kako olakšati krivulju učenja za programiranje. Prljajte ruke i brže učite uz sporedne projekte koje možete započeti bilo kada. Igrajte se s ovih petorica. koje želite implementirati. Za apsolutne novorođenče, možete razmisliti o igri Tic-Tac-Toe ili Hangmanu. Za iskusne programere koji pokušavaju naučiti novi okvir, pokušajte kodirati jednostavnu mobilnu aplikaciju ili web igru. Sve dok vas to osobno zanima, idi na to!
Ljepota ovog pristupa je dvostruka.
Prvo, vjerojatnije je da ćete zadržati svoju pažnju. Studije su pokazale da studenti bolje uče kada mogu slijediti teme koje ih zanimaju. Upravo to nudi osobni projekt. Imate krajnji cilj koji zapravo želite postići, pa je vjerojatnije da ćete zadržati podatke koji će vas tamo dovesti.
Drugo, nema pritiska da uspijete. Iako bi uspjeh bio lijep, nedostatak formalnosti omogućava vam da budete eksperimentalni i kreativni. Neizbježno ćete naići na probleme, ali više je kao igrati s Legom nego što je to domaća zadaća. Zabavnije je i nije tako stresno.
Opustite se i označite sve
Istina je da se niti jedan programer ne sjeća sve naučili su. Čak i nakon što neko vrijeme radite s određenom bibliotekom ili okvirom, nije neuobičajeno ako se ne možete sjetiti svake funkcije ili varijable s vrha glave.
U stvari, pokušaj pamćenja svega može na kraju biti ogroman gubitak vremena i truda. Reference postoje s razlogom. Zašto čitavoj enciklopediji zapamtiti za pamćenje, kad je možete otvoriti kad god vam zatreba?
Dakle, kada zapamtiti i kad uputiti?
Kad je riječ o konceptualnom materijalu, uvijek ga internalizirajte najbolje što možete. Pod tim mislim na razumijevanje teorije čak i ako je ne možete pretvoriti u stvarni kod (a teorija bi vam trebala biti dovoljno jasna da biste je mogli jasno naučiti).
Za sve ostalo - kao što su specifična imena funkcija, popisi parametara ili čak jezične ankete - Ne bih se brinuo oko posvećenja sjećanju. Slobodno se odložite na referentni list. Ponekad ćete referencirati nešto tako često da biste ga na kraju zapamtili. Ako se to dogodi, u redu. Ako ne, i to je u redu.
Osobno imam stotine internetskih oznaka raznih API-ja, vodiča i tutorijala. Ako trebam implementirati nekakav algoritam pronalaženja puta, možda ću uputiti vodič koji će mi pomoći da ga kodiram prije nego što ponovno zaboravim na njega. Pomaže u razumijevanju temeljnih koncepata, ali pokušavam se ne bojati oko detalja implementacije.
Završne misli
Ponovit ću milijun puta ako moram: programiranje je teško i u redu je ako se borite s tim. Programiram kao hobi više od desetljeća i još uvijek se zastrašim kada imam nove koncepte za učenje.
Ne prebijajte se ako se svega ne možete sjetiti odmah. Gornji savjeti će vam, nadamo se, biti od pomoći, pa čak i ako ne, uvijek se možete osloniti na označene reference kao krajnje sredstvo.
Je li vam teško programiranje? Koje vrste trikova i savjeta znate da bi mogli biti korisni koderima za početnike? Podijelite svoju mudrost s nama u komentarima u nastavku!
Slikovni krediti: Binarni programer Via Shutterstock, Eraser za memoriju Via Shutterstock, Zatamnjeni kod Via Shutterstock, Gumeni ducky preko Shutterstock, Tipkovnica za tipkovnicu Via Shutterstock, PHP izvorni kod preko Shutterstock, Mape za datoteke putem Shutterstock