Jak pamiętasz programowanie powiązanych rzeczy? Czy miałeś wrażenie, że napotkałeś błąd, który miałeś przed sobą kilka lat temu i mógłbyś przysiąc, że znasz przyczynę, ale teraz o tym zapomniałeś?
Czy pracowałeś kiedyś z parsowaniem łańcucha xsl, ale teraz nie pamiętasz dokładnie, jakie są funkcje łańcucha z xsl i musisz zacząć od zera? A może zapominasz o niektórych funkcjach z Apache Commons, takich jak „filtrowanie kolekcji według jakiegoś predykatu”, którego z pewnością używałeś w przeszłości.
Jak to robisz? Próbowałem założyć blog, ale kiedy tworzę aplikacje, nigdy nie znajduję czasu na aktualizację bloga lub pisanie o swoich doświadczeniach. Ponadto korzystanie z wiki jest fajną rzeczą, ale potem trudno mi było zachować czystą separację między nimi, ponieważ wiele razy musiałem zmienić post na blogu, aby dodać nowe informacje na ten temat. To sprawiło, że pomyślałem, że powinienem umieścić ten temat na wiki zamiast na blogu.
Czy masz jakieś systemy, które pomogą Ci zapamiętać swoje doświadczenia związane z programowaniem? Jaka jest twoja konfiguracja?
źródło
Odpowiedzi:
Zapominanie rzeczy jest normalne. Nie pamiętanie niektórych sztuczek, które pomogły ci w przeszłości, jest również normalne. To pierwszy krok, który należy potwierdzić. Istnieją zatem sposoby na „przechowywanie” wiedzy w celu dalszej rewizji:
źródło
Mój klucz to
Różnorodność
Powtórzenie. Kiedyś może być ulotny. Widok 100. wydarzenia robi różnicę!
Pamięć palcami . Pamiętam kod znacznie lepiej, kiedy napisałem go kilka razy.
Biblioteka kodów - przechowuj osobisty zapas kodu i sztuczek, których używałeś i widziałeś.
Centralizacja. Trzymam 1 plik ze wszystkimi moimi nazwami użytkowników (setki) na 1 komputerze. Stosuję do tego zabezpieczenia.
Dyscyplina - wspomniałeś, że nie masz czasu / wysiłku na aktualizację własnego bloga itp. Musisz po prostu ciężej pracować i upewnić się, że to robisz.
Akceptacja - umiejętności i techniki oraz rzeczy, których nauczyłeś się w tygodniu, będą świeże. Niektóre rzeczy, które powiedziałeś 3 lata temu, będą trudne do zapamiętania. To normalne, ponieważ mózg robi miejsce na więcej.
Wiele zmysłów - czasami używam mnemoniki, czasem upuszczam obraz z kluczowymi pojęciami rysowanymi w charakterystyczny sposób. Czytam, słucham podcastów, oglądam filmy, używam kolorów w edytorach. Im więcej rozsądku używam, tym lepiej.
Mnemoniki , np. Polecenie css border Tarball (TaRBalL) TopRightBottomLeft. Używam też kolorów i kształtów do zapamiętywania słów i motywów. Często im bardziej dziwaczne, tym bardziej niezapomniane!
Kontynuacja użytkowania - jest to efekt „wykorzystaj lub strać”. Cała wiedza z czasem zanika. Czas ++ Zanikanie ++
Sieć wymiany stosów - używam przepełnienia stosu w wielu obszarach, aby próbować zachować tyle różnych umiejętności i technik, które są „aktualne” i „zapamiętane”, nawet jeśli nie używam ich w mojej obecnej pracy / projekcie.
Dropbox - przechowuję małe pliki z elementami związanymi z pamięcią
Książki - nadal lubię głupców i dotyk fizycznych książek. Mam też wiele rozpalaczy i innych książek technicznych on-line, do których mogę się odwołać w dowolnym miejscu. Oczywiście moja biblioteka techniczna może być dostępna w dowolnym miejscu, gdy jest cyfrowa, co jest ogromne.
Efekt Google - żadna lista elementów nie byłaby kompletna bez wspomnienia o tym. To więcej o tym, czego nie musisz pamiętać - ponieważ możesz google go znaleźć i go znaleźć. To także ważna uwaga. W miarę jak coraz więcej ludzi opanowuje ten sposób zdobywania wiedzy, spada potrzeba zapamiętywania danego faktu. Jest to jednak również „podniesienie poprzeczki” dla pracowników wiedzy, którzy odkrywają, że w obecnym środowisku konieczne jest głębokie zrozumienie pojęć. Oczywiście, które z CME !
Mój własny blog
Moja własna strona zakładek .
źródło
W ciągu ostatniego roku Evernote stał się programem, bez którego nie mogłem się obejść. Kopiuję wszystko do Evernote. Fragmenty kodu, zrzuty ekranu, dane kontaktowe, historia wersji i tak dalej. Więc nie muszę pamiętać tylu szczegółów. Wiem, że gdzieś tam jest.
Podstawowa wersja jest darmowa. Więc spróbuj!
źródło
Sherlock Holmes powiedział kiedyś coś w stylu: „Ludzki umysł jest jak strych. Jeśli wypełnisz go drobiazgami, nie będzie miejsca na nic naprawdę ważnego. Dla wszystkich tych szczegółów mamy encyklopedię”.
Jeśli nie masz pamięci fotograficznej i związanych z nią problemów, nie pamiętasz wszystkiego. Zbuduj zestaw zasobów, osobistą bibliotekę informacji i technik rozwiązywania problemów.
Możesz nie pamiętać odpowiedzi i możesz nawet nie pamiętać, gdzie jest zapisana odpowiedź. Ale jeśli wiesz, jak rozwiązać problem, zawsze możesz znaleźć odpowiedź ponownie. Mamy nadzieję, że obejmie to dokumentowanie rozwiązania w sposób umożliwiający wyszukiwanie i wielokrotnego użytku.
źródło
Cóż, może mój przypadek jest szczególny ... ale: Mam każdy kawałek oprogramowania, które napisałem od 76 na moim laptopie, programy, skrypty, konfiguracje itp. Z biegiem czasu (muszę wyznać) moje obciążenie pamięci zmieniło się z zapamiętywania „ rzeczy ”do zapamiętywania metadanych dotyczących rzeczy. Jasne, wiele z nich nie jest już istotnych, ale uważam, że trudność polega na posiadaniu pomysłów, a nie na ich wdrażaniu. Tak więc metadane są w zasadzie indeksem tego, jakie „pomysły” można znaleźć gdzie.
Kiedy uderzam w nową grę, obecnie mam tendencję do znajdowania dużej bazy kodu, która wykorzystuje nowe aspekty, i spędzam trochę czasu z bazą kodu. Studiuję go, staram się, aby działał w środowisku testowym, a następnie próbuję go rozszerzyć, aby móc wprowadzić nowe narzędzia (biblioteki, języki, technologie kompilacji itp.). Ten proces pozwala mi zmapować moje wzorce, pomysły na przykład. Może poświęcę trochę czasu na wykonanie kilku takich mini-projektów i jako odniesienie wybiorę ten, z którym najbardziej czuję się w domu. Kiedy to zrobię, w końcu zmienię przeznaczenie tej bazy kodu, aby zbudować szkielet moich własnych aplikacji.
Kiedy osobiste archiwa zawodzą, trafiam w sieć, do której ostatnio dodałem SO. Dostanę trafienie w „nowe” koncepcje (nowe z osobistego punktu widzenia) na SO przed Gaaglem. W rzeczywistości rzadko (obecnie) wracam do gaagle. Pierwsza odpowiednia odpowiedź tam jest zazwyczaj link do kilku interesujących pytań na temat SO.
źródło
Podobnie jak inni, śledzę rzeczy za pomocą zakładek.
Kiedyś używałem Delicious, ale teraz przeniosłem się do Pinboard.
Ale nie używam tego w taki sposób, jak kiedyś. Wygląda na to, że każdy problem programistyczny, na jaki natrafiam, to niewielkie wyszukiwanie w Google. W ciągu ostatniego roku zacząłem używać Stackoverflow jako jednego z moich wyszukiwanych haseł!
Ilekroć przychodzę znaleźć pytanie SO dotyczące szczególnie trudnego problemu, lubię je śledzić, więc jest to kolejna forma zakładek.
źródło
To absolutnie normalne, aby nie pamiętać drobniejszych szczegółów. Jednak powinieneś się martwić zapominaniem o najważniejszych rzeczach. Jeśli naprawiłeś błąd, powinieneś mieć przynajmniej koncepcyjne wyobrażenie o tym, co było problemem.
Zakładki, blogi, zeszyty doskonale nadają się do przechowywania tych drobniejszych szczegółów. Ale ostatecznie nadal musisz pamiętać o większym „obrazie”. W przeciwnym razie ponowne odkrycie tych „drobniejszych” szczegółów będzie o wiele trudniejsze.
źródło
Zachowaj własne notatki, wyrażając rzeczy własnymi słowami. Twoja grupa docelowa to Ty , nikt inny, więc możesz pozwolić sobie na zwięzłość. (Wpis na blogu naprawdę musi być jednak czytelny i dobrze zredagowany, co jest czasochłonne). Jeśli znajdziesz dobre artykuły / posty na blogu, zapisz adres URL, ale nadal wyjaśniaj to własnymi słowami.
Prowadzę dużą hierarchię małych, krótkich plików o jednym temacie. Pliki są w większości dowolne, ale przechodzę do korzystania z Markdown. Szukaj za pomocą grep / find. Trzymam folder w moim DropBox, więc zawsze jest dla mnie dostępny.
źródło
Każdy może mieć swój własny styl, do którego jest przyzwyczajony. Dla mnie dzielę wiedzę na kategorie:
Książki
Artykuły
Kolekcje (rzeczy, które mnie interesują, ograniczone do kilku akapitów - faktycznie kopiuję informacje i czasami adnotuję źródło) - Na przykład: OODevelopment, Generics, ... itd.
Kod wielokrotnego użytku (tekst i fragmenty) - każdy w osobnym pliku w ramach dobrej organizacji drzewa. Np. Węzeł DataValidation zawierałby wiele technik sprawdzania poprawności różnych elementów danych, każdy w osobnym pliku
Zrealizowane projekty
Osobiste samouczki wideo (czasami nagrywam filmy wideo o tym, jak robić rzeczy, gdy w grę wchodzi zbyt wiele kroków).
Spinki do mankietów
Organizuję powyższe według tematów, przy czym każdy temat ma odpowiednią strukturę drzewa.
Czasami rzeczy się pokrywają, ale udaje mi się znaleźć to, czego chcę.
Ponadto za pomocą Google Desktop wyszukiwanie tekstu lub plików jest bardzo szybkie.
źródło
Korzystam z OneNote. Mam wiele różnych języków programowania, z którymi pracuję, więc mam różne sekcje dla każdego języka i różne zakładki dla różnych typów notatek.
Teraz zaczynam także używać Stack Exchange.
źródło
Musisz zachować równowagę między pamięcią a „przechowywaniem”. Jeśli polegasz zbyt wiele lub na niewłaściwych rzeczach w pamięci, == problem, jeśli zbytnio polegasz na przechowywaniu wszystkiego == bezużyteczne.
Moje zasady:
-Nie upiększaj się! napisz ważne rzeczy, nawet jeśli rozmiar czcionki różni się w twoim dokumencie :)
-Nie przesadzaj. Przekonaj się, że orginalizacja myśli nie wymaga 10-poziomowej struktury drzewa
-Spędził CZAS, znajdując, co nagrać. możesz znaleźć 5 rozwiązań tego samego problemu. w momencie, gdy napiszesz je WSZYSTKO, stracisz. Zapisz 1-2, które NAPRAWDĘ Ci pomogą. NIE pozwól sobie powiedzieć, że teraz nie masz na to czasu. Jest to dość dziwne, ale dotyczy: „Spędził czas, aby uzyskać czas”
Nie lubię umieszczać tych rzeczy w jakimś „produkcie”, ponieważ chcę mieć pewność, że będzie istniał 20 lat później i nie chcę migrować na różne platformy.
Co więc zrobić?
Wszystko, co możesz uzyskać przy minimalnym wysiłku.
Na przykład zainstaluj phpBB i napisz do siebie. otrzymujesz funkcjonalność wyszukiwania od razu po wyjęciu z pudełka, możesz pobrać dane za pomocą prostych instrukcji SQL i umieścić je w plikach. możesz mieć cronjob eksportujący swoje myśli w plikach do archiwizacji. Więc jeśli kiedykolwiek będziesz chciał umieścić je w innym systemie, jesteś gotowy przy minimalnym wysiłku.
Innym problemem jest to, że nikt nie gwarantuje, że znalezione linki będą działać jutro (wyobraź sobie 5 lat później). Spróbuj więc powielić informacje:
-Pobierz film z pewnym rozszerzeniem przeglądarki i dołącz go na przykład do postu phpBB (lub wordpress lub cokolwiek innego).
Spójrz prawdzie w oczy: jesteś programistą i tworzysz aplikacje dla innych osób. Zrób prosty dla siebie i zostań Twoim najlepszym klientem.
mój 2c
źródło
Krótka odpowiedź:
Ćwicz, ćwicz, ćwicz.
Nie tak krótka odpowiedź:
Jak pamiętasz jak chodzić? Jak pamiętasz jak mówić? Przyznaję, że te umiejętności nie są dokładnie takie same i nie wymagają pozornie encyklopedycznej wiedzy (przynajmniej dla początkujących), ale używasz tego samego: pamięci.
Chociaż przyznaję, że dla początkujących programowanie może wydawać się niemożliwie dużym przedmiotem, gdy zaczniesz go studiować, stanie się jak każdy inny przedmiot, gdy opanujesz podstawy.
Gdy tylko to zrozumiałem, zacząłem rozkładać rzeczy na coraz mniejsze części (moja własna, osobista wersja abstrakcji). W ten sposób coś, co wydawało się trudne do zapamiętania, staje się łatwiejsze (przynajmniej u mnie tak jest).
Zapisywanie rzeczy pomaga bardziej niż myślisz (pracując w edukacji, wiem, że może to mieć ogromny pozytywny wpływ na retencję). Zwłaszcza, jeśli umiesz to wyrazić własnymi słowami - zamiast kopiować dosłownie. Jeśli możesz sparafrazować lub zrównać to z czymś, co już znasz, jeszcze lepiej.
Na przykład: W języku C # obiekty String są niezmienne. Oznacza to, że ilekroć każę mojemu programowi zmienić zawartość obiektu łańcuchowego, tak naprawdę dzieje się tak, że oryginalny łańcuch jest niszczony (technicznie jest on umieszczany na najniższym poziomie modułu wyrzucania elementów bezużytecznych). Dokładnie tak, jak gdy artysta popełnia błąd przy tworzeniu marmurowej rzeźby - nie można go zmienić, dlatego jest zniszczony i powstaje nowy.
To nie jest świetny przykład, ale pokazuje podstawy tego, o co mi chodzi.
Dokumentacja jakości również pomaga. Coś, co kiedyś powiedział mi mój wykładowca Programowania 101:
Dobre książki są również doskonałym źródłem. Kiedyś inny nauczyciel powiedział mi, że jeśli książka nie ma indeksu (a jest ich wiele, tam nie ma), to nie warto kupować.
Google może być niesamowitym zasobem, ale pamiętaj o programach do kopiowania i wklejania. Unikaj witryn, które zawierają tylko fragment kodu bez żadnego wyjaśnienia. Wolę czytać cały artykuł na temat małych bloków kodu, w ten sposób odchodzisz wiedząc dokładnie, co ma zrobić blok kodu, jak to robi i dlaczego programista napisał to w ten sposób.
Mam nadzieję, że to pomaga
źródło