Już miałem dziś sobie odpuścić i nie publikować żadnego posta… Nie miałem dziś weny (pisałem to w środę wieczorem) ani mocy, żeby sklecić więcej niż kilka zdań. Z pomocą jednak przyszedł mi Maciek Aniserowicz, który od jakiegoś już czasu publikuje regularnie vlog na youtube. Tutaj znajdziesz jego kanał -moim zdaniem warto go śledzić, bo prawie codziennie pojawiają się ciekawe treści dla programistów. Ale wracając do tematu… Otóż jak codzień, obejrzałem jego nowe wideo i pod jego wpływem wpadłem na pomysł na tego krótkiego posta!

No dobra, zanim przejdę dalej, obejrzyj powyższy filmik (tylko 9 minut):

Już? OK. To teraz przejdę do tego o co mi chodzi!

Ucz się języka, a nie frameworka

Maciek w swoim filmie generalnie radzi, żeby na początku swojej przygody z programowaniem wziąć jakikolwiek framework i po prostu zacząć się go uczyć. No i tutaj się jak najbardziej zgadzam - na początku kariery nie znaczenia od czego zaczniesz. Oprócz tego w wideo pada też sformułowanie “framework driven development” i to na ten wątek chciałbym Ci przede wszystkim zwrócić uwagę w dzisiejszym wpisie.

Ogólnie rzecz biorąc już w kilku moich wcześniejszych wpisach (na przykład tutaj) zwracałem uwagę, że na początku swojej programistycznej “kariery” każdy programista powinien skupić się przede wszystkim na rozwinięciu swoich umiejętności programistycznych. Jednak zauważyłem, że bardzo wiele osób ma tendencję do skupianiu się tylko na klepaniu ficzerów w danym frameworku. Osoby takie nie przywiązują jednocześnie dużej wagi do tego jak coś działa i dlaczego.

Jak tak o tym dłużej pomyślę, to mam wrażenie, że taka sytuacja ma miejsce szczególnie przy frameworkach JavaScript… W sumie nie ma się czemu dziwić. Przez lata ten język miał wiele wad, które dopiero teraz, za sprawą ES6 i kolejnych wersji zostają powoli rozwiązywane. Nie jest więc szczególnie zaskakujące, że kolejne frameworki wprowadzały różne swoje mechanizmy mające “naprawić” to co w samym języku było złe lub niedorobione.

Dlaczego to ważne?

Powyższe powoduje, że bardzo łatwo jest, znając w miarę framework i korzystając ze wsparcia Stack Overflow, spokojnie przez dłuższy czas się “ślizgać”. Zadania wykonane? Wykonane! Szef zadowolony, kasa się zgadza i wszyscy zadowoleni…

Ale czy na dłuższą metę to się opłaca? Moim zdaniem średnio… Po pierwsze, tak jak było powiedziane w filmie - przykłady w dokumentacji frameworka mają za zadanie pokazać jego możliwości. Zdarzyć się może, że jako skrót myślowy będą tam zawarte jakieś anty-wzorce, których jako Junior lepiej żebyś nie powielał.

Po drugie, moim zdaniem jeśli umiesz wykorzystywać tylko framework, masz mniejsze szanse aby zrobić kolejny krok w swojej karierze. Jeśli znasz tylko framework, ciężko będzie Ci przeskoczyć do pracy w innym frameworku. Będzie tak jakbyś uczył się zupełnie nowego języka programowania. Znając natomiast dobrze język będzie Ci znacznie łatwiej… Tak przecież uczy się każdy człowiek: jeśli rozumie jak coś działa to znacznie łatwiej jest mu to zapamiętać.

Z tych właśnie powodów, na każdej rozmowie kwalifikacyjnej będziesz przepytywany raczej pod kątem dobrej znajomości danego języka programowania. Każdy rekruter wychodzi bowiem z założenia, że nawet jeśli pracowałeś przez lata np. w Angularze ale dobrze znasz JavaScript, to nie będzie dużego problemu abyś szybko nauczył się Reacta/Vue/Backbone (niepotrzebne skreślić) czy każdego innego frameworka używanego w danej firmie.

Podsumowanie

Dlatego też Juniorze… ucz się języka, a nie frameworka! Gwarantuję, że wyjdzie Ci to na zdrowie, Twoja kariera przyspieszy, a Ty sam będziesz czuł się pewniej czy to na kolejnych rozmowach kwalifikacyjnych czy po prostu na codzień, w pracy.