Jaka jest ścieżka do opanowania JavaScript? [Zamknięte]

18

Wiem, jak zaczynamy od JavaScript, wycinamy i wklejamy snippit, aby zyskać trochę funkcjonalności po stronie klienta lub weryfikacji.

Ale jeśli podążasz tą ścieżką, próbując wdrożyć bogate zachowanie interaktywne, nie potrwa długo, zanim zdasz sobie sprawę, że tworzysz Big Ball Of Mud.

Jaka jest zatem ścieżka do wiedzy specjalistycznej w programowaniu warstwy interakcji? Jakie książki, samouczki, ćwiczenia i procesy przyczyniają się do możliwości programowania solidnego, łatwego w utrzymaniu języka JavaScript?

Wszyscy wiemy, że praktyka jest ważna w każdym przedsięwzięciu, ale szukam ścieżki podobnej do odpowiedzi tutaj: /programming/2573135/

Eric Wilson
źródło
„Warstwa interakcji?”
Robert Harvey,
1
Moim zdaniem powinien być nowy tag: P
Mike
1
Kolejne pytanie, na które odpowiedź brzmi: ćwicz jak każda inna dziedzina, którą chcesz opanować. Ćwicz, ucz się od swoich rówieśników (tych, którzy są bardziej wykwalifikowani) i czy wspominałem o ćwiczeniach. Proces do opanowania języka programowania x jest taki sam, jak w przypadku języka programowania y, który jest taki sam, jak opanowanie rzeźbienia lub szydełkowania lub jakiejkolwiek innej branży.
Chris
1
@johnny: Kiedy możesz wyrwać wyjątek ze śladu stosu ...
TMN
1
@Chris - jeśli skorzystasz z linku, który zamieściłem, zobaczysz, że na takie pytanie można pożytecznie odpowiedzieć. Powiedzenie „odpowiedzią jest praktyka” nie jest pomocne. Wskaż kilka punktów orientacyjnych na użytecznej ścieżce, nie mów mi tylko, żebym zaczął chodzić.
Eric Wilson,

Odpowiedzi:

15

przeczytaj kod innych ludzi ( DUŻO ) i spróbuj zrozumieć, co robią i dlaczego to robią. Napisz własny kod ( DUŻO ) wypróbuj nowe koncepcje i pomysły, przede wszystkim graj i baw się dobrze. Najlepszym sposobem, aby coś poprawić, jest ćwiczyć, ćwiczyć, a następnie ćwiczyć trochę więcej.

Czytaj książki, samouczki, artykuły, blogi, kanały RSS itp.

Stwórz projekt do pracy w wolnym czasie. Jeśli nie możesz o czymś wymyślić, znajdź projekt open source, nad którym możesz być zainteresowany.

nie zniechęcaj się, a przede wszystkim pamiętaj, że „mistrzostwo” nie jest celem, ale podróżą - weź je we własnym tempie, baw się dobrze i ciesz się scenerią. Jeśli potraktujesz to zbyt poważnie, zostaniesz spalony, a to nie przyniesie nic dobrego.

Muad'Dib
źródło
7
Chciałbym, żeby to automatycznie odpowiedziała, gdy ktoś zapyta „jak się uczyć / opanować X”. Brzmi bardzo podobnie do tego, jak opanować matematyczny dowód lub udoskonalić powieść. Zobacz inne prace X, przećwicz X siebie, spłucz, powtórz -> Mistrz w X.
Chris
@Chris, Tak. To właściwie moja standardowa odpowiedź.
Muad'Dib,
Chociaż mogę powiedzieć, że pytania dotyczące tego, gdzie uzyskać dobre referencje / książki / materiały, to pytania, które lubię. Niedawno wziąłem na pytona i pytanie, które mieliśmy programmers.stackexchange.com/questions/12189/ ... Stwierdziłem, że jestem gwiezdny, żeby mnie uruchomić.
Chris
@Chris tak, ta odpowiedź jest bardziej ogólną radą i nie zawiera konkretnych kroków, które moim zdaniem mogą być bardzo obiektywne. Ja też lubię oglądać linki. Ale do tego właśnie służy Google, prawda?
Muad'Dib,
Racja, ale Google nie może zapewnić żadnej reakcji / wrażenia z materiału. Google robi dobrze, ale nie robi wszystkiego. Uzgodnione niezależnie. t
Chris
3

