
Zastanawialiście kiedyś jak zostać JavaScript Ninja? I co to w ogóle znaczy być Ninja w dziedzinie JavaScript’u? Ja się akurat zastanawiałem i nawet co nieco w tym kierunku poszperałem :) Podczas tego szperania w internetach znalazłem mnóstwo porad i opinii na ten temat dlatego postanowiłem zebrać i przedstawić tylko te, które są według mnie najważniejsze - lista jest na pewno niepełna i na bank nie będziecie mogli się powstrzymać żeby “zczelendżować” to co tutaj napisałem… Śmiało, temat jest dość subiektywny dlatego co człowiek to opinia. Zresztą myślę, że każdy ma swoją indywidualną drogę, a podane tutaj przykłady to tylko drogowskaz, wskazanie kierunku którym można podążać we własnym rozwoju…

Jak zostać JavaScript Ninja?
Zastanawialiście kiedyś jak zostać JavaScript Ninja? I co to w ogóle znaczy być Ninja w dziedzinie JavaScript’u? Ja się akurat zastanawiałem i nawet co nieco w tym kierunku poszperałem :) Podczas tego szperania w internetach znalazłem mnóstwo porad i opinii na ten temat dlatego postanowiłem zebrać i przedstawić tylko te, które są według mnie najważniejsze - lista jest na pewno niepełna i na bank nie będziecie mogli się powstrzymać żeby “zczelendżować” to co tutaj napisałem… Śmiało, temat jest dość subiektywny dlatego co człowiek to opinia. Zresztą myślę, że każdy ma swoją indywidualną drogę, a podane tutaj przykłady to tylko drogowskaz, wskazanie kierunku którym można podążać we własnym rozwoju…
Ok, jak zwykle dużo słów na wstępie… Poniżej znajdziecie kilka najtrafniejszych moim zdaniem porad, które pomogą wyjaśnić Wam jak zostać JavaScript Ninja lub chociaż jak przybliżyć was do tego celu.
Nauki JavaScriptu nigdy za wiele
I nie chodzi tutaj tylko i wyłącznie o czytanie książek takich jak “JavaScript. Mocne strony” czy “JavaScript. Wzorce“… Na pewno warto w ten sposób poszerzać swoją wiedzę. Ale równie ważne jest zgłębianie niuansów. Na przykład gdy napotykamy w codziennej pracy na jakiś problem to nie wystarczy “wygooglać” rozwiązania, ewentualnie dostosować do własnych potrzeb, a następnie zapomnieć… Przeciwnie, jeśli chcesz być “wymiataczem” to powinieneś jak najbardziej zgłębić źródło problemu! W ten sposób świetnie można poznać niuanse języka i w przyszłości umieć przewidzieć różne jego, wydawać by się mogło, nieprzewidziane zachowania. Zresztą to się tyczy chyba każdego języka programowania - w ten sposób po prostu zdobywamy doświadczenie.
Nie muszę chyba tutaj dodawać, jak ważne jest też zgłębianie rodzaju wzorców. I tutaj podobnie - praktyka i jeszcze raz praktyka. Bez tego ciężko jest rozpoznawać miejsca, w których użycie danego wzorca jest zasadne.
Poznawaj Frameworki! Różne!
W świecie JS nieustannie powstają coraz to nowe frameworki rozwiązujące taki lub inny problem, w taki lub inny sposób. Przez to oczywiście fizycznie nie da rady zapoznać się ze wszystkim. Jednak jeśli na co dzień pracujesz na przykład w AngularJS to moim zdaniem nie powinieneś się zamykać tylko w tym świecie. Na pewno dużo wniesie poznanie kilku innych konkurencyjnych rozwiązań. Dlatego sprawdź o co chodzi w dajmy na to BackboneJS. Napisz w nim coś swojego, dowiedz się doświadczalnie jakie są plusy i minusy danego frameworka.
Takie podejście ma moim zdaniem wiele plusów. Poznajesz zarówno słabe i mocne strony, w tym przypadku Backbone’a ale przez porównanie dowiadujesz się w czym Angular jest lepszy, a w czym gorszy. Inna sprawa to higiena umysłu - zawsze to dobrze zrobić poza pracą coś zupełnie innego, szczególnie jeśli robisz to już dłuższy czas i jest to dla Ciebie nużące. Jest też aspekt praktyczny - na pewno powiększasz w ten sposób swoją wartość na rynku pracy… :)
Czytaj blogi i pisz bloga
Ten punkt wiąże się trochę z poprzednimi. Aby być na bieżąco z nowościami, które pojawiają się jak grzyby po deszczu warto czytać blogi ludzi z branży. Czytanie blogów ma też znaczenie z punktu widzenia edukacyjnego - wiele osób (na przykład ja) opisuje na swoim blogu sposoby na rozwiązanie różnych problemów wraz ze szczegółowym opisem lub przedstawia różne wzorce projektowe.
Z własnego doświadczenia mogę również stwierdzić, że mocno rozwijające jest też pisanie własnego bloga. To właśnie jest coś co dodatkowo motywuje mnie do grzebania głębiej w problemach, które często napotykam podczas tworzenia kodu. Poza tym im więcej polskich blogów o JavaScript tym lepiej! ;)
Stwórz coś swojego i opublikuj to na GitHubie
Jeśli chcesz być na prawdę dobry w tym zawodzie (ogólnie programisty) to na pewno nie powinieneś się ograniczać do odbębniania obowiązkowych 8 godzin w biurze. Zachęcam do samodzielnego grzebania w kodzie po godzinach. Jak już pisałem przy frameworkach, jest to nie tylko rozwijające ale często też odświeżające i motywujące. Sam miewałem okresy w życiu zawodowym, że to co robiłem w pracy było na maksa dobijające i tylko dłubanie w domu w czymś o wiele dla mnie ciekawszym jakoś mnie ratowało przed rzuceniem wszystkiego w cholerę… Dla tego, szczególnie jeśli nie masz jeszcze gromadki dzieci na głowie to korzystaj aby móc później odcinać kupony od zdobytej wiedzy ;)
No a skoro już coś robisz, to efekty swojej pracy wrzucaj na GitHuba. Po pierwsze będziesz miał motywację by nie robić tylko akademickich przykładów tylko jednak coś przydatnego, a to z kolei bardziej zmotywuje Cię do działania i tak koło się zamyka :) Po drugie jeśli Twój kod będzie publiczny to będziesz dużo bardziej dbał o jego jakość - nie pokażesz przecież światu jakiegoś syfu, nie?! Po trzecie znów dwie pieczenie na jednym ogniu - będziesz miał co pokazać potencjalnemu pracodawcy, który widząc Twój nienaganny kod i świetne rozwiązania algorytmiczne z zastosowaniem odpowiednich wzorców projektowych na pewno z miejsca Cię zatrudni i obsypie mamoną oraz benefitami :D
Dołącz do projektu open-source lub start-up’u
Pierwsza z opcji wiąże się z poprzednim punktem. Jeśli nie chcesz lub nie masz pomysłu na coś swojego, możesz zamiast tego przyłączyć się do jakiegoś istniejącego, mniejszego lub większego projektu open-source. Możesz to zrobić choćby na wspomnianym GitHubie - za pomocą opcji “pull request” możesz zaproponować swoje zmiany do kodu tam udostępnianego.
Druga opcja tutaj opisywana to przyłączenie/zatrudnienie się w start-upie. Czym to się różni od pracy dla większej firmy? Start-upy cechują się tym, że zaczynają od zera jakiś innowacyjny projekt. Programiści pracujący przy nim mają więc dużo większe możliwości wpływania na zastosowane technologie/frameworki niż w większych firmach. Start-up to też większa ilość pracy do wykonania (często praca po godzinach) ale przez to też dużo doświadczenia do zdobycia. Jeśli więc jesteś na początku swojej drogi w tym zawodzie to moim zdaniem może to być dla Cienie świetna opcja…
Nie zaniedbuj HTML i CSS
JavaScript jest silnie związany z front-endem dlatego silą rzeczy w swojej pracy będziesz się musiał stykać HTML i CSS. Dlatego też nie traktuj tego po macoszemu tylko poświęć czas na naukę. Nawet jeśli nie masz zmysłu artystycznego to moim zdaniem wielkim grzechem jest jeśli nie wykazujesz dużej dbałości o wygląd front-endu, który oprogramowujesz. Osobiście nie znoszę zostawiać porozjeżdżanego UI mówiąc “to nie moja brocha, UI designer powinien się tym zająć”. Nie muszę umieć projektować interfejsu użytkownika ale powinienem umieć nad nim zapanować!
Jak zostać JavaScript Ninja - podsumowanie
Jak już wspomniałem, to co tutaj dziś napisałem traktujcie tylko jako drogowskaz. Na pewno jest wiele innych możliwości do zdobycia doświadczenia. Jeśli jednak zastanawiasz się jak zostać JavaScript Ninja to moim zdaniem podstawą jest doskonała znajomość języka i jego niuansów i to jest element, od którego trzeba zacząć i który moim zdaniem można osiągnąć stosując się do przedstawionych powyżej propozycji. Jeśli czyta to jakiś JavaScript Ninja to zachęcam go do podzielenia się swoimi doświadczeniami w komentarzach. Ja tam się za takiego jeszcze nie uważam, dlatego chętnie sam skorzystam z takich porad ;)