Backend – czy nadajesz się na backend developera?

W świecie IT panuje dość powszechne przekonanie, że backend jest bardzo trudny i nie do zrozumienia dla statystycznej osoby. Dodatkowego smaczku dodaje mit programisty zamkniętego w swojej programistycznej jaskini, który komunikuje się ze światem zewnętrznym tylko przy pomocy ciągu zer i jedynek. Spróbuję dziś obalić przynajmniej część tych mitów oraz przybliżyć Ci stanowisko backend developera. Chciałbym, byś po przeczytaniu tego artykułu mógł odpowiedzieć na pytanie, czy nadajesz się na backend developera, oraz – co bardzo ważne – czy chciałbyś nim zostać. Zapraszam do lektury.

#SprawnyProgramista. Żeby być na bieżąco i niczego nie stracić, zachęcam Cię do obserwowania poniższych kanałów. Znajdziesz tam informacje o nowych odcinkach. Subskrybuj kanał na YouTube ➡ https://stormit.pl/syoutube Polub fanpage ➡ https://stormit.pl/facebook Dołącz do newslettera ➡ https://stormit.pl/newsletter Teraz zapraszam do czytania i oglądania. Pamiętaj, że kolejny odcinek już niedługo. Witam Cię w kolejnym odcinku nowej serii na blogu. Żeby być na bieżąco i niczego nie stracić, zachęcam Cię do obserwowania poniższych kanałów. Znajdziesz tam informacje o nowych odcinkach.Teraz zapraszam do czytania i oglądania. Pamiętaj, że kolejny odcinek już niedługo.

Z tego odcinka dowiesz się:

co to jest back-end oraz front-end oraz jakie są między nimi różnice;

czym na co dzień zajmuje się backend developer;

jakie umiejętności i technologie trzeba znać, by zostać backend developerem;

oraz, gdzie można nauczyć się tych umiejętności.

Co to jest back-end oraz front-end?

Zacznijmy od małego wprowadzenia do terminologii. W zależności od wykonywanych zadań web developerów, czyli programistów pracujących nad aplikacjami internetowymi, możemy podzielić na trzy główne kategorie: front end, back end oraz full stack developer.

1. Front end developer

Front end to część aplikacji działająca po stronie użytkownika (ang. client-side) – czyli wszystko to, co odbywa się po stronie przeglądarki internetowej. Jako użytkownicy bezpośrednio korzystamy właśnie z tej części aplikacji. Jest to również jedyna część systemu, którą możemy obejrzeć i wejść z nią w bezpośrednią interakcję. Wszystkie pozostałe komponenty systemu są dla nas niedostępne i możemy się z nimi komunikować tylko za pomocą GUI (ang. graphical user interface) dostarczonego właśnie przez frontend.

Programiści, którzy większość czasu pracują nad tą częścią aplikacji, nazywani są frontend developerami.

2. Back end developer

Back end jest to natomiast część aplikacji znajdująca się na zewnętrznym serwerze, do której użytkownik nie ma bezpośredniego dostępu (ang. server-side). Możemy ją traktować jak swego rodzaju szarą eminencję, która działa z ukrycia i zarządza systemem. Mimo iż nie widzimy jej, to jest ona niezbędna do prawidłowego działania aplikacji.

Po stronie backendu następuje obsługa danych przetwarzanych w systemie oraz ich zapis i odczyt w bazie danych. Odpowiednio przygotowane informacje są następnie udostępniane przy pomocy API (ang. application programming interface), np. usługi typu REST do frontendu, gdzie prezentowane są użytkownikowi.

Analogicznie jak w poprzednim przypadku, programistów pracujących po stronie backendu nazywamy backend developerami.

3. Full stack developer

To stanowisko łączy w sobie dwa poprzednie, a tego typu programiści są w stanie pracować zarówno na froncie, jak i backendzie.

W tym miejscu warto zwrócić uwagę na zamieszanie powstałe w tym podziale w ostatnich latach. Niezwykle gwałtowny rozwój JavaScript (nawet jak na standardy panujące w informatyce) oraz wszystkich towarzyszących frameworków spowodował, że ten język nie jest już tak sztywno związany tylko z frontendem.