Po pierwsze, musisz wiedzieć, jaki będzie twój cel w nauce JavaScript. Jeśli chcesz tylko sprawdzić poprawność danych wejściowych i nieco ułatwić interfejs użytkownika użytkownikowi, to naprawdę nie musisz mieć dogłębnej znajomości języka, jeśli używasz frameworków takich jak jQuery .

To powiedziawszy, jeśli chcesz dobrze zrozumieć JavaScript, spróbuj napisać rozszerzenie do istniejącej struktury, która implementuje przydatne narzędzie.

Jeśli chodzi o książki i inne zasoby, tak naprawdę nie słyszałem wiele na temat przydatnych książek i ogólnie nauczyłem się tego języka, chociaż próbowałem rozwiązywać problemy i sprawdzać, czy mój kod jest czysty zgodnie z JSLint . Połączenie interesującego problemu (np. Rozszerzenia frameworka), JSLint i wystarczającej ilości czasu, aby uzyskać solidną praktykę, prawdopodobnie będzie najlepszym wyborem pod względem nauki języka.

rjzii
źródło
2

Zanim nauczysz się któregokolwiek ze szczegółów programowania (DOM itp.), Naucz się podstawowego języka. Możesz się uczyć na wiele sposobów - książek, filmów itp. Oczywiście będziesz musiał czytać i pisać kod.

ECMAScript (to nazwa standardu językowego - javascript odnosi się do kilku implementacji) jest bardzo interesującym językiem. Jest to dynamiczny, funkcjonalny i oparty na prototypach język obiektowy, dlatego powinieneś poświęcić trochę czasu na zrozumienie zasad tych paradygmatów.

Naucz się korzystać z interaktywnej konsoli w przeglądarce (w Chromium możesz uzyskać do niej dostęp, naciskając Ctrl+ Shift+ J), który jest podobny do narzędzi takich jak IRB i interaktywny interpreter Pythona. Jest to przydatne do testowania funkcji języka i debugowania.

Użyj JSLint aby sprawdzić jakość kodu.

Kiedy zaczniesz robić „prawdziwy” rozwój przy użyciu DHTML, ułatw sobie życie, korzystając z frameworka, takiego jak JQuery , aby poradzić sobie z frustrującymi problemami w różnych przeglądarkach.

david4dev
źródło
1

Można tu zastosować wiele technik, które czynią programistę ekspertem w danym języku, chociaż javascript ma kilka pereł, które pozwalają na niezwykłe efekty. Być może jedną z największych przeszkód, które musiałem pokonać przy użyciu javascript, było cofnięcie mojej mentalności programowania w języku „C”, co oznacza, że ​​tysiące małych funkcji było ciasnych w jednym pliku js.

Niektóre ogólne porady to abstrakty, gdy tylko możesz, i staraj się tworzyć zajęcia, kiedy tylko możesz zorganizować ogólne zachowanie. Utwórz nowe pliki js dla dowolnej funkcji, które można wykorzystać z dobrym skutkiem w innych plikach js (z uzasadnionego powodu) i, jeśli to możliwe, unikaj zmiennych globalnych. Gorąco poleciłbym nauczyć się jQuery, jeśli jeszcze tego nie zrobiłeś. To narzędzie, które pokochałem i teraz nie obejdzie się bez niego. Jest to niezwykle elastyczne rozszerzenie javascript, które pozwala ogromnie uprościć kod, co jest dobre dla uproszczenia i pozwala na szybkie i wydajne kodowanie. jQuery zawiera dużą bibliotekę wtyczek, która pozwala robić wiele rzeczy, które nie mogłyby być bardziej imponujące, gdybyś zrobił to we flashu. Sprawdzić interfejs użytkownika jQuerydla całego systemu motywów witryny, umożliwiając efektywną modyfikację całego układu witryny bez konieczności wykonywania wielu czynności. Zawiera wiele efektów animacji i poręczne kontrolki powszechnie stosowane na stronach internetowych (selektor daty, przycisk, pasek postępu itp.), Z których większość można aktywować za pomocą jednego wiersza javascript.

Mam nadzieję, że to pomaga!

Neil
źródło
1

Wiele z tego, co robisz w JavaScript, jest zasadniczo powiązane z DOM, CSS i kompatybilnością z przeglądarkami, więc zrozumienie DOM jest jednym z podstawowych wymagań do opanowania JavaScript.

