Czy opłaca się uczyć się podstaw języka podstawowego, gdy podstawowym celem jest poleganie na jego ramach? [Zamknięte]

10

Pamiętaj, że to nie jest kolejna „Ile [ wstaw tutaj język programowania ] powinienem wiedzieć przed przejściem do [ wstaw tutaj framework ]?” Chciałbym wiedzieć, jak korzystne jest nauczenie się tych zaawansowanych koncepcji języka programowania, gdy przez większość czasu zamierzasz polegać na jego ramach. Na przykład zacząłem używać jQuery i najpierw poświęciłem trochę czasu, aby naprawdę zrozumieć podstawowe pojęcia dotyczące Javascript. Dodatkowo mam kilka książek podstawowych (na przykład Tajemnice ninja Javascript) na półce, które naprawdę zagłębiają się w język. Gdy przeglądam strony, okazuje się, że spora część nie przenosi się na jQuery, ponieważ moim głównym celem jest manipulacja DOM.

To samo można powiedzieć o Ruby i RoR. Czy te książki czynią mnie ogólnie lepszym programistą? Prawdopodobnie. Czy te tematy pomogą mi stać się znacznie lepszym dzięki swoim ramom? Trudno mi to zrozumieć.

Carl Edwards
źródło
7
Podczas debugowania często pomaga zrozumieć, co dzieje się za kurtyną. Poza tym, uczę się głównie nowych rzeczy, kiedy spotykam się z potrzebą i cieszę się nią.
marczellm
2
W tym rodzaju jestem z marczellm. Moje ogólne podejście jest takie, że masz tyle kodu, który będziesz w stanie stworzyć w swoim życiu, a języki, dialekty i frameworki wychodzą zasadniczo szybciej niż możesz napisać kod. Jeśli jesteś już w stanie pracować z kilkoma językami i frameworkami, prawdopodobnie prawdopodobnie chcesz je przestudiować w oparciu o potrzebę wiedzy lub znajomości, a nie coraz bardziej naciągane paski.
Panzercrisis,
Powiedziałbym, że JEST to kolejne pytanie „ile” - na pewno ma tę samą odpowiedź, a mianowicie, że jest to ruchoma skala w zależności od konkretnych okoliczności.
jmoreno
jQuery to trochę szczególny przypadek. Jest to prawie inny język specyficzny dla domeny osadzony w JavaScript. (prawie ale nie cicho). Zastanawiam się, ze względu na tę specjalność to pytanie lepiej byłoby napisać konkretnie o jQuery i JavaScript (zamiast jQuery i javascript tylko będąc przykładem)
Lyndon White

Odpowiedzi:

27

Jego ważniejsze uczyć się języka niż jest zbadanie ram. Naucz się dobrze języka, a będziesz dobrze korzystać z frameworka.

W kolejności ważności (najważniejsze w pierwszej kolejności):

  1. Podstawowe zasady programowania - algorytmy, struktury danych itp.
  2. Paradygmaty językowe - OOP, funkcjonalne itp.
  3. Funkcje językowe.
  4. Składnia i ramy.
Robert Harvey
źródło
2
Wiele, jeśli mogę, wielu pozytywnych opinii na ten temat. Programista będzie ograniczony zarówno pod względem projektu, jak i możliwości zaawansowanej pracy tym, czego nie zna.
Peter Smith,
8
5. Kod idiomatyczny. Przeczytaj kod innych osób i naucz się stylów tego konkretnego języka.
Joshua Taylor
5
@JoshuaTaylor Myślę, że postawiłbym to na ważniejsze niż frameworki, ponieważ kod idiomatyczny prawdopodobnie będzie używany w frameworku, a uczenie się ich osobno jest bardziej przydatne - idiomy językowe nie są częścią frameworka, a użytkownicy frameworka prawdopodobnie dodał więcej
Izkata
Pozytywnie oceniany, ponieważ potwierdza moje osobiste uprzedzenia. Niemniej jednak chciałbym mieć twoje źródła.
Aaron Hall,
5

Oczywiście. Pytanie brzmi: „czy ta korzyść jest warta zainwestowania czasu?”. Twierdziłbym, że zawsze tak jest, ale z pewnością zależy od ciebie i twojego środowiska, ponieważ wpłyną one na korzyść (ile twoje środowisko zyska na twojej wiedzy) w porównaniu z kosztem (jak długo zajmuje ci nauka i jak dobrze ty absorbować wiedzę).

