Wypróbuj

Nozbe - get things done

i zwiększ swoją produktywność

Jak zostać JavaScript Ninja?

10

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 😀

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 😉

CHCESZ DARMOWEGO E-BOOKA?

Jeśli chcesz otrzymać mojego e-booka: Rozmowa Kwalifikacyjna - pytania z podstaw JavaScript zostaw mi swój e-mail:

Oprócz tego co poniedziałek dostaniesz maila z listą moich wpisów z poprzedniego tygodnia!

  • Paweł

    Przypomniał mi Pan o książce, którą nabyłem, a leży i się kurzy 🙂
    http://helion.pl/ksiazki/tajemnice-javascriptu-podrecznik-ninja-john-resig-bear-bibeault,tajani.htm
    Czym prędzej zabieram się za nią i zostanę JS Ninja!
    Pozdrawiam, fajnie się czytało 🙂

    • Konrad

      Paweł ta książka js-ninja jest nic nie warta. lepiej przeczytaj js wzorce czy js mocne strony, albo cokolwiek innego:)

      • Bartłomiej Dybowski

        rzeczywiście, muszę potwierdzić – zacznij od tych wymienionych przez Konrada, a tę zostaw sobie na później – dodatki do tej książki są wartościowe ale najpierw lepiej przeczytać przede wszystkim JavaScript Mocne Strony

    • Paweł

      Dzięki za poradę koledzy.
      Zajrzę sobie do tej drugiej wymienionej przez Konrada. 160 stron pochłonę w mgnieniu oka więc wrócę tutaj z własną opinią 🙂 Jeszcze raz dzięki za szybki feedback 🙂

  • W zasadzie nie ma co się do tych porad przyczepić. Każdemu juniorowi o nich mówię i staram się motywować do pracy. Co do książki, to niestety polska wersja książki jest tragiczna. Natomiast wersja angielska jest już dużo lepsza. Warto do niej zajrzeć.

  • Mad

    Po przeczytaniu posta Konrada, muszę się do tego odnieść.Przeczytałem książkę (w wersji angielskiej) z linka, który zmieścił Paweł. Świetna książka, wyjaśniająca mechanizmy JavaScript w sposób dogłębny. Według mnie pozycja obowiązkowa dla osób, które piszą w JS. Nie wiem skąd komentarz, że jest nic nie warta? Szkoda odstraszać osoby, które mogłyby z niej skorzystać. Książka nie nadaje się jednak dla osoby totalnie początkującej, bo może nie zrozumieć pewnych zagadnień.

    Burczu, imo opisałeś jak być dobrym programistą JS w sposób ogólny (szerszy temat). Ninja to osoba znająca doskonale język oraz mechanizmy wykonywania. Różnicą między zwykłym programistą JS, a ninja to sposób pisania kodu – wydajność, odporność na błędy, sposób zapisu kodu itp. Wystarczy popatrzeć na kogoś kod, żeby zauważyć różnicę 🙂 Github oraz blogi nie mają nic do tego. Tak przynajmniej ja rozumiem określenie ninja języka X 🙂

    • Bartłomiej Dybowski

      Co do książki to osobiście mam co do niej mieszane uczucia. Na pewno da się z niej coś wynieść ale moim zdaniem na pewno nie jest to najlepsza książka o JS jaką czytałem.

      Co do drugiej części komentarza to ogólnie masz rację natomiast nie zgadzam się co do części „GitHub i blogi…” – nie chodzi o to ze jesteś ninja jak to robisz tylko to jest jeden ze sposobów osiągnięcia poziomu ninja – post był o tym jak zostać ninja a nie o tym kim jest ninja 😉

  • Paweł

    Witajcie,
    wracam po przeczytaniu wstępu proponowanej przez was książki tj. „Javascript – mocne strony”.
    Powiem szczerze, że robi wrażenie 🙂 Mimo małej ilości stron widać tutaj niesamowite skompresowanie wiedzy. Czytam każde zadanie w wielkim skupieniu, aby czegoś nie przeoczyć. Podejście autora do javascriptu także mi się podoba(brak kontroli typów jest zaletą) 🙂
    Na początku problem sprawiały diagramy „szynowe” ale da się do nich przyzwyczaić 🙂
    Dzięki za poradę w sprawie książki, której zakup uważam za dobrze spożytkowane pieniądze.

    Pozdrawiam.

  • SirRay

    Tak, tak. Niech każdy pisze blogi, potem będzie ciężko znaleźć jakiś fajny. Już teraz ciężko to zrobić, bo dużo ludzi to sobie do serca wzięło i tworzy byle co. Poza tym nie każdy dobry programista jest też i dobrym edytorem i nauczycielem więc nie będzie potrafił w dobry i przystępny sposób przekazać swojej wiedzy.

    • Akurat tutaj się nie do końca zgodzę. Oczywiście nie każdy programista jest dobry w nauczaniu i pisaniu ale z drugiej strony jeśli wiele osób spróbuje blogowania to raz, że w tej większej ilości blogów da się znaleźć więcej dobrych treści a dwa, że często jak ktoś nie spróbuje to się nie dowie czy się do tego nadaje… Poza tym moim zdaniem blogowanie rozwija umiejętność przekazywania wiedzy a w pracy to ważny skill (skoro jesteś już doświadczony to fajnie jakbyś czegoś umiał nauczyć juniorów).