Poznanie podstawowych funkcji języka, takich jak orientacja obiektowa oparta na prototypach, anonimowe funkcje i bardziej ogólne funkcje języka, takie jak pętle, warunki itp., Są kluczem do zrozumienia każdego czytanego kodu, który nie wchodzi w interakcje z DOM / CSS .

Będziesz także musiał nauczyć się standardowej biblioteki językowej, np. String i Math oraz innych podstawowych funkcji obiektu.

Powinieneś także przestudiować algorytmy, jeśli chcesz uzyskać prawdziwe i pełne zrozumienie tego, jak się rzeczy mają, i jak wdrożyć bardziej zaawansowane rozwiązania, ta wiedza ma podstawowe znaczenie dla zrozumienia zaawansowanego programowania i wykracza poza składnię specyficzną dla języka.

ocodo
źródło
1

Przeczytaj kod używanych bibliotek. Czytanie źródła jQuery lub Prototypu nauczy Cię przebojów na temat tego, co faktycznie dzieje się w javascript i dom. Badaj techniki stosowane przez biblioteki, abyś mógł je zrozumieć. Rozpocznij od przeczytania mikrostruktury na stronie http://microjs.com/ . Upewnij się, że patrzysz na rzeczywiste źródło, a nie tylko na pliki rozproszone. (jQuery ma kilkanaście plików źródłowych, ale są one składane w procesie kompilacji).

Sean McMillan
źródło
0

JavaScript jest obecnie stosowany w wielu obszarach programistycznych.

  • To jedyny język obecny w nowoczesnej przeglądarce.
  • Może działać na serwerze, dzięki node.js i silnikowi V8.
  • Może działać osadzony w urządzeniach mobilnych przez PhoneGap lub inne alternatywy.
  • Można go używać do tworzenia aplikacji Windows 8.

Dlatego uważam, że istnieje więcej specjalizacji javascript. Zależy to od tego, od czego chcesz zacząć, ale możesz być pewien, że każdy z tych 4 wymienionych wyżej elementów da ci inne wyzwanie - ok, może pola 8 i pola phonegap mogą być podobne, ale reszta jest inna -.

Jeśli mówimy o środowisku przeglądarki, poznanie, jak powinna być zorganizowana prawie każda aplikacja internetowa, może być jedną ze ścieżek. Podążam tą ścieżką i eksperymentuję z własnymi pomysłami, sprawdzając repozytorium git popularnych bibliotek organizacji kodu, takich jak dojo, szkielet, ember itp.

Jeśli mówimy o środowisku węzła js, to inna historia. Nie zajmujemy się minimalizacją i rozmiarem pliku. Tworząc całe aplikacje w węźle, budując systemy, strony, interfejs API REST, jest tam wiele rzeczy do odkrycia.

Jeśli mówimy o świecie mobilnym, przychodzi na myśl optymalizacja. Przyspieszone właściwości CSS3, animacje, zdarzenia dotykowe i próba użycia tej samej architektury co sieć z bardziej wyspecjalizowanymi komponentami interfejsu użytkownika to świetne rzeczy na początek.

Podsumowując, podobnie jak inni odpowiedzieli, eksperymentowanie z własnym kodem, a kodem innych jest najlepszym sposobem na zaangażowanie się, śledzenie nowości i kto wie, może wymyślenie kolejnej wielkiej rzeczy.

Kolejną rzeczą, która pomaga, jest praca w zespole i zrozumienie różnic między twoim sposobem a sposobem pisania kodu przez zespół. Praca w zespole programistów javascript zmusi cię do napisania lepszego kodu i udokumentowania go. Myślę, że nie ma lepszego sposobu na poznanie architektury aplikacji niż pisanie wiki o tym, co zamierzasz wdrożyć lub już zaimplementowałeś.

Vlad Nicula
źródło
-1

Nienawidziłem JavaScript, dopóki nie odkryłem jQuery. Teraz go uwielbiam i używam go cały czas. Prawdopodobnie za dużo.

bestattendance
źródło
Nienawidziłeś zgodności z DOM i przeglądarkami, a nie EcmaScript.
Raynos
jQuery sprawia, że ​​Javascript jest zabawny! +1
Dynamiczny