Jak zostać programistą webowym w 2018 roku? Jak zacząć, na co postawić?

Strona główna Aktualności
image

O autorze

Postanowienia noworoczne bywają różne, większość kończy się jednak podobnie. Przeważnie pod koniec stycznia. Wyjątkiem może być decyzja o nauce programowania, w szczególności witryn internetowych. To dobre postanowienie bez względu na okres roku. Jednym z powodów jest kwitnący rynek pracy dla web deweloperów, którzy mogą liczyć na ponadprzeciętne wynagrodzenie. Ostatnio mieliśmy w redakcji przyjemność rozmawiać z kolegą, który w dziewięć miesięcy nauczył się programować w technologiach webowych na tyle, że pozwoliło mu to zmienić ścieżkę kariery. Chcielibyście powtórzyć ten wyczyn?

Zanim sięgnięcie po książki, kursy albo samouczki, warto zrobić krok w bok i zastanowić się, co jest obecnie na topie. Technologie programistyczne zmieniają się szybko, a technologie pozwalające tworzyć nowoczesne usługi internetowe jeszcze szybciej. Zanim usiądziecie do nauki PHP, o którym słyszeliście w szkole, warto więc zrobić rozeznanie. Pod żadnym pozorem nie chcemy dezawuować PHP, niemniej ciężar pracy programistów webowych przemieścił się w ostatnim czasie w nieco innym kierunku. Równowaga pomiędzy frontendem (warstwą prezentacji stron) oraz backendem (warstwą pracy z danymi) uległa ostatnio sporej zmianie.

Jakie technologie i umiejętności bedą więc kluczowe dla frontendowców, backendowców i devopsów w 2018 roku?

Takie pytanie zadał sobie Kamran Ahmed, który na githubie umieścił bardzo ciekawą mapę drogową do zostania web deweloperem w 2018 roku. Ma mnóstwo bardzo celnych obserwacji, które postaramy się streścić i dodać trzy grosze od siebie.

Bez czego ani rusz...

Trzeba zacząć od tego, że pewne kompetencje będą Wam potrzebne bez względu na to, jaką drogę i narzędzia wybierzecie. Do tych kompetencji należy między innymi umiejętność posługiwania się gitem i ssh, znajomość protokołów HTTP i HTTPS, umiejętność pracy z wierszem poleceń, znajomość struktur danych oraz podstawowych algorytmów (niekoniecznie musi to być od razu sortowanie topologiczne skierowanego grafu acyklicznego, wystarczą prostsze rzeczy). Kiedy to opanujecie, czas zdecydować o tym, czy chcecie zostać frontendowcem, backendowcem czy devopsem.

Niezbędnik frontendowca

Ścieżka frontendowca zakłada znajomość HTML, CSS i JavaScript, przy czym jest to ledwie wierzchołek góry lodowej. Na bazie tych technologii, o których słyszał niemal każdy, zbudowano kolejne warstwy abstrakcji upraszczające tworzenie skomplikowanych i dużych projektów. I tak, podstawowa znajomość JavaScript pozwoli Wam na opanowanie jednego z frameworków takich jak Angular czy React (które będą na topie w 2018 i pewnie też w kolejnym roku). Podstawowa znajomość styli CSS pozwoli Wam opanować jeden z preprocesorów, np. Sass, oraz jeden z frameworków, np. Bootstrap.

Niezbędnik backendowca

W tym przypadku wybór technologii będzie miał dalej idące konsekwencje, niż w przypadku technologii frontendowych. Trudniej przeskoczyć tu z jednego środowiska do drugiego, jak np. z Reacta do Angulara. Możemy zacząć uczyć się PHP, C# (i generalnie .NET) lub Javy. W tych technologiach działa bardzo wiele istniejących projektów, szczególnie w Polsce. Warto jednak wiedzieć, że od pewnego czasu startupy i nowe zespoły stawiają na inne ścieżki, np. Go, Ruby (na tym działa nasze nowe forum), Python (ten zalicza wielki powrót, pojawi się niebawem jako środowisko skryptowe w Excelu) czy w końcu node.js, który na poniższym wykresie powinien być zaznaczony na żółto, przynajmniej jako nasza rekomendacja.

