Oglas
Programiranje je teško. Jedini ljudi koji kažu drugačije su oni koji imaju višegodišnje iskustvo kodiranja ispod pojasa. U redu je biti preopterećen! Tamo je mnogo učiti i vjerojatno ćete stvari zaboraviti jednako brzo kao što ih naučite. Vjerujte mi: to je normalno.
Ali samo zato što je normalno ne znači da nije frustrirajuće. Istini za volju, učenje kodiranja Kako naučiti programirati bez sveg stresaMožda ste se odlučili baviti programiranjem, bilo zbog karijere ili samo iz hobija. Sjajno! Ali možda se počinjete osjećati preopterećeno. Nije tako sjajno. Evo pomoći da vam olakšate putovanje. Čitaj više može biti izuzetno stresno ako tome ne pristupite s pravim načinom razmišljanja i stavom.
Želite naučiti taj novi jezik ili knjižnicu ili okvir što je prije moguće, zar ne? To je razumljivo. Srećom, postoji pregršt savjeta koji vam mogu pomoći da bolje zadržite sve te teške informacije o programiranju koje stalno lete na jedno uho, a pravo na drugo.
Nema više Cram Sessions
Nitko to ne želi čuti, ali nabijanje je najgori način da naučite programirati. Ako ste išta poput mene, naguravanje je bilo vaše
način rada u cijeloj školi i sveučilištu. To je jedini način na koji znaš učiti.Ali uči iz mojih grešaka: što više pokušavate nagurati, manje ćete se sjećati. To u velikoj mjeri vrijedi za svaki predmet koji se temelji na znanju, ali posebno je istinito kada je u pitanju programiranje.
Temelj ove tvrdnje dolazi iz studije iz 2008 Sveučilište Kalifornije, San Diego:
"Studenti rade bolje kada razmaknu svoje sesije učenja, a ne kada pokušavaju sve ugurati u svoje nožice tijekom jednog sjedenja."
Zašto? Najvjerojatnije zbog efekt serijskog položaja:
“Učinak serijskog položaja je sklonost osobe da se najbolje sjeća prve i posljednje stavke u nizu, a najgore srednje stavke.”
Drugim riječima: u bilo kojoj sesiji učenja veća je vjerojatnost da ćete zadržati informacije koje ste naučili u blizini početak i kraj sesije i vjerojatnije je zaboraviti informacije iz sredine sjednica.
Želite maksimizirati broj početaka i krajeva. Zato je bolje imati više kratkih sesija umjesto nekoliko dugih sesija kada je u pitanju učenje i upijanje novog materijala.
Sljedeći put kada sjednete da naučite kod, bavite se temom po jednu i napravite kratku pauzu između svake teme. (Samo se pobrinite da spriječite da se pauze pretvore u odugovlačenje!)
Pregled, recenzija, recenzija
Drugi razlog zašto je nabijanje suprotno dugoročnom zadržavanju znanja je taj što pamćenje blijedi s vremenom. To nije uvijek točno – siguran sam da svi imamo nekoliko uspomena iz djetinjstva koje nikada neće nestati – ali čini se da je to opći slučaj za sjećanja koja nisu vezana za emocije.
Postoji neka rasprava o tome propada li samo pamćenje zbog vremena (teorija raspada) ili jednostavno bude istisnut i zamijenjen novim sjećanjima tijekom vremena (teorija interferencije). Bez obzira na koju teoriju se pretplatili, rezultat je da će starija sjećanja vjerojatnije izblijedjeti.
Ovdje u obzir dolazi recenzija.
Zamislite to kao hodanje kroz šumu uspomena. Svaki put kada želite pristupiti memoriji, morate to učiniti pratiti neuralni put kako bi ga pronašao. Svaki put kada uđete u trag tom sjećanju, put se malo više urezuje - baš kao što se prirodno stvara zemljani put kada ljudi hodaju istim putem iznova i iznova. Ako prestanete hodati stazom, ona može izblijedjeti i sjećanje završi izgubljeno negdje u šumi.
Ako ostavimo po strani svu pop psihologiju, evo zaključka: kada je u pitanju programiranje, nije dovoljno naučiti temu samo jednom ili dvaput. Morate ga ponovno posjetiti desetke ili čak stotine puta. Svaka recenzija malo dublje urezuje tu temu u vaš mozak.
Znam koliko to može biti teško ako ste prirodni nabijač, ali bit ćete iznenađeni koliko brzo počinjete zadržavati materijal nakon što se potrudite da ga redovito pregledavate.
Koristite nekoliko različitih resursa
Najteži aspekt programiranja - barem za potpuno nove programere - je čista širina detalja i nijansi koje je potrebno internalizirati. Dok se ta internalizacija ne dogodi, bit ćete u trajnom stanju češanja po glavi.
Ovisno o jeziku, morat ćete zapamtiti stotine pravila sintakse (npr. ključne riječi, točke i zareze, razmak). Neki su jezici stroži, drugi manje, a treći imaju svoje jedinstvene pristupe sintaksi koji se ne koriste nigdje drugdje. Sve ovo može biti zbunjujuće ako nemate prethodnog iskustva u kodiranju.
Da ne spominjemo sve konceptualne informacije koje nadilaze pojedinačne jezike. Teme kao što su objektno orijentirano programiranje, sustavi entitet-komponenta i obrasci promatrača mogu vam zaista zavrtjeti u glavi kad ih prvi put pokušate naučiti.
Već sam podijelio ovu ilustraciju, ali je toliko aktualan da je vrijedno ponoviti:
“Pretpostavimo da vam je netko pokazao fotografiju kipa. Možda vam daje dovoljno slike da dobijete adekvatan osjećaj kipa, ali ne biste dobili cijelu sliku. Smanjena fotografija izgubila bi zamršene detalje dok bi uvećana fotografija izgubila osjećaj perspektive. Međutim, uz dodatne fotografije snimljene iz drugih kutova, stvarno možete početi vidjeti punoća kipa u teksturi, veličini, detaljima, sprijeda na stražnju stranu, sa strane na stranu i od vrha do dna."
Učenje programiranja može biti iznenađujuće proizvoljno. Svi bi mogli pohvaliti Resurs A kao najbolji način za učenje jezika X, ali možda vam to nema smisla. Možda svi mrze resurs B, ali bacite jedan pogled i ima savršenog smisla! Što se tiče nekoga drugoga, možda se zaokuplja kada proučava resurse A i B, ali imaju velike koristi od resursa C.
Zato je toliko važno da budete spremni potrošiti sve vrste resursa vani. Svatko uči na drugačiji način. Ako imate problema s određenom temom, potražite drugi resurs. Možda će vam taj više odgovarati. Možda ne.
Čak i ako mislite da razumijete određene teme, moguće je da se o tome još može naučiti. Također je moguće da tuđe objašnjenje učvrsti koncept u vašem umu zauvijek. Nikad se ne zna, pa zašto ne potrošiti š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 kodiranja za razvijanje vještina programiranjaIgre kodiranja pomažu vam da brže učite uz praktičnu praksu i iskustvo. Osim toga, oni su zabavan način da testirate svoje vještine programiranja! Čitaj više .
Učite pojmove dok ih učite
Postoji lijep koncept u programiranju tzv gumena patka otklanjanje pogrešaka Najčudniji principi programiranja za koje nikada niste čuliSljedeća načela će vas naučiti da budete mudri sa svojim kodom. Neki su čudni, a mnogi duhoviti, ali svi su jednako praktični i važni. Pazite! Čitaj više , koji opisuje tehniku objašnjavanja nečijeg koda, red po redak, neživoj gumenoj patki. Koristi se kada je određeni segment koda pokvaren, ali za to nema očitog razloga.
Začudo, većina programera ima "Eureku!" trenutak usred objašnjavanja koda jer odjednom vide gdje se pojavljuje pogreška u logici kodiranja. Verbalizacija pokreće različito područje mozga, tjerajući vas da sagledate problem iz novog kuta.
Ovaj koncept se također može koristiti kao pomoć pri učenju novog gradiva. 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 neku temu, to ste bolje opremljeni da je objasnite na takav način da netko tko nema znanja o navedenoj temi još uvijek može razumjeti.
Točno je i suprotno od ovoga. Dok pokušavate podučavati neku temu, naići ćete na određene koncepte koje ne možete jasno objasniti. Ne samo da je ovo izvrstan način za dijagnosticiranje slabosti u vašem znanju, stvarni proces pronalaženja pravog objašnjenja može pomoći učvršćivanju koncepta u vašem umu.
To se zove učenje uz poučavanje i u osnovi je preokret u uklanjanju grešaka u gumenoj patki.
E sad, ne kažem da bi trebao zapravo podučavati druge; radije, svaku novu temu programiranja koju naučite, pokušajte je naučiti gumenom patku (ili nevidljivom prijatelju). U početku vam se može činiti glupo, ali možda ćete smatrati da je nevjerojatno plodonosno kada je u pitanju zadržavanje pamćenja.
Namjerno vježbanje čini savršenim
Pojam talenta je potpuno smeće. Nitko ne izlazi iz maternice kao violinist svjetske klase, hrvač ili programer. Naravno, neki ljudi bi mogli biti skloniji određenim disciplinama, ali talent bez iskustva je beskoristan Ne dopustite da vaši skriveni talenti umru: 7 načina da ih ponovno pronađeteLoša vijest je da morate naporno raditi s namjerom da uglačate svoje skrivene talente. Dobra vijest je da postoji više mogućnosti nego ikada da ispljunete svoje talente. Čitaj više . Slično, naporan rad je uvijek vrijedniji od talenta.
kako je rečeno, nisu svi oblici teškog rada jednaki. Malcolm Gladwell skovao je zloglasno pravilo 10 000 sati, koje kaže da morate uložiti najmanje 10 000 sati u predmet da biste postali majstor u tome. Iako je osjećaj možda istinit, mnogi ljudi pogrešno tumače ono što je htio reći.
Ukratko, 10.000 sati rada zapravo ne jamči majstorstvo. Znate kako se kaže: “Vježba ne čini savršenim. Savršena praksa čini savršenim.” Da bi imalo smisla, praksa mora biti namjerna Želite li postati stručnjak za nešto? Pokušajte s namjernom vježbomPrelako je osjećati se užasnuto kada mukotrpno pokušavate poboljšati određenu vještinu. Upotrijebite moć "namjernog vježbanja" da biste prešli preko tih bijesnih platoa. Čitaj više . Majstorstvo se može postići samo kroz 10 000 sati namjernog vježbanja.
Način na koji vježbate mnogo je važniji od toga koliko vremena provodite vježbajući.
Čitanje je pasivno. Gledanje lekcija na YouTubeu je pasivno. Slušanje podcasta je pasivno. Kao programer početnik, možda ćete biti u iskušenju da letite od tutorijala do tutoriala, baveći se predmetom za predmetom, a da pritom ne primijenite ništa od tog znanja na praktičan način. Oduprite se ovom iskušenju.
Jedno je razumjeti primjer koji je pred vama, ali je drugo sintetizirati rješenje od nule. Ako želite ubrzati proces učenja, morate biti spremni biti aktivni umjesto pasivni. Aktivna praksa jedina je vrsta koja je bitna na kraju.
Eksperimentirajte s osobnim projektima
Za mene je domaća zadaća bila najgori dio škole. Činilo se samo kao razrađena smicalica kojom se ubija zabava i zaokupljaju studenti — što je, da budemo pošteni, ponekad bila istina. Ali sada kada pogledam unatrag, važnost domaće zadaće konačno ima smisla. To me natjeralo da novostečeno znanje aktivno primjenjujem.
Ako ste upisani tečajevi i satovi programiranja 11 najboljih web-mjesta za besplatne online tečajeve računalnog programiranjaKoristeći ove besplatne online tečajeve računalnog programiranja, možete postati izvrstan programer bez diplome iz informatike. Čitaj više , nemojte podcjenjivati učinkovitost domaće zadaće. Shvatite to ozbiljno, uvijek ga tretirajte kao priliku da dodatno učvrstite 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 programirati sami bez stvarnog instruktora, vjerojatno nemate nikakvu domaću zadaću za početak.)
Koje je rješenje? Napravite nekoliko sporednih projekata za bacanje!
Zamislite a nekoliko projektnih ideja 5 projektnih ideja koje će vam pomoći da brže naučite programiranjePostoji nekoliko načina da olakšate krivulju učenja za programiranje. Prljajte ruke i učite brže uz pomoćne projekte koje možete započeti bilo kada. Poigrajte se s ovih pet. Čitaj više koje biste željeli implementirati. Za apsolutne početnike, razmislite o igri Tic-Tac-Toe ili Hangman. Za iskusne programere koji pokušavaju naučiti novi okvir, pokušajte kodirati jednostavnu mobilnu aplikaciju ili web-igru. Sve dok vas to zanima na osobnoj razini, nastavite!
Ljepota ovog pristupa je dvostruka.
Prvo, vjerojatnije je da će zadržati vašu pozornost. Studije su pokazale da učenici bolje uče kada se mogu baviti temama koje ih zanimaju. Upravo to nudi osobni projekt. Imate krajnji cilj koji zapravo želite postići, pa je veća vjerojatnost da ćete zadržati informacije koje će vas tamo dovesti.
Drugo, nema pritiska da uspijete. Iako bi uspjeh bio lijep, nedostatak formalnosti omogućuje vam da budete eksperimentalni i kreativni. Neizbježno ćete naići na probleme, ali to je više kao igranje s Legom nego kao domaća zadaća. Zabavnije je i nije toliko stresno.
Opustite se i označite sve
Istina je da se nijedan 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.
Zapravo, pokušaj memorisanja svega mogao bi biti samo veliki gubitak vremena i truda. Referentni listovi postoje s razlogom. Zašto sjećati cijelu enciklopediju kad je možete jednostavno otvoriti kad god vam zatreba?
Dakle, kada zapamtiti, a kada referencirati?
Kada 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 je možete jasno podučiti).
Za sve ostalo — kao što su nazivi specifičnih funkcija, popisi parametara ili čak jezične nedoumice — Ne bih se brinuo o obvezivanju na pamćenje. Slobodno odgodite referentni list. Ponekad ćete nešto spominjati tako često da to na kraju zapamtite. Ako se to dogodi, dobro. Ako ne, i to je u redu.
Osobno, imam stotine internetskih oznaka za razne API-je, vodiče i tutorijale. Ako trebam implementirati neku vrstu algoritma za traženje puta, mogao bih referencirati vodič koji će mi pomoći da ga kodiram prije nego što ga opet zaboravim. Pomaže razumjeti temeljne koncepte, ali pokušavam se ne brinuti oko detalja implementacije.
Završne misli
Ponovit ću to milijun puta ako moram: programiranje je teško i u redu je ako se borite s tim. Više od desetljeća programiram kao hobi i još uvijek se plašim kada moram naučiti nove koncepte.
Nemojte se tući ako se ne možete odmah sjetiti svega. Nadamo se da će vam se gornji savjeti pokazati korisnima, a čak i ako ne učine, uvijek se možete osloniti na označene reference kao posljednje sredstvo.
Smatrate li programiranje teškim? Koje trikove i savjete znate koji bi mogli biti korisni koderima početnicima? Podijelite svoju mudrost s nama u komentarima ispod!
Zasluge za slike: Binarni programer putem Shutterstocka, Gumica za brisanje memorije putem Shutterstocka, Zamagljeni kod putem Shutterstocka, Rubber Ducky putem Shutterstocka, Tipkovnica putem Shutterstocka, PHP izvorni kod putem Shutterstocka, Mape datoteka putem Shutterstocka
Joel Lee ima B.S. diplomirao informatiku i više od šest godina profesionalnog iskustva u pisanju. On je glavni urednik za MakeUseOf.