Reklama
Programowanie jest twardy. Jedyni ludzie, którzy mówią inaczej, to ci, którzy mają za pasem wieloletnie doświadczenie w kodowaniu. W porządku być przytłoczonym! Jest działka się uczyć, a prawdopodobnie zapomnisz o rzeczach tak szybko, jak się ich nauczysz. Zaufaj mi: to normalne.
Ale tylko dlatego, że jest to normalne, nie oznacza, że nie jest frustrujące. Prawda została powiedziana, nauka kodowania Jak nauczyć się programowania bez stresu?Być może zdecydowałeś się na programowanie, czy to dla kariery, czy jako hobby. Świetny! Ale może zaczynasz czuć się przytłoczony. Nie za dobrze. Oto pomoc, która ułatwi Ci podróż. Czytaj więcej może być bardzo stresujące, jeśli nie podejdziesz do tego z odpowiednim nastawieniem i nastawieniem.
Chcesz jak najszybciej nauczyć się nowego języka, biblioteki lub frameworka, prawda? To zrozumiałe. Na szczęście istnieje garść wskazówek, które pomogą ci lepiej zachować wszystkie te ciężkie informacje programistyczne, które lecą jednym uchem, a od razu drugim.
Nigdy więcej sesji wpychania
Nikt nie chce tego słuchać, ale wkuwanie to najgorszy sposób na naukę programowania. Jeśli jesteś podobny do mnie, wkuwanie było twoim modus operandi wszystko w szkole i na uniwersytecie. To jedyny sposób, w jaki wiesz, jak się uczyć.
Ale ucz się na moich błędach: im więcej będziesz się starał wkuwać, tym mniej będziesz pamiętał. To prawie dotyczy każdego przedmiotu opartego na wiedzy, ale jest to szczególnie prawdziwe, jeśli chodzi o programowanie.
Podstawą tego twierdzenia jest z badania z 2008 r. przez Uniwersytet Kalifornijski w San Diego:
„Uczniowie radzą sobie lepiej, gdy spędzają czas w swoich sesjach edukacyjnych, niż gdy próbują wcisnąć wszystko w swoje noski podczas jednego siedzenia”.
Czemu? Najprawdopodobniej ze względu na efekt pozycji szeregowej:
„Efekt pozycji seryjnej to tendencja osoby do najlepszego przypominania sobie pierwszej i ostatniej pozycji w serii, a najgorszych pozycji środkowych”.
Innymi słowy: w dowolnej sesji nauki jest bardziej prawdopodobne, że zachowasz informacje, których nauczyłeś się w pobliżu początek i koniec sesji i bardziej prawdopodobne, że zapomnisz informacje ze środka sesji sesja.
Chcesz zmaksymalizować liczbę początków i końców. Dlatego lepiej jest mieć kilka krótkich sesji niż kilka długich, jeśli chodzi o naukę i przyswajanie nowego materiału.
Następnym razem, gdy usiądziesz do nauki kodu, zajmij się jednym tematem na raz i zrób krótką przerwę między każdym tematem. (Upewnij się, że przerwy nie przekształcą się w zwlekanie!)
Recenzja, Recenzja, Recenzja
Innym powodem, dla którego wkuwanie jest sprzeczne z długotrwałym przechowywaniem wiedzy, jest to, że pamięć z czasem zanika. Nie zawsze tak jest — jestem pewien, że wszyscy mamy kilka wspomnień z dzieciństwa, które nigdy nie znikną — ale wydaje się, że tak jest w przypadku wspomnień niezwiązanych z emocjami.
Istnieje pewna debata, czy sama pamięć zanika z powodu czasu (teoria rozpadu) lub po prostu zostaje z czasem wypchnięty i zastąpiony nowymi wspomnieniami (teoria interferencji). Niezależnie od tego, którą teorię akceptujesz, w rezultacie starsze wspomnienia są bardziej podatne na zanikanie.
Tutaj w grę wchodzi recenzja.
Pomyśl o tym jak o spacerowaniu po lesie wspomnień. Za każdym razem, gdy chcesz uzyskać dostęp do wspomnienia, musisz śledzić ścieżkę neuronową aby go znaleźć. Za każdym razem, gdy śledzisz to wspomnienie, ścieżka zostaje nieco bardziej wyryta — tak jak naturalnie tworzy się ścieżka brudu, gdy ludzie idą tą samą ścieżką w kółko. Jeśli przestaniesz iść ścieżką, może zniknąć, a pamięć zaginie gdzieś w lesie.
Pomijając całą psychologię popu, oto wniosek: jeśli chodzi o programowanie, nie wystarczy nauczyć się tematu tylko raz lub dwa razy. Trzeba do niego wracać dziesiątki, a nawet setki razy. Każda recenzja przenosi ten temat do twojego mózgu nieco głębiej.
Wiem, jakie to może być trudne, jeśli jesteś naturalnym włóczęgą, ale zdziwisz się, jak szybko zaczniesz zatrzymywać materiał, gdy spróbujesz go regularnie przeglądać.
Użyj kilku różnych zasobów
Najtrudniejszym aspektem programowania — przynajmniej dla zupełnie nowych programistów — jest szeroki zakres szczegółów i niuansów, które należy zinternalizować. Dopóki nie nastąpi internalizacja, będziesz w stanie nieustannego drapania się w głowę.
W zależności od języka będziesz musiał zapamiętać setki reguł składni (np. słowa kluczowe, średniki, spacje). Niektóre języki są bardziej rygorystyczne, inne mniej, a jeszcze inne mają swoje własne unikalne podejście do składni, które nie są używane nigdzie indziej. Wszystko to może być mylące, jeśli nie masz wcześniejszego doświadczenia w kodowaniu.
Nie wspominając o wszystkich informacjach pojęciowych, które wykraczają poza poszczególne języki. Tematy takie jak programowanie obiektowe, systemy encja-komponent i wzorce obserwatora mogą naprawdę przyprawić o zawrót głowy, gdy pierwszy raz spróbujesz się ich nauczyć.
Dzieliłem się tą ilustracją wcześniej, ale jest tak celny, że wymaga powtórzenia:
„Przypuśćmy, że ktoś pokazał ci zdjęcie posągu. Może to zapewnić wystarczający obraz, aby uzyskać odpowiednie wrażenie posągu, ale nie uzyskasz pełnego obrazu. Zmniejszone zdjęcie utraciłoby skomplikowane szczegóły, podczas gdy powiększone zdjęcie utraciłoby poczucie perspektywy. Jednak dzięki dodatkowym zdjęciom zrobionym pod innymi kątami naprawdę możesz zacząć dostrzegać pełnia posągu w fakturze, w rozmiarze, w szczegółach, od przodu do tyłu, z boku na bok i od góry do dołu”.
Nauka programowania może być zaskakująco arbitralna. Każdy może chwalić Resource A jako najlepszy sposób na naukę języka X, ale może to nie ma dla ciebie sensu. Może wszyscy nienawidzą Resource B, ale wystarczy jedno spojrzenie i to ma sens! Jeśli chodzi o kogoś innego, być może wycofuje się, studiując Zasoby A i B, ale czerpią duże korzyści z Zasobów C.
Dlatego tak ważne jest, abyś był skłonny do konsumowania wszelkiego rodzaju zasobów. Każdy uczy się w inny sposób. Jeśli masz problem z określonym tematem, poszukaj innego zasobu. Może ta będzie dla Ciebie bardziej odpowiednia. Może nie.
Nawet jeśli uważasz, że rozumiesz określone tematy, możliwe, że jest więcej do nauczenia się na ten temat. Możliwe jest również, że wyjaśnienie kogoś innego utrwali tę koncepcję w twoim umyśle na dobre. Nigdy nie wiadomo, dlaczego więc nie zużywać jak największej ilości zasobów?
Pamiętaj, że gry mogą być niezwykle przydatnym zasobem! Sprawdź te zabawne i edukacyjne gry w kodowanie 9 najlepszych gier w programowanie, które pomogą Ci rozwinąć umiejętności programowaniaGry w programowanie pomagają szybciej uczyć się dzięki praktycznej praktyce i doświadczeniu. Dodatkowo są świetnym sposobem na sprawdzenie swoich umiejętności programowania! Czytaj więcej .
Ucz pojęć, gdy się ich uczysz
W programowaniu istnieje piękna koncepcja o nazwie debugowanie gumowej kaczki Najdziwniejsze zasady programowania, o których nigdy nie słyszałeśPoniższe zasady nauczą Cię mądrego posługiwania się kodem. Niektóre są dziwne, a wiele zabawne, ale wszystkie są równie praktyczne i ważne. Uważajcie! Czytaj więcej , który opisuje technikę wyjaśniania swojego kodu linijka po linijce nieożywionej gumowej kaczce. Jest używany, gdy określony segment kodu jest zepsuty, ale nie ma ku temu oczywistego powodu.
Co dziwne, większość programistów ma „Eureka!” chwilę w trakcie wyjaśniania kodu, gdy nagle widzą, gdzie występuje błąd w logice kodowania. Werbalizacja uruchamia inny obszar mózgu, zmuszając cię do spojrzenia na problem z innej perspektywy.
Ta koncepcja może być również wykorzystana do nauki nowego materiału. Być może natknąłeś się na ten popularny cytat, często przypisywany Albertowi Einsteinowi:
„Jeśli nie możesz tego wyjaśnić po prostu, nie rozumiesz tego wystarczająco dobrze”.
Z wyjątkiem niektórych dziedzin, które zajmują się zaawansowaną wiedzą teoretyczną, to powiedzenie jest prawdziwe. Im lepiej rozumiesz temat, tym lepiej jesteś przygotowany do wyjaśnienia go w taki sposób, aby ktoś, kto nie ma wiedzy na ten temat, mógł go zrozumieć.
Prawdą jest również odwrotność tego. Kiedy próbujesz nauczać tematu, natkniesz się na pewne koncepcje, których nie możesz wyjaśnić w jasny sposób. Jest to nie tylko świetny sposób na diagnozowanie słabości w Twojej wiedzy, ale sam proces znajdowania właściwego wyjaśnienia może pomóc utrwalić tę koncepcję w Twoim umyśle.
Nazywa się to uczeniem się przez nauczanie i jest to w zasadzie odmiana debugowania gumowej kaczki.
Teraz nie mówię, że powinieneś faktycznie uczyć innych; raczej każdego nowego tematu programowania, którego się uczysz, spróbuj nauczyć go gumowej kaczuszki (lub niewidzialnego przyjaciela). Na początku może wydawać się to głupie, ale może okazać się niezwykle owocne, jeśli chodzi o zachowanie pamięci.
Świadoma praktyka czyni mistrza
Pojęcie talentu to kompletna bzdura. Nikt nie wychodzi z łona matki jako światowej klasy skrzypek, zapaśnik czy programista. Jasne, niektórzy ludzie mogą być bardziej skłonni do pewnych dyscyplin, ale talent bez doświadczenia jest bezużyteczny Nie pozwól umrzeć swoim ukrytym talentom: 7 sposobów na znalezienie ich na nowoZła wiadomość jest taka, że musisz ciężko pracować z zamiarem wypolerowania swoich ukrytych talentów. Dobrą wiadomością jest to, że jest więcej niż kiedykolwiek okazji, aby zabłysnąć swoimi talentami. Czytaj więcej . Podobnie ciężka praca jest zawsze cenniejsza niż talent.
Biorąc to pod uwagę, nie wszystkie formy ciężkiej pracy są równe. Malcolm Gladwell ukuł niesławną zasadę 10 000 godzin, która mówi, że musisz zainwestować co najmniej 10 000 godzin w dany przedmiot, aby stać się w tym mistrzem. Chociaż sentyment może być prawdziwy, wiele osób błędnie interpretuje to, co próbował powiedzieć.
Krótko mówiąc, zaangażowanie na 10 000 godzin w rzeczywistości nie gwarantuje mistrzostwa. Znasz powiedzenie: „Praktyka nie czyni doskonałości. Doskonała praktyka czyni mistrza.” Aby miało to znaczenie, praktyka musi być zamierzona Chcesz zostać ekspertem w czymś? Wypróbuj przemyślaną praktykęZbyt łatwo jest czuć się przybitym, gdy usilnie próbujesz poprawić pewną umiejętność. Wykorzystaj moc „celowej praktyki”, aby pokonać te irytujące płaskowyże. Czytaj więcej . Mistrzostwo można osiągnąć jedynie przez 10 000 godzin świadomej praktyki.
Sposób, w jaki ćwiczysz, ma o wiele większe znaczenie niż to, ile czasu spędzasz na ćwiczeniach.
Czytanie jest pasywne. Oglądanie lekcji na YouTube jest pasywne. Słuchanie podcastów jest pasywne. Jako początkujący programista możesz ulec pokusie, by przeskakiwać od samouczka do samouczka, zajmując się tematem po temacie, bez faktycznego zastosowania tej wiedzy w praktyczny sposób. Oprzyj się tej pokusie.
Zrozumienie przykładu przed tobą to jedno, a co innego zsyntetyzować rozwiązanie od zera. Jeśli chcesz przyspieszyć proces uczenia się, musisz chcieć być aktywnym, a nie pasywnym. Aktywna praktyka jest jedynym rodzajem, który ostatecznie się liczy.
Eksperymentuj z osobistymi projektami
Dla mnie praca domowa była najgorszą częścią szkoły. Wydawało się to po prostu skomplikowanym chwytem mającym na celu zabicie zabawy i zajęcie uczniów – co, szczerze mówiąc, czasami było prawdą. Ale teraz, kiedy patrzę wstecz, waga pracy domowej w końcu nabiera sensu. Zmusiło mnie to do aktywnego zastosowania nowo nabytej wiedzy.
Jeśli jesteś zapisany w kursy i zajęcia z programowania 11 najlepszych witryn z bezpłatnymi kursami programowania komputerowego onlineKorzystając z tych bezpłatnych kursów programowania online, możesz zostać świetnym programistą bez dyplomu z informatyki. Czytaj więcej , nie lekceważ skuteczności pracy domowej. Traktuj to poważnie, zawsze traktując to jako szansę na dalsze utrwalenie tego, czego się nauczyłeś, w pamięci długotrwałej.
Ale wiele razy praca domowa wciąż nie wystarcza. (A jeśli uczysz się programować samodzielnie bez instruktora, prawdopodobnie nie masz od początku żadnej pracy domowej).
Jakie jest rozwiązanie? Stwórz kilka jednorazowych projektów pobocznych!
Pomyśl o kilka pomysłów na projekty 5 pomysłów na projekty, które pomogą Ci szybciej nauczyć się programowaniaJest kilka sposobów na ułatwienie nauki programowania. Zabrudź sobie ręce i ucz się szybciej dzięki projektom pobocznym, które możesz rozpocząć w dowolnym momencie. Pobaw się z tymi pięcioma. Czytaj więcej które chcesz wdrożyć. Dla absolutnych nowicjuszy możesz rozważyć grę w kółko i krzyżyk lub wisielca. Dla doświadczonych programistów próbujących nauczyć się nowego frameworka, spróbuj napisać prostą aplikację mobilną lub grę internetową. Tak długo, jak interesuje Cię to na poziomie osobistym, rób to!
Piękno tego podejścia jest dwojakie.
Po pierwsze, jest bardziej prawdopodobne, że przyciągnie twoją uwagę. Badania wykazały, że uczniowie uczą się lepiej, kiedy mogą realizować interesujące ich tematy. To właśnie oferuje osobisty projekt. Masz cel końcowy, który faktycznie chcesz osiągnąć, dlatego istnieje większe prawdopodobieństwo, że zachowasz informacje, które Cię tam doprowadzą.
Po drugie, nie ma presji, abyś odniósł sukces. Choć sukces byłby miły, brak formalności pozwala na eksperymentowanie i kreatywność. Nieuchronnie natkniesz się na problemy, ale bardziej przypomina to zabawę z Lego niż pracę domową. To bardziej zabawne i mniej stresujące.
Zrelaksuj się i dodaj wszystko do zakładek
Prawda jest taka, że żaden programista nie pamięta wszystko nauczyli się. Nawet po pewnym czasie pracy z konkretną biblioteką lub frameworkiem nie jest niczym niezwykłym, że nie możesz przypomnieć sobie każdej funkcji lub zmiennej ze szczytu głowy.
W rzeczywistości próba zapamiętania wszystkiego może skończyć się ogromną stratą czasu i wysiłku. Arkusze referencyjne istnieją nie bez powodu. Po co zapisywać w pamięci całą encyklopedię, skoro możesz ją otworzyć, kiedy tylko tego potrzebujesz?
Kiedy więc zapamiętywać, a kiedy odwoływać się?
Jeśli chodzi o materiał koncepcyjny, zawsze uwewnętrzniaj go najlepiej, jak potrafisz. Rozumiem przez to zrozumienie teorii, nawet jeśli nie możesz jej przekonwertować na rzeczywisty kod (a teoria powinna być dla ciebie wystarczająco jasna, abyś mógł jej jasno nauczać).
Do wszystkiego innego — na przykład nazw określonych funkcji, list parametrów, a nawet dziwactw językowych — Nie martwiłbym się zaangażowaniem w pamięć. Zachęcamy do zapoznania się z arkuszem referencyjnym. Czasami odwołujesz się do czegoś tak często, że w końcu to zapamiętujesz. Jeśli tak się stanie, w porządku. Jeśli nie, to też w porządku.
Osobiście mam setki zakładek internetowych do różnych interfejsów API, przewodników i samouczków. Jeśli muszę zaimplementować jakiś algorytm odnajdywania ścieżek, mogę odwołać się do przewodnika, który pomoże mi go zakodować, zanim znowu o tym zapomnę. Pomaga zrozumieć podstawowe koncepcje, ale staram się nie martwić o szczegóły implementacji.
Końcowe przemyślenia
Powtórzę to milion razy, jeśli będę musiał: programowanie jest trudne i jest w porządku, jeśli się z tym zmagasz. Programuję jako hobby od ponad dekady i nadal czuję się onieśmielony, gdy mam nowe koncepcje do nauki.
Nie bij się, jeśli nie pamiętasz wszystkiego od razu. Mamy nadzieję, że powyższe wskazówki okażą się pomocne, a nawet jeśli nie, zawsze możesz polegać na odnośnikach do zakładek jako ostateczności.
Czy programowanie jest dla Ciebie trudne? Jakie znasz sztuczki i wskazówki, które mogą być przydatne dla początkujących programistów? Podziel się z nami swoją mądrością w komentarzach poniżej!
Kredyty obrazkowe: Programator binarny za pośrednictwem Shutterstock, Wymazywanie pamięci za pośrednictwem Shutterstock, Zamaskowany kod przez Shutterstock, Gumowa kaczuszka przez Shutterstock, Klawiatura maszynistka za pośrednictwem Shutterstock, Kod źródłowy PHP za pośrednictwem Shutterstock, Foldery plików za pośrednictwem Shutterstock
Joel Lee ma licencjat z zakresu informatyki i ponad sześcioletnie doświadczenie zawodowe w pisaniu. Jest redaktorem naczelnym MakeUseOf.