Uczę się nowych języków, piszę, piszę kod dla bardzo podstawowych programów w wielu językach i chodzę na zajęcia. Czytałem książki, artykuły, lekcje, filmy, ty to nazywasz, jednak wydaje mi się, że nie rozumiem pewnych rzeczy.
Na przykład nigdy nie rozumiałem wskaźników - w czym są dobrzy. (NIE CZĘŚĆ PYTANIA - zmiana tagu „Wskaźniki” nie jest wymagana ...)
Moje pytanie nie brzmi jednak, co robią wskaźniki, ale jak mam rozumieć takie rzeczy? Jeśli po przeczytaniu książki lub artykułu o pewnej części programowania i nie rozumiem, co mam zrobić? Pisanie kodu w pewnej funkcji programowania z pewnością pomaga, ale tak naprawdę nie pomaga w zrozumieniu zbyt wiele. Część teoretyczna jest ważna dla zrozumienia.
learning
language-features
Bugster
źródło
źródło
Computer Architecture 101
kursy bardzo pomogłyby w zrozumieniu wskaźników. ...i wszystko inne.Odpowiedzi:
Jeśli masz problemy ze zrozumieniem abstrakcyjnej koncepcji, po prostu zejdź o jeden poziom niżej. Jeśli nie możesz uzyskać wskaźników w C - zejdź na poziom zestawu. Nadal masz problemy? Dowiedz się więcej o sprzęcie, aż do bramek logicznych.
źródło
MIX
i inne podobne architektury zabawek. W przypadku części sprzętowej jest tak samo - istnieje wiele prostych, zabawkowych rdzeni procesora do zbadania.Krótki cykl życia nauki przyrostowej
Dodatkowe kroki
Używaj ostrożnie.
man -k
,apropos
itd ...)Są bardziej niepewne, ponieważ musisz dokonać ponownej oceny, aby upewnić się, że wszystko dobrze. Bezpośredni mentoring przez osobę kompetentną jest zwykle lepszy, po czym następuje oczywiście własna walidacja zdobytej wiedzy poprzez ponowne wdrożenie tego, czego się nauczyłeś (a następnie próba posunięcia się o krok dalej i nauczenia się koncepcji wyższego poziomu zbudowanej na tego, np. powiązane listy dla twoich wskaźników).
Kredyty: Nupul (do tworzenia diagramów)
źródło
Z mojego doświadczenia wynika, że chodzi o wkład i opinie. Chcesz uzyskiwać informacje w jak największej liczbie form, a informacje zwrotne na temat swoich błędów tak szybko, jak to możliwe.
Z mojego doświadczenia, mój dyplom CS był bardzo suchy, bardzo formalny i całkowicie bezwartościowy w nauczaniu jakiegokolwiek programowania. Uczęszczałem na dwa-trzy wykłady tygodniowo, a jeśli go nie dostaniesz, to w zasadzie to wszystko - wykładowca ma kolejną klasę do nauczenia i nie może pozostać, aby ci pomóc. I jest szansa, że jeden facet rozumie to w określony sposób, a on nauczy go w określony sposób i to wszystko, więc jeśli nie myślisz tak jak on, nigdy go nie zrozumiesz. Co gorsza, ponieważ prawdopodobnie rozumie miliard innych pokrewnych pojęć, prawdopodobnie sformułuje je w kategoriach tych innych pojęć, które mogą być o wiele za daleko lub nawet nie w materiale kursu.
Poszedłem do Stack Overflow i zapytałem na kanale czatu C ++ i otrzymałem pięć różnych wyjaśnień w ciągu pięciu minut. Wszystkie były specjalnie dostosowane do mnie i dokładnie takiego problemu, jaki miałem, więc nie jest zaskoczeniem, że jeden z nich uderzył w moją stronę i dostałem to. Częstotliwość uczenia się na podstawie informacji zwrotnych na żywo od wielu ekspertów znacznie przewyższa to, co można uzyskać ze źródła suchego papieru.
Idealnie więc zrób sobie przerwę, a wtedy znajdziesz małą lub średnią grupę podobnie myślących ludzi, którzy nie mają nic lepszego do roboty i rozmawiać z nimi na żywo. Nawiasem mówiąc, Stack Overflow to doskonałe miejsce, aby uzyskać tego rodzaju wysokiej jakości szybkie informacje osobiste.
źródło
Bez kolejności książki, znajomi i czytanie dobrze udokumentowanego kodu są dobrymi źródłami. Praktyka jest jedynym sposobem na naukę: spróbuj napisać małe testy jednostkowe. Na przykład, w przypadku wskaźników napisz kod, który obsługuje ciągi: odwróć ciąg, odwróć każde słowo w ciągu, przetestuj palindrom, zamień literę na liczbę ...
Zadawaj pytania dotyczące wymiany stosów ...;>
źródło
Praktyka czyni mistrza! (i tak lepiej). Po prostu próbuj i staraj się używać tylu różnych źródeł i zmysłów, ile możesz:
Źródła: Książki, Internet, Grupy użytkowników, przyjaciele, Uczenie się wideo, za pomocą stron, które pozwalają przetestować trochę „kodu”, takiego jak jsfiddle (głównie HTML),
Rubular (wyrażenia Ruby),
SQlzoo do wypróbowania sql,
jslint dla javascript,
pad kodu dla wielu języków.
Aby pamiętać o abstrakcyjnych rzeczach, rozważ mneomikę - używają ich lekarze!
Uważaj się za uczącego się przez całe życie i bądź pokorny, a możesz posunąć się daleko.
źródło
Musisz zmienić skupienie na chwilę, a nie 5 minut. lub 5 godzin ... Mam na myśli coś takiego jak 1 dzień bez patrzenia na ten kod .... po prostu się wyluzuj ... przeczytaj coś innego ...
Jeśli mają to zrozumieć teraz ... poprosić o pomoc przyjaciół lub tutaj =)
źródło
Co robią wszyscy inni w IT.
Korzystam z wyszukiwarki, aby wyszukać powiązane pojęcia, których nie rozumiem, dopóki nie mogę ponownie przejść do tematu, który początkowo chciałem zrozumieć.
Możliwe, że nie rozumiesz również w pełni stosu, sterty, zmiennych automatycznych, procesu kompilacji C ++, asemblera, pamięci zarządzanej i pamięci niezarządzanej.
Większa przejrzystość tych i innych pojęć związanych ze wskaźnikami prawdopodobnie wszystko wyjaśni.
źródło
Nie ma pewnego szybkiego sposobu na zrozumienie tematu. Twój sukces zależy od tego, ile kontekstu zabierasz ze sobą w trakcie studiów. Będziesz mieć szczęście, że znajdziesz kogoś, kto wyjaśni Ci różne rzeczy z twojego punktu widzenia. Podobnie jak maszyny Turinga, każdy może dowiedzieć się, co wiedzą inni, i tylko kwestia wytrwałości i akceptacji, że frustracja jest naturalna.
Pamiętam ogromną trudność ze wskazówkami. Zrozumiałem to dopiero, gdy bardzo cierpliwy koleś wyjaśnił mi to, jakbym był kompletnym idiotą. Czasami to wystarczy.
źródło
Jest to powszechny problem w nauce i nauczaniu. I jak powiedzieli inni, nie ma pewnej metody obejścia tego. Jest to podstawowa prawda, że wszyscy uczymy się inaczej, ponieważ nasze mózgi są inaczej połączone w subtelny, ale kluczowy sposób.
Uczenie się generuje nowe połączenia neuronowe. Bez zbytniego zagłębiania się w neuronaukę (o której wiem prawie nic), generowanie nowych połączeń wymaga różnych rodzajów ekspozycji na koncepcję dla różnych ludzi. Wypróbuj różne kąty, czytaj / słuchaj / oglądaj różne wyjaśnienia. Ćwiczyć!
Jeśli to nie zadziała, odłóż problem na bok: możesz po prostu pominąć inną część układanki, która raz nabyta sprawia, że pierwotny problem wydaje się oczywisty.
Znasz te aha! chwile? To wtedy twój mózg właśnie nawiązał nowe połączenie. Tak dzieje się uczenie się.
Nawiasem mówiąc, każdy dobry nauczyciel wie o tym. Wytyczne dotyczące pisania technicznego często stwierdzają, że każdą koncepcję należy wyjaśnić co najmniej dwa razy, używając różnych słów (i być może tekstu między nimi). Jeśli zwrócisz uwagę, będziesz w stanie zauważyć, że wszyscy dobrzy pisarze naukowi przestrzegają tej zasady.
Niestety, zbyt wielu nauczycieli to ignoruje i wyjaśnia wszystko tylko raz. I nawet jeśli uda im się znaleźć eleganckie wyjaśnienie z wielką metaforą, to po prostu nie wystarczy.
źródło
Przeczytaj odpowiednią dokumentację, a Google swoje wątpliwości.
Spróbuj napisać przykłady kodu, zobacz, co robią.
Spróbuj wykonać kod podczas debugowania i obserwuj go krok po kroku.
Jeśli nadal nie rozumiesz określonego zachowania, zapytaj kogoś osobiście lub na takiej stronie internetowej. Jeśli wypróbowałeś wszystkie powyższe, powinieneś mieć wszystkie elementy, aby ułożyć dobre pytanie. Nie wstydź się :)
Myślę, że to w zasadzie to, co robią wszyscy inni.
źródło
Kontynuuj badania i ucz się. Miałem ten sam problem z różnymi innymi aspektami programowania. Ale rozmawianie z innymi i czytanie artykułów ostatecznie prowadzi do momentu „AHA”. Zasadniczo jest to inny post na blogu lub odpowiedź SO, która przedstawia informacje, które mogę śledzić.
Zasadniczo, szukaj dalej i bądź cierpliwy, zanim zrozumienie nadejdzie.
źródło