Liderem w wyścigu tych zmian od dość dawna jest Node.js, dzięki któremu z powodzeniem można pisać część aplikacji zarówno frontendowej, jak i backendowej. Jest to niewątpliwie bardzo ciekawy trend, który w kolejnych latach ma duże szanse, by jeszcze się upowszechnić.

Zostawmy jednak już świat frontendu i skupmy się na programiście backendu oraz na umiejętnościach, jakie trzeba posiąść, by móc wykonywać ten zawód.

Czym zajmuje się backend developer?

Backend developer odpowiedzialny jest za budowanie usług w aplikacjach, które następnie wystawiane są na światło dzienne przy pomocy specjalnego API. Mimo iż backend developer zajmuje się wewnętrzną częścią aplikacji, wciąż musi blisko współpracować z frontend developerami, którzy często korzystają z jego pracy, wywołując gotowe komponenty lub pobierając dane.

Taka charakterystyka pracy może być bardzo trudna dla wielu osób. Dość powszechne jest, że pracuje się całe dnie czy nawet tygodnie nad daną funkcjonalnością, a dla świata zewnętrznego wystawiony jest tylko jeden prosty endpoint, który ją wywołuje. Wynikami takiej pracy dość ciężko jest pochwalić się komuś spoza branży.

W codziennej pracy programiści tego typu najczęściej piszą swój kod w językach typu PHP, Java, czy C#. Ich zadaniem jest również zapewnienie wydajnego i szybkiego działania aplikacji – co w niektórych sytuacjach może być wyjątkowo trudne, np. podczas przetwarzania bardzo dużych zbiorów danych.

Co więcej, backend developer bardzo często przygotowuje również bazę danych, w której przechowywane są dane naszej aplikacji. Baza danych jest jednym z kluczowych elementów większości systemów i ciężko wyobrazić sobie bardziej zaawansowaną aplikację, która działałaby bez niej. Najczęściej wykorzystywane silniki baz danych to: MySQL, PostgreSQL, Oracle oraz MongoDB.

Poszczególni programiści mogą być też oddelegowani do różnych specjalistycznych zadań, jak np. obsługi security, przygotowania API, integracji danych, przygotowania bazy danych czy naprawy błędów, czyli z angielskiego: maintenance.

Z kim na co dzień pracują programiści?

Programiści typowo pracują w zespołach projektowych. Większe zespoły składają się z frontend inżynierów, specjalistów od UX, specjalistów od zapewniania jakości QA (ang. quality assurance) oraz innych programistów backendu. W zależności od potrzeb, na konkretnym stanowisku może być kilka osób w zespole lub, jeżeli są mniej potrzebne, mogą one także przynależeć do różnych innych grup.

Dość powszechną praktyką jest również tworzenie zespołów w poprzek tej struktury, tak by osoby na tym samym stanowisku mogły razem pracować. Wtedy należysz do swojego zespołu projektowego oraz np. do grupy backend developerów. Taki podział pomaga dzielić się specjalistyczną wiedzą z danej dziedziny.

Zdarza się również, że bardziej doświadczone osoby oddelegowywane są do kontaktów z klientem.

Jakie umiejętności i technologie muszę znać, by zostać backend developerem?

Zestaw umiejętności, jakimi dysponują bardziej doświadczone osoby z branży, może rzeczywiście być przytłaczający. Pamiętaj jednak, że na taki bagaż doświadczeń trzeba pracować całymi latami, a na początku kariery programistycznej wystarczy niewielki wycinek tej wiedzy.

Konkretne wymagania zazwyczaj znajdziesz w opisie stanowiska dostarczonego przez firmę szukającą pracowników. Ja ze swojej strony zebrałem jednak kilka najczęściej pojawiających się umiejętności, na które warto zwrócić uwagę na starcie.

Zachęcam również do zapoznania się z poniższymi artykułami – znajdziesz w nich praktyczne rady zebrane przez kolegów po fachu.

➡ ZOBACZ

Jarosław Kułak
Jarosław Kułak

Leave a Comment