Wydaje się, że trzeba pamiętać wszystkie rodzaje składni, aby móc programować. Jeśli nie ma się dobrej pamięci do zapamiętywania nazw, trudniej będzie nauczyć się programować?
Wydaje się, że trzeba pamiętać wszystkie rodzaje składni, aby móc programować. Jeśli nie ma się dobrej pamięci do zapamiętywania nazw, trudniej będzie nauczyć się programować?
Odpowiedzi:
Jeśli używasz go codziennie, składnia języka nie jest tak trudna, jak myślisz. W końcu staje się bardzo łatwe. Zapamiętywanie wszystkich różnych funkcji bibliotecznych może być znacznie trudniejsze i nie sądzę, że większość ludzi pamięta więcej niż te najczęściej używane, ale jest to w porządku, jeśli masz dostęp do Internetu, książki lub czegoś innego, co „ pamięta „wszystkie inne szczegóły dla Ciebie.
Wydaje się, że trzeba pamiętać wszystkie rodzaje składni, aby móc
programowaćmówienie językiem naturalnym.Jeśli ktoś nie ma dobrą pamięć do pamiętania
nazwysłowa, to będzie trudniej nauczyć sięprogramumówić?
Nie może być prawdą, że ludzie mają „naturalne” urządzenie z językami, prawda?
Nie może być prawdą, że mamy sprzęt neuronowy niskiego poziomu tylko do nauki języków, prawda?
Programowanie wykorzystuje sztuczne języki, które są zgodne z wieloma zasadami języków naturalnych.
Języki naturalne mają nieco większą elastyczność niż języki programowania.
gramatyka wciąż ścisła. zasady są bardzo, które Ale
Jeśli umiesz mówić, możesz nauczyć się programować bez zapamiętywania niczego więcej niż tego, co zapamiętałeś, kiedy nauczyłeś się mówić.
Jeśli mówisz o pamięci krótkoterminowej, to tak . programista musi być w stanie żonglować wieloma bitami informacji jednocześnie podczas programowania / rozwiązywania problemów.
Jeśli mówisz o pamięci długoterminowej, to nie do końca . Istnieje wiele instrukcji i odniesień + narzędzi, które mogą znacznie pomóc w przywołaniu informacji. Z pewnością zapamiętanie tych długoterminowych informacji sprawi, że będziesz szybszym programistą (ogólnie), ale nie jest to warunkiem koniecznym.
Dobra pamięć jest absolutnie niezbędna, ale nie z oczywistych powodów.
Zapamiętywanie szczegółów na temat określonych algorytmów, bibliotek, nazw zmiennych itp. Jest bardzo przydatne, ale nie jest bardzo ważne. Masz Google, DuckDuckGo, strony podręcznika, dokumentację specyficzną dla języka i inteligentne edytory, które pomogą Ci we wszystkich powyższych. Pomaga, jeśli nie musisz polegać na tych kulach, ale poradzisz sobie, jeśli będziesz ich potrzebował od czasu do czasu.
Istotna jest pamięć, która polega na zachowaniu szczegółów tego, nad czym pracujesz, w aktywnej pamięci krótkotrwałej. Możliwość wizualizacji projektu, przepływu danych, algorytmów, struktur danych oraz ich wzajemnego oddziaływania w celu zrobienia tego, co robi twój produkt, oddziela programistę OK od wielkiego programisty. Kiedy aktywnie to robisz, masz wrażenie, że z powodzeniem żonglujesz ogromną liczbą piłek podczas jazdy na monocyklu.
Jest to często określane jako przebywanie w strefie . Przerwy, głupie pytania, szefowie potrzebujący raportów TPS wszyscy wstrząsają tą strefą.
Im lepsza jest twoja pamięć, tym łatwiej jest dostać się do strefy, tym łatwiej jest tam pozostać i łatwiej jest wrócić do niej po przerwie.
Jeśli masz problemy z tego rodzaju pamięcią, sugeruję nauczenie się technik medytacji i sztuczek pamięci, ponieważ im łatwiejsza staje się twoja pamięć, tym większy sukces odniesiesz jako programista.
Idę pod prąd i powiedzieć tak . Dobra pamięć to niesamowity zasób programisty. Moja pamięć zawsze uważałem za zobowiązanie programistyczne, więc wybrałem kilka sztuczek, aby zrekompensować mój handicap:
Powinieneś być w stanie zapamiętać, jak ta zmienna (której wcześniej używałeś 3 wiersze) Jeśli nie możesz nauczyć się korzystać z Intellisense (lub jakiejkolwiek formy autouzupełniania jest w edytorze lub IDE).
Powinieneś być w stanie szybko zapamiętać, co robiłeś podczas ostatniej pracy nad tym projektem. To mogło być kilka dni temu, mogło być tuż przed lunchem. Jeśli nie możesz, naucz się zapisywać różne rzeczy . Trzymaj ze sobą notatnik i pisz co robiłeś (aś), rzeczy do zrobienia (TODO) i rzeczy, o których musisz pamiętać o tym, jak dopasowuje się bieżący kod.
Debugowanie i kontrola jakości są trudne. Idealnie byłoby zachować bardzo szczegółowy notatnik na temat kroków, które podjąłeś, próbując odtworzyć błąd lub coś debugować. Wiem, że powinienem to zrobić, ale nadal mam z tym problem.
Mam nadzieję że to pomoże!
Guerrilla Guide to Interviewing (wersja 3.0) to powszechne odniesienie, w którym inteligentne notatki i robienie rzeczy są ważnymi punktami programowania. Smart obejmuje pewne umiejętności pamięci, ale niekoniecznie tyle, ile myślisz.
Intellisense może bardzo pomóc w składni, jeśli potrzebujesz pomocy po tej stronie. Wiedza o tym, jak się uczysz, abyś mógł szybko zastosować sens tego, czego się uczysz, w znaczący sposób, jest ważniejszy niż umiejętność odpowiadania na pytania z ciekawostek.
Uważam, że zapamiętywanie nazw jest raczej inną funkcją poznawczą niż zapamiętywanie procesów, które różni się od zapamiętywania słowników. Zdarzały się przypadki osób, które doznały urazów mózgu, które całkowicie pozbawiły zdolność zapamiętywania nazwisk, a poza tym były w stanie doskonale funkcjonować w inny sposób.
Powiedziałbym więc, że umiejętność zapamiętywania nazw niezwiązanych z nauką języków programowania.
Przydałoby się jednak pamiętać logiczne wzorce, zasady i słownictwo.
Nie. Głębokość pamięci narzędzi (Intellisense, Google, kompilatory, generatory kodów) jest nieskończona w porównaniu do ludzkiej pamięci. Więc programista z dobrą pamięcią nie jest dużo lepszy niż ten z dziurą w głowie.
Programiści tak naprawdę potrzebują „maksymalnej prędkości skupiania”, gdy przełączają się między poziomami abstrakcji. Im szybciej możesz, tym lepiej jesteś programistą. Niektóre mają szybkość bicia serca, taką jak 500 ms, a wraz z nadejściem pierwszej fali krwi do mózgu jesteś skupiony. Niektóre mają zegar skupienia zaokrąglony do cyklu palenia, około 2 godzin. Niektórzy potrzebują porannego prysznica, więc około 24 godzin. itp. Różnica między dobrym a złym programistą została kiedyś zadeklarowana 1:80 razy temu, a różnica ta tylko się powiększa.
Nie, musisz tylko zrozumieć, jak działa Google, aby uzyskać to, czego chcesz
Mam okropną pamięć, ale moje umiejętności Googlowania są niesamowite ^ _ ^
Z całą powagą, o ile wiesz, gdzie znaleźć składnię, nie musisz jej pamiętać. Do tego właśnie służy intellisense, pliki pomocy, przewodniki, Internet itp.
Przede wszystkim nauka programowania jest trudna dla wszystkich. Dobra pamięć pomaga na pewno. Ale poświęcenie i zamiłowanie do uczenia się przez całe życie są cenniejsze. Uczenie się składni jest jak wszystko inne, powtarzanie.
W umiejętności programowania nie ma nic magicznego ani nadludzkiego. Po prostu poświęć na to około 10 000 godzin ... a będziesz mistrzem jak każda inna umiejętność. Oczywiście to 10 000 godzin treningu, a nie na ślepo i odrętwiająco powtarzające się błędy z przeszłości.
Napisałeś ten post po angielsku, z odpowiednią składnią. Oczywiście pamiętasz, jak używać języka. Musisz tylko nauczyć się nowego języka i używać go wystarczająco często, aby cały czas dobrze go rozumieć. W przeciwieństwie do języków zorientowanych na ludzi, języki programowania komputerowego zawsze dadzą Ci znać, gdy użyjesz niepoprawnej składni, więc w rzeczywistości jest to łatwiejsze. :-)
Zgadzam się, że istnieje wiele różnych rzeczy, które przeciętny programista może wiedzieć, aby wykonać swoje zadania, po prostu pomyśl o wszystkich słowach, składniach, technikach, które powinieneś zasadniczo kontrolować, aby zbudować prostą stronę internetową (w interfejsie: html, css, javascript (możesz liczyć również niektóre frameworki Js jako jquery), ajax, na zapleczu: Php lub ASP lub ASP.Net i nie zapomnij o bazach danych, mySql lub SqlServer lub Oracle lub MongoDB itp. Istnieje ogromna lista języków, paradygmatów, sintaksji, wzorów itp., Nie można zapamiętać ich wszystkich.
Uważa, że to, co czyni dobrego programistę, to ćwiczyć, ćwiczyć z algorytmami bardziej niż z językami, i dzięki temu w końcu zapamiętasz rzeczy, których najczęściej używasz, dla reszty zawsze jest google = P
Świetna pamięć może przeciąć obie strony.
Jeśli potrafisz żonglować dziesiątkami fragmentów informacji w swojej głowie, będziesz miał znacznie łatwiejszy czas na zrozumienie (i mam nadzieję, że przepisanie) tego okropnego fragmentu kodu, który jest krytyczny dla projektu, ale tak skomplikowany, że wszyscy inni się boją dotknąć tego.
Z drugiej strony ten okropny fragment kodu, który ma kluczowe znaczenie dla projektu, ale jest tak skomplikowany, że wszyscy boją się go dotknąć, został prawdopodobnie napisany przez kogoś z niesamowitą umiejętnością żonglowania dziesiątkami bitów informacji. Jeśli masz świetną pamięć, pracuj bardzo ciężko, aby docenić elegancję prostoty.
Nauka składni języka programowania nie wymaga dużej pamięci. Jak powiedzieli inni, składnia jest tak wzmocniona w twojej pamięci, że szybko staje się drugą naturą. Czy zapomniałeś kiedyś, po której stronie drogi jedziesz? Które symbole arytmetyczne oznaczają dodawanie i odejmowanie? Jeśli nie, opanujesz najczęstsze części składni wybranego języka bez większych problemów i będziesz mógł wyszukać mniej powszechne bity, gdy się pojawią.
Niektóre biblioteki mają setki lub tysiące funkcji, klas i / lub metod. Nauka obcemu wydaje się niemożliwym zadaniem, aby nauczyć się korzystać z całej tej funkcjonalności. Ale prawie zawsze w bibliotece jest jakaś podstawowa struktura. Zamiast próbować zapamiętać wszystkie te funkcje, inteligentny programista próbuje zrozumieć, w jaki sposób biblioteka jest zorganizowana i co może zrobić. Po wykonaniu tej czynności zwykle łatwo jest znaleźć potrzebną funkcję, gdy jej potrzebujesz.
Krótko mówiąc, pamięć jest znacznie mniej ważna niż zrozumienie.
To zależy. W Javie i .NET biblioteki standardowe są w pewnym stopniu hierarchiczne i dobrze udokumentowane. Dlatego jeśli wiesz, że masz do czynienia z siecią, przejdź do system.net w C #, a stamtąd możesz przejść do konkretnych potrzebnych obiektów / połączeń. Pod tym względem nie musisz więc zapamiętywać szczegółów.
W twoim własnym programie chodzi o to, jak organizujesz / nazywasz rzeczy. Jeśli używasz nazw takich jak $, b $, c $ ... lub g $ z Podstawowego starego, to powodzenia. jeśli nazywasz rzeczy tak, jak myślisz o nich, np. Imię, nazwisko jest o wiele łatwiejsze. Wiele języków ma standardy nazewnictwa, które również pomagają. Na przykład w Javie istnieje konwencja setX, getX do pobierania / ustawiania określonych atrybutów klasy, a także konwencje wielkich liter. Więc jeśli wiesz, że osoba ma imię, to prawdopodobnie nazywa się ona firstName, a getter / setter to prawdopodobnie getFirstName i setFirstName ..... Więc te konwencje bardzo pomagają ...
Także krótsze metody / funkcje pomagają ci jednocześnie zachować mniej głowy. A używanie prawidłowych nazw pomaga uniknąć konieczności szukania. Na przykład, jeśli nazywasz rzeczy tym, co robią, to podczas czytania jednej procedury, która wywołuje getMaximumValue, prawdopodobnie nie będziesz musiał czytać getMaximumValue, aby dowiedzieć się, co robi ... Ale ponieważ funkcje / metody stają się dłuższe i bardziej zagnieżdżone, to lepsza pamięć zdecydowanie pomaga.
Pamięć nie jest aż tak ważna. Jeśli w ogóle się o to martwisz, regularnie zapominam rano portfel lub klucze w moim domu. Przywołuję każdego pod niewłaściwym nazwiskiem przynajmniej raz (łącznie z moją rodziną i dziewczyną). Po prostu cały czas zapominam robić rzeczy w domu.
Pod koniec dnia zasady programowania nadal będą ci przypominać „nigdy nie zapomnisz, jak jeździć na rowerze”. Szczegółowe informacje i szczegóły dotyczące implementacji nie są tak ważne. Zawsze możesz je Google.
Od Joel On Software o produktywności programisty
Wydajność zależy od możliwości żonglowania wieloma drobnymi szczegółami w pamięci krótkotrwałej naraz.
Tak więc pamięć krótkotrwała jest bardzo ważna dla programisty, któremu powierzono zadanie krytyczne.
Ale nie sądzę, żeby pamięć długoterminowa miała tak duże znaczenie.
Po szybkim przeczytaniu nie widziałem, żeby ktokolwiek mówił o pamięci w ogólnym sensie programowania, a nie jako pojedyncze zadanie pisania programu.
Pamięć jest przydatna do dwóch rzeczy:
Zapamiętywanie podstawowej semantyki / bibliotek:
Można to łatwo zastąpić powtórzeniami i Google. IOW, ilość pamięci, z którą się rodzisz, musi być absurdalnie niska, aby nie móc pokonać tego problemu.
Zapamiętywanie kontekstu w dużych programach:
Oto gdzie jest sztuczka. W miarę jak programy stają się większe (a ty stajesz się starszy), decyzje, które podejmujesz, całkowicie odnoszą się do twojej wiedzy o systemie i możliwości jego odzyskania w ciągu kilku milisekund, jeśli ma to być przydatne w dyskusjach projektowych, debugowaniu, reagowanie na sytuacje kryzysowe operacyjne itp. Gdy pojawi się potrzeba, żadna liczba wpisów w dokumentacji / wiki nie pomoże, a jedyny sposób, w jaki będziesz mógł korzystać z „czarodzieja” zespołu. Jest to jeden z powodów, dla których główni inżynierowie są tak bardzo cenieni / płaceni. Większość z nich może w tym momencie nie spędzać całego czasu na kodowaniu, spędzają więcej czasu na utrzymywaniu pełnego obrazu i stosowaniu go do wszelkich problemów / ulepszeń. Ci dobrzy utrzymują kontakt, wykonując masę CR i zmianę kodowania tu i tam / prototypowanie nowszych wersji.
IOW, możesz być rozsądnym programistą z samym numerem 1, ale jeśli kiedykolwiek będziesz następnym Linusem, lepiej mieć dużo pamięci, przynajmniej na tyle, aby objąć rozwiązany problem.
Z moich obserwacji mogę nawet powiedzieć, że pamięć robocza jest prawie wprost proporcjonalna do wartości osoby.
Małe zastrzeżenie na zakończenie: jeśli masz pamięć Eidetic, ale zero / niską moc intelektualną w stosowaniu tej logiki, nie będziesz dobry dla projektu niż kamera.
Jeśli masz trudności z zapamiętaniem nazwisk osób, które spotkasz, nadal możesz zostać świetnym programistą.
Cały czas zapominam ludzi. Jestem starszym programistą z prawie dekadą doświadczenia. W moim przypadku moja straszna pamięć słuchowa jest kompensowana przez świetną pamięć wzrokową.
Mimo to podstawowym warunkiem dobrego programisty jest umiejętność abstrakcji. Bez względu na to, ile i jak mało pamiętasz, jeśli nie rozumiesz pojęcia zmiennej i jak używać jej w programie, nie zostaniesz dobrym programistą.
Sugeruję, abyś spróbował jednego krótkiego kursu programowania lub ukończył samouczek języka Python, aby zobaczyć, jak ci się podoba.
To powinno dać ci dobry pomysł na to, czy programowanie to kariera, którą możesz być zainteresowany.
Mówię stanowczo TAK!
Obecnie uczę się JAVA i C #. Wszystkie testy są zamknięte, więc dla JAVA jest to w 100% z pamięci kodującej wszystkie aplikacje na egzaminach.
Co więcej, robi się coraz trudniej. Jestem teraz w punkcie, w którym muszę zacząć używać sztuczek pamięci, takich jak mnemoniki itp.
Powiedziałbym, że wysokie IQ, dobra wiedza ogólna, dobre słownictwo, polimatyzm, wyższa wiedza matematyczna, pisanie za pomocą dotyku i dobra pamięć to atuty programisty.
Znam bardzo sprytnych programistów, którzy nie potrafią pisać na maszynie ani wykonywać wyższych zadań matematycznych itp. Dzięki temu mogli być znacznie lepsi.