Kiedy już nasza pierwsza aplikacja będzie działać, przyjdzie czas na to, by ją uruchomić i opakować. Tutaj niezbędna będzie podstawowa znajomość jednego z serwerów webowych, wśród których prawdziwy prym z wielu powodów wiedzie ostatnio nginx. Coraz bardziej konieczna staje się znajomość technologii kontenerów, wśród których autor roadmapy wskazuje na Dockera. W 2017 roku trwała zacięta konkurencja pomiędzy Dockerem oraz technologią wspieraną przez Google o nazwie Kubernetes, ale w 2018 roku Docker będzie już wspierał konkurenta (póki co w wersji beta).

Co zmieniło się w backendzie w ostatnim czasie, to podejście do API i uwierzytelniania użytkowników. Coś, co kiedyś było opcjonalne, teraz jest koniecznością. RESTful APIs stały się kluczowym narzędziem do łączenia różnych klocków w jeden organizm (nam pozwalają np. dostać się z poziomu aplikacji mobilnych pisanych w Swift i Javie do danych serwisu działającego na .NET i SQL Serverze). Z kolei technologie uwierzytelniania użytkowników takie jak OAuth 2.0 pozwalają korzystać z centralnych repozytoriów użytkowników i dzięki temu pozwolić np. logować się na naszym forum tym samym kontem, co na serwisie, albo przy pomocy konta Google, jeśli takie macie życzenie.

Niezbędnik devopsa

Devops to termin, który również jest wynalazkiem relatywnie ostatnich czasów. Jest to połączenie umiejętności programisty oraz administratora, siłą rzeczy dość powierzchowne w każdym z tych wymiarów (przepraszam, devopsi, taka prawda). Relatywnie trudniej wgryźć się w ten temat samemu, ponieważ prawdziwe problemy i wyzwania pojawiają się na tym polu dopiero w środowiskach produkcyjnych, a nie przy zabawie z dwoma maszynami wirtualnymi na domowym serwerze. Nie jest to też bezpośrednio związane z karierą programisty, więc tylko pokażemy na co warto postawić w 2018 roku. Może czas podciągnąć się z niektórych tematów?

Narzędzia, narzędzia, narzędzia

Kiedyś wybór technologii determinował wybór narzędzi do pracy z nimi. Dla programistów .NET nie istniało nic lepszego, niż Visual Studio, dla programistów Javy był tylko Eclipse, a ludziom od PHP wystarczał notatnik (znów - to wcale nie przytyk). Obecnie mamy do czynienia z olbrzymią gamą fenomenalnych i co najważniejsze darmowych narzędzi dla programistów. Temat jest tak rozległy, że można poświęcić mu cały cykl publikacji. Microsoft, który od lat wiedzie prym w temacie narzędzi na deweloperów, wyszedł ostatnio ze swojej bańki i wydał fenomenalne narzędzia VSCode i SQLops, które nie tylko mają otwarty kod, ale działają nawet na Linuksie czy Makach. Sam wybór wieloplatformowego narzędzia do zarządzania bazami danych może przyprawić o zawrót głowy - mamy DataGrip, TeamSQL, bezpłatny Valentina DB, Datazenit, JackDB, DBeaver, Draxed (wciąż w becie), Toad i wiele, wiele innych. Można śmiało powiedzieć, że deweloper ma teraz jak pączek w maśle.

Podsumowanie

Bez względu na to, którą ścieżkę wybierzecie, pamiętajcie - by stać się w czymś ekspertem, trzeba poświęcić temu przynajmniej 10 tys godzin. Jeśli jesteście na to gotowi, życzymy powodzenia. Pamiętajcie też, że dobrym miejscem do szukania porady w tym względzie jest dział dla specjalistów na naszym forum.

© dobreprogramy