Szymon Ludwikowski

Wprowadzenie do bloga - powtórka przed ReactJS

Początki w nauce programowania front-endowego bywają trudne, zwłaszcza jeśli to dla Ciebie pierwsze zetknięcie z branżą IT. Moim zdaniem systematyczność jest podstawą nauki. Dlatego w kalendarzu powinniśmy zaplanować czas na codzienne zdobywanie wiedzy, by osiągnąć swój cel.

Nauka

React

JavaScript

Sprawdź również moje inne projekty :)
4 marca 2023
Rozpoczęcie samodzielnej nauki programowania bywa trudne. Wymaga ono od nas wielu godzin pracy a przede wszystkim samodyscypliny. Codziennie zmagamy się z HTML, CSS i JavaScriptem. Zbudowanie podstawowych aplikacji wymaga od nas wielu godzin pracy. Gdy wkładamy w pracę tyle wysiłku i zaangażowania, każde, nawet to małe zwycięstwo jest powodem do dumy. Jednak lista rzeczy 'do opanowania' rozrasta się w niebywałym tempie. Często gubimy się w tym wszystkim, nie wiemy, co robić dalej. Pytamy ekspertów, co należy zrobić. Opinie wśród wielu z nich są jednogłośne — DOGŁĘBNIE ZROZUMIEĆ PODSTAWY.
To jak istotna jest wiedza na temat fundamentów, uświadomiłem sobie dopiero podczas kursu Akademia Samouka, w tym miejscu pragnę podziękować twórcom kursu, za przygotowanie tak konkretnej dawki wiedzy opartej na Video, materiałach PDF i samodzielnych zadaniach do wykonania.
Wracając do tematu, kurs zaczynałem z myślą, że już wiele potrafię i kolejnym krokiem w moim planie będzie nauka Reacta, a następnie znalezienie wymarzonej pracy. Żyłem z myślą, że wreszcie nadejdzie czas na ujarzmienie tego potężnego narzędzia. Jednak kolejne tygodnie z AS uświadamiały mnie, jak bardzo byłem w błędzie, dotarło do mnie, jak niewiele jeszcze umiem i jak długa droga przede mną. Postanowiłem usiąść i przeanalizować, czy poświęcenie jeszcze kilku miesięcy na gruntowną powtórkę informacji i zgłębienie tajników JavaScript nie byłoby rozsądniejszą inwestycją niż rzucanie się w wir frameworkowego hype’u.
Zaczynając od najważniejszej z zalet takiej decyzji, znajomość języka pozwala na rozwiązywanie trudniejszych problemów. Tworząc bardziej rozbudowane aplikacje, natrafimy na funkcjonalności, których logika wymaga zastosowania bardziej złożonych konstrukcji niż wariacje pętli for wspomagane podstawowymi metodami. Tutaj na pomoc przychodzi dogłębne zrozumienie zasad programowania obiektowego oraz funkcyjnego, które znacznie poszerza nasze możliwości. Ponadto, w przypadku problemów z działaniem tworzonej aplikacji, znajomość mechaniki języka pozwala na szybsze naprawianie błędów, jak również pozwala nam na bardziej precyzyjne wyszukiwanie rozwiązań napotykanych przez nas problemów u 'Wujka Google'. Jedną z największych zalet frameworków jest dodawanie dodatkowych warstw abstrakcji, które pozwalają na szybsze postępy przy budowie programu. Niewielka z tego korzyść, jeżeli większość zaoszczędzonego czasu poświęcimy na szukanie rozwiązań prostych problemów. Doliczając przerwy na uderzanie głową w ścianę z powodu narastającej frustracji, może się to naprawdę przełożyć na naszą produktywność.
Freamwork definiowany jest jako rodzaj struktury, szkieletu oprogramowania oraz zestaw narzędzi, którego używa się w procesie tworzenia aplikacji webowych, tworzenia stron www, usług webowych, zasobów internetowych, czy internetowych interfejsów API. Definiuje strukturę, architekturę, ogólny mechanizm działania oraz dostarcza wiele przydatnych bibliotek, które pomagają w późniejszej pracy nad projektem. Jego dobra znajomość bardzo przyspiesza pracę. Nie musimy się zastanawiać nad wieloma aspektami, ponieważ zrobił to już ktoś inny za nas, a my możemy skupić się na problemie, który mamy rozwiązać. Kolejnym atutem jest fakt, że aplikacje pisane na bazie frameworka są do siebie bardzo podobne. Struktura i ogólne mechanizmy są wymuszone przez framework, dzięki czemu osobie, która nie jest zapoznana z projektem, będzie o wiele łatwiej się odnaleźć, ponieważ wie, czego może się spodziewać i gdzie szukać konkretnych elementów aplikacji.
W praktyce oznacza to, że aplikacja nie jest pisana zupełnie od podstaw i wyeliminowany jest odwieczny problem wymyślania koła od nowa.
Nie można zapominać, że język zmienia się znacznie wolniej niż jakikolwiek oparty na nim freamwork. Ponadto jego czas życia jest zawsze krótszy niż czas życia języka. Najprościej mówiąc, skoro używamy JavaScriptu od 1995 roku, to możemy spodziewać się, że będzie z nami przez kolejne kilkanaście lat. Jeżeli to do Ciebie nie przemawia, to pozwolę sobie przytoczyć pewien cytat.
“Inwestowanie pieniędzy to proces angażowania zasobów w sposób strategiczny, tak by osiągnąć określony cel.”
W przypadku frameworków wchodzimy na grunt spekulacyjnego inwestowania w akcje startupów. Oczywiście, drugi rodzaj inwestycji może przynieść znacznie większe zyski, jeżeli znajdziemy się w odpowiednim miejscu w odpowiednim czasie. Mimo wszystko, porównując skalę ryzyka, nietrudno domyślić się, co jest rozsądniejszym rozwiązaniem. Zwłaszcza na początku kariery.
Blog Post Image
Co do wad, musimy dołożyć jeszcze większą liczbę zagadnień do wspomnianej wcześniej listy ‚do opanowania’. Patrząc krótkoterminowo, wymaga to znacznie więcej wysiłku i wytrwałości. Aby otrzymać te same rezultaty co osoba, która wspomaga się narzędziami, będziemy musieli spędzić znacznie więcej godzin przy klawiaturze. Istotnym minusem jest ciągła walka z pokusą porzucenia tego nastawienia, którą dzień w dzień napędzają gorące dyskusje i zachwyty, na które można natrafić na blogach czy forach dyskusyjnych. Trzeba oswoić się z myślą, że omija nas coś niesamowitego, coś, co cały czas jest na wyciągnięcie ręki. Jeżeli sami zarządzamy swoim kształceniem, ciężko określić moment, w którym faktycznie opanowaliśmy podstawy. Łatwo wpaść w pułapkę wiecznego podważania tego, czy jesteśmy gotowi na kolejny duży krok na naszej ścieżce rozwoju.
Jak widać, wszystko przemawia na rzecz metodycznego podejścia do nauki. Aby cały proces powtórki przebiegał sprawnie, postanowiłem przygotować plan opracowania interesujących mnie zagadnień. Wygląda on następująco:
  1. Łańcuchy szablonowe
  2. Funkcje strzałkowe
  3. Destrukturyzacja
  4. Klasy
  5. Moduły
  6. Klasy
  7. Iteratory i Generatory
  8. Obietnice
  9. Map/Set
  10. Rozszerzenia tablic, obiektów, ciągów
Blog Post Image
Każdemu z wyżej wymienionych zagadnień poświęcę jeden wpis. Znajdziecie w nim opis teoretyczny, przykłady, omówienie dobrych praktyk oraz linki do materiałów, które pozwolą na dalszą naukę.
Do zobaczenia w przyszłym tygodniu. Zgodnie z rozkładem zaczniemy od Łańcuchów szablonowych.