Dlaczego miałbym twierdzić, że jest to korzystne? Ponieważ nie zawsze będziesz w ramach. Nawet najbardziej kompleksowe ramy są nadal częścią większego ekosystemu. Nie możesz sam wykonywać połączeń jQuery. Musisz wiedzieć, jak powiązać skrypt ze stroną, jak działa, jak współdziała z rzeczami, które chcesz zrobić. To może być „podstawa” w twojej książce, ale zawsze odkryłem, że głębsza wiedza pomogła mi przyspieszyć kod i na pewno szybciej debugować problemy. Ramy czy nie.

Poza tym prawdziwy świat ma paskudny zwyczaj ingerowania w programistów. Pewnie, Twoim zadaniem może być dzisiaj manipulacja DOM, ale jutro może być konieczne połączenie niektórych obiektów SWFO. Posiadanie dobrego fundamentu pozwoli ci łatwiej dostosować się do zmieniającego się otoczenia.

I na koniec, chociaż możesz chcieć tylko manipulować DOM, bardzo niewielu programistów pracuje już samodzielnie. Twoi rówieśnicy prawdopodobnie będą robić bardziej zaawansowane rzeczy z językiem programowania. Musisz być w stanie odczytać ten kod, a przynajmniej nie spieprzyć go.

Telastyn
źródło
1

Prawdopodobnie potrzebujesz trochę równowagi w ilości, której powinieneś się nauczyć. To nie wszystko albo nic, więc włóż w to tyle czasu, ile możesz. Musisz zadać sobie pytanie, jakie ryzyko chcesz zaakceptować, opierając się na ramach.

To wspaniałe, jeśli wszystko, czego potrzebujesz, to uruchomienie minimalnego żywotnego produktu. Nie będzie ogromnej wydajności ani skomplikowanych wymagań. Zakłada się, że wybrałeś framework, który poradzi sobie z tym, co próbujesz zbudować.

Z drugiej strony spektrum jest, jeśli pracujesz nad dość dużą / złożoną aplikacją i znajdziesz coś, co framter radzi sobie źle. Nic wielkiego, więc musisz nauczyć się więcej JavaScript. Musiałbyś poświęcić temu czas, gdybyś nauczył się go od samego początku. Ale czy masz czas? Czy będziesz w stanie nauczyć się podstaw pod presją nieterminowego wykonania zadania? Nikt nie może na to odpowiedzieć.

Wyrównanie go jest prawdopodobnie najlepszym wyborem. Tempo się. Naucz się JavaScript, jeśli możesz. Możesz nie zostać ekspertem, ale to nie jest powód, aby go ignorować. Ramy zostały stworzone przez ludzi, którzy chcieli rozwiązać problem podobny do twojego, ale nie dokładnie taki jak twój.

JeffO
źródło
1

Ogólnym obszarem, który cierpi z powodu zagłębiania się w ramy, zanim dobrze zna podstawowy język, jest wydajność. Dotyczy to wszystkich języków / platform ( Hibernacja n + 1 wybiera itp.). Oto wiele z porad JQuery i sztuczek, które opierają się (między innymi) o dobrej znajomości języka podstawowego w odniesieniu do świadczenia usług:

Użyj zamiast Zamiast natywnych funkcje są zawsze szybsze niż jakikolwiek pomocnik. Ilekroć zapętlasz obiekt otrzymany jako JSON, lepiej przepisz JSON i spraw, aby zwrócił tablicę, przez którą łatwiej zapętlasz.

Używaj identyfikatorów zamiast klas Znacznie lepiej jest wybierać obiekty według identyfikatora ze względu na zachowanie biblioteki: jQuery używa natywnej metody getElementByID () przeglądarki, aby pobrać obiekt, co powoduje bardzo szybkie zapytanie.

Shivan Dragon
źródło
0

Myślę, że twoje pytanie opiera się na fałszywej przesłance. Zaczynasz od stwierdzenia, że ​​planujesz polegać na frameworku, a następnie pytasz, czy warto uczyć się poza nim. Więc oczywiście doszedłeś do wniosku, że nie warto. Ale to założenie jest błędne. Nie powinieneś skupiać się na użyciu frameworka. Powinieneś skupić się na użyciu odpowiedniego narzędzia do odpowiedniej pracy . jQuery jest naprawdę dobry w niektórych zadaniach, podobnie jak Ruby on Rails lub jakikolwiek inny framework. Ale nie zawsze są odpowiednim narzędziem do wszystkiego. Uczenie się języka poza ramami, a nawet uczenie się o innych ramach, mikrostrukturach lub innych narzędziach, pomaga zidentyfikować, kiedy Twój szkielet staje Ci na drodze, a nie pomaga, i daje możliwość szukania innych,

Więc moja odpowiedź brzmi: tak, jest to absolutnie tego warte, ponieważ ramy nie są odpowiednim narzędziem dla każdego zadania.

jpmc26
źródło