
Jeśli zastanawiałaś się kiedyś nad zostaniem programistą, to jest to post dla Ciebie. Jeśli chodzi o deweloperów, zazwyczaj są dwie grupy do wyboru: front-end developer i back-end developer. W tym poście przyjrzymy się różnicom między nimi, pod względem umiejętności i języków programowania i technologii, jakie powinni znać.
Front-End vs Back-End

- Front-end Developer buduje wygląd aplikacji
- Back-end Developer buduje silnik działania aplikacji
Powiedzmy, że chciałaś zbudować witrynę internetową dla swojej firmy. Front-end developer zadbałby o wygląd i zachowanie interfejsu użytkownika. Back-end developer, pracowałby nad zarządzaniem bazą danych, a także użytkownikami witryny, bezpieczeństwem i problemami z wydajnością witryny.
Języki i technologie
Programiści front-end używają przede wszystkim trzech języków: HTML , CSS , Javascript. W ciągu ostatnich kilku lat ewoluowała nieco rola dewelopera front-endu. Dlatego profesjonalni deweloperzy front-endu mogą również rozważyć zdobycie bardziej zaawansowanych umiejętności JavaScript.
Jeśli nie masz jeszcze doświadczenia w żadnym z tych języków, możesz zacząć od kilku kursów programowania dla początkujących, niekoniecznie płatnych! O źródłach wiedzy dla początkujących, pojawi się osobny post.
Programiści back-end powinni być biegli w językach programowania, które działają po stronie serwera strony internetowej lub aplikacji. Aktualnie najpopularniejsze języki programowania back-endowego to Java, PHP , języki na platformie .NET i Python. Zazwyczaj dobrym programistą back-endu jest mistrz w jednym z tych języków, ale z dodatkową znajomością dwóch innych, w podstawowym stopniu. Twórcy back-endu będą również musieli pracować z bazami danych, takimi jak MySQL, Oracle, PostgreSQL. Obecnie przydaje się też podstawowa znajomość chociaż jednej bazy NoSQL.
Umiejętności
Jakiego rodzaju umiejętności potrzebuje programista front-endu, a programista back-endu?
Programiści front-end pracują nad wyglądem i interfejsem użytkownika strony internetowej, więc oprócz języków wymienionych powyżej, front-end developer powinien posiadać umiejętność użycia narzędzi do projektowania, takich jak na przykład PhotoShop, Adobe XD, Sketch lub Figma.
Programiści back-end muszą posiadać umiejętności krytycznego myślenia. Back-end developer to często debugowanie kodu, a także projektowanie systemów umożliwiających interakcję użytkownika z witryną (programowanie pewnego „zaplecza” i implementowanie logiki biznesowej). Pytania, na które powinien odpowiedzieć back-end developer: Gdzie i w jakiej strukturze przechowywać będziemy dane (struktury baz danych)? Czy aplikacja jest gotowa by obsługiwać zwiększony ruch? Czy jej architektura została zaprojektowana z uwzględnieniem zasad bezpieczeństwa? Czy jest możliwe łatwe jej rozwijanie, nie wymagające dużej i żmudnej refaktoryzacji?
Edukacja
Jeśli chcesz zostać freelancer’em lub założyć własną firmę, studia nie będą Ci tak potrzebne, jak w przypadku pracy etatowej (więcej na temat tego czy warto iść na studia informatyczne w poście). Prawdopodobnie wystarczy Ci samouka poprzez odpowiednio wyselekcjonowane źródła wiedzy. Tak długo, jak jesteś w stanie dostarczyć wyniki na zadowalającym poziomie, nie musisz wykazywać się wyższym stopniem uniwersyteckim, aby zarabiać na życie. Jeśli zaczynasz całkowicie od zera, na pewno będziesz musiała samodzielnie opracować kilka projektów. Silne portfolio będzie Twoją wizytówką, a przyda Ci się szczególnie, jeśli skłaniasz się do pracy front-end dewelopera.
Jeśli zdecydujesz się na pracę etatową, dyplom na pewno Ci nie zaszkodzi. Jednak obecnie, najbardziej liczy się to, co tak naprawdę umiesz. Potwierdzeniem Twoich umiejętności musi być kawałek wykonanej przez Ciebie pracy. W formie portfolio lub dowolnego programu, a oprócz tego – często w formie testów, które prawdopodobnie będziesz musiała rozwiązać podczas rekrutacji.
Podsumowanie
Poniżej znajduje się infografika podsumowująca.

Czym więc zajmuje się full-stack ?
Programiści, którzy mają umiejętności zarówno w rozwoju front-end, jak i back-end, są często określani jako full-stack developer. Innymi słowy, mają pełen zakres umiejętności, które można zastosować do interfejsu użytkownika i wszystkiego, co sprawia, że aplikacja działa.
Niektórzy uważają, że full-stack nie jest tak dobry jak front-end czy back-end developer. Tutaj często odnoszą się do powiedzenia: „Jack wszystkich zawodów, mistrzu żadnego”, ale warto również zauważyć, że pełne wyrażenie to „Jack wszystkich zawodów, mistrz żadnego, choć często lepszy, niż mistrz jednego”.
Posiadanie zarówno umiejętności front-endowych, jak i back-endowych oznacza więcej możliwości. Dostarczasz wtedy umiejętność kompleksowego zbudowania pewnego fragmentu aplikacji (lub po prostu całej aplikacji). Szukając pracy, bez znaczenia czy będzie Cię interesowała praca na etat czy jako wolny strzelec – będziesz mieć po prostu więcej możliwości.
Z perspektywy klienta lub pracodawcy będziesz w stanie analizować projekty jako całość. Zarówno warstwę prezentacji dla użytkownika, jak i część aplikacji, która będzie działała po stronie serwera. Z każdej z powyższych, będziesz mieć punkt kontaktowy i będziesz w stanie wspierać klienta czy pracodawcę w wielu obszarach. To czyni Cię jeszcze bardziej wartościowym pracownikiem.
Podsumowując, zapotrzebowanie zarówno na programistów front-endowych, jak i back-endowych stale rośnie. Wybór jednej z nich, zależy od Twoich subiektywnych odczuć. Front-end jest dla wielu kobiet ciekawszy – decydujesz o wyglądzie strony, co daje widoczne, atrakcyjne wizualnie efekty. Back-end to część dużo bardziej skomplikowana i dużo bardziej techniczna. Jednak świadomość większej odpowiedzialności i większego wpływu na działanie aplikacji – też jest zachęcająca. Jeśli jesteś na początku swojej drogi, to warto najpierw odkryć oba światy. Zobaczyć, czym dokładnie będziesz musiała się zająć decydując się na któryś z nich (i raczej nie porywać się od razu na zostanie full-stack developerem). Wtedy być może bardzo szybko zdecydujesz, który jest dla Ciebie najlepszy!