11 typów programistów (kim będziesz?)
Opublikowany: 2022-10-05Powiedz słowo „programista”, a my w Kinsta myślimy „oprogramowanie”. Nie, powiedzmy, „nieruchomości”. Jednak nawet skupienie się na komputerach i kodzie pozostawia wiele swobody przy opisywaniu typów programistów.
Moglibyśmy kategoryzować programistów według języka programowania, którego używają — na przykład „programista JavaScript” lub „programista Pythona” — ale to nie ujawniłoby, co tworzą ani ich roli w tym procesie. Ponadto programiści często znają wiele języków.
Dlatego użyjemy pewnych powszechnie akceptowanych (i bardziej opisowych) etykiet dla typów programistów i przyjrzymy się stojącym za nimi zadaniom i narzędziom.
Kim jest programista?
Ustaliliśmy, że oprogramowanie jest kluczem do historii naszych programistów. To może przybierać różne formy.
Członek zespołu programistycznego odpowiedzialnego za oprogramowanie bazodanowe Microsoft SQL Server jest programistą. Ktoś, kto używa Structured Query Language do pracy z informacjami przechowywanymi w takiej bazie danych, może być również programistą.
Jeden z programistów tworzy komputerowy system operacyjny osadzony w płytce drukowanej. Inny pisze skrypty Bash, aby zautomatyzować interakcje między wieloma innymi programami.
Wszyscy tego typu programiści zbudowali coś za pomocą kodu.
Ilu jest typów programistów?
Nie ma „oficjalnej” listy opisów stanowisk dla programistów. Przyjrzymy się temu, co robią programiści, używając popularnej terminologii, a nawet podzielimy szeroko zakrojoną kategorię „programistów internetowych” na trzy różne role. (Przyznajemy: mamy słabość do ludzi, którzy budują strony internetowe.)
W sumie omówimy tutaj 11 typów programistów.
1. Frontend Web Developer
Programista frontendu skupia się na interfejsie użytkownika strony internetowej. Wykorzystują swoje umiejętności HTML i CSS do kontrolowania wyglądu i stylu witryny, często dostosowując różne rozmiary ekranu w przeglądarkach mobilnych i stacjonarnych.
Deweloperzy frontendu zwykle polegają na JavaScript, aby stworzyć responsywne środowisko dla użytkowników. Deweloperzy ci często znają biblioteki i frameworki JavaScript, które mogą przyspieszyć tworzenie dynamicznych aplikacji skierowanych do klienta.
Programista frontend pracuje nad zwiększeniem wydajności witryny, optymalizacją obrazów, JavaScript i znaczników, aby przyspieszyć ładowanie w przeglądarkach. Większość programistów frontend skupia się również na optymalizacji pod kątem wyszukiwarek i dostępności stron internetowych.
Wszystko to wymaga wielu umiejętności, a wynagrodzenie frontend developera może to odzwierciedlać.
Czy Frontend Developerzy to projektanci stron internetowych?
Wielu programistów frontend jest również projektantami, ale to nie jest wymóg tytułu „frontend”. Podobnie wielu projektantów stron internetowych jest dobrze zorientowanych w HTML i CSS — i może używać ich w makietach — ale nie uważa się za programistów.
W wielu organizacjach projektowanie jest częścią brandingu obejmującego media poza siecią.
Bez względu na to, kto tworzy projekt, zadaniem programisty frontendu jest ożywienie go na stronie internetowej i przekształcenie wizji doświadczenia użytkownika w działającą aplikację.
2. Backend Web Developer
Deweloper zaplecza tworzy aplikacje po stronie serwera, które zwykle wymagają specjalistycznej wiedzy w zakresie oprogramowania serwera WWW, baz danych i systemów operacyjnych, na których działają. Przykładem całkowicie open-source może być system operacyjny Linux, serwer WWW Nginx lub Apache oraz baza danych MariaDB lub PostgreSQL.
Granica między backendem a frontendem jest zacierana przez technologię taką jak PHP, tylko jeden język skryptowy po stronie serwera, który wysyła kod HTML do przeglądarek na interfejsie.
PHP — który obsługuje WordPress i inne popularne systemy CMS, a także frameworki programistyczne, takie jak Laravel — jest najpopularniejszym w sieci językiem skryptowym po stronie serwera. Mimo to programiści zaplecza mogą używać technologii, takich jak C# i Microsoft .NET Framework, Python, Java, Ruby on Rails lub Node.js.
Deweloperzy zaplecza mogą oczekiwać współpracy z członkami zespołu zajmującymi się stroną witryny po stronie klienta. Rozwój po stronie serwera może również obejmować tworzenie interfejsów programowania aplikacji (API), które obsługują usługi frontendowe przy mniejszej potrzebie ścisłego powiązania obu stron.
Jeśli to wszystko brzmi jak Twoja praca, być może zainteresują Cię typowe pensje programistów backendowych.
3. Programista WWW z pełnym stosem
Być może zgadłeś, że programista fullstack wykonuje pracę programistów frontend i backend. (Niestety nie oznacza to, że pensja typowego pełnowymiarowego programisty jest dwukrotnie wyższa od pozostałych).
Mimo to opanowanie wszystkich poziomów tworzenia stron internetowych wydaje się mieć swoje zalety. Ankieta z 2022 r. przeprowadzona wśród programistów przez StackOverflow wykazała, że "pełen pakiet programista" był najczęstszą odpowiedzią (prawie 47%), gdy respondenci zostali poproszeni o opisanie swoich ról.
Czy programiści WordPress są programistami Full-Stack?
Funkcje zarządzanego hostingu WordPress tutaj w Kinsta pozwalają każdemu kompetentnemu w PHP na poważny rozwój bez zagłębiania się w stronę serwera.
WordPress zainstalowany w dowolnym miejscu jest przyjazny dla programistów i oferuje dużą bibliotekę własnych funkcji/metod PHP, które stanowią warstwę abstrakcji w stosunku do niektórych typowych zadań po stronie serwera. Na przykład programiści WordPress mogą przechowywać i pobierać rekordy w relacyjnych bazach danych bez pisania SQL. Mogą zapisywać przesyłane multimedia do systemu plików serwera bez znajomości podstawowych funkcji PHP, które to wszystko umożliwiają.
„WordPress Developer” mógłby być tutaj osobną kategorią, ale wtedy musielibyśmy zrobić to samo dla programistów korzystających z produktów CMS, takich jak Drupal, Joomla i DNN oraz frameworków, takich jak Laravel, .NET i Django.
Wielu programistów WordPress – zwłaszcza tych, którzy tworzą motywy i wtyczki WordPress – ma inspirujące, pełne kotlety. Tak więc odpowiedź na pytanie „Czy programiści WordPress są programistami full-stack?” jest: To zależy.
4. Programista aplikacji mobilnych
Termin „aplikacja” obejmuje wiele podstaw w tworzeniu oprogramowania. Od komputerów stacjonarnych po Internet, aplikacje są narzędziami, które wykonują zadania dla użytkowników końcowych.
W skrócie do „aplikacji” — na przykład „Jest na to aplikacja!” — w pierwszej kolejności myślimy o aplikacjach działających na smartfonach, tabletach i innych urządzeniach mobilnych. A tworzenie aplikacji mobilnych wymaga wyspecjalizowanego programisty.
Twórcy aplikacji mobilnych są zaznajomieni z zestawami programistycznymi (SDK) i powiązanymi narzędziami używanymi do tworzenia aplikacji dla systemów operacyjnych urządzeń, takich jak iOS firmy Apple lub Android firmy Google.
Swift to natywny język programowania dla iOS, podczas gdy Java i Kotlin są najczęściej używane dla Androida. Ponadto duży ekosystem narzędzi do tworzenia aplikacji, takich jak Apache Cordova i NativeScript, może przekształcić kod oparty na przyjaznym dla sieci JavaScript, HTML i CSS w natywne oprogramowanie mobilne.
Kiedy przyjrzeliśmy się średnim pensjom programistów aplikacji, okazało się, że ci, którzy budują platformy mobilne, zarabiają nieco więcej niż ci, którzy koncentrują się na komputerach stacjonarnych lub w internecie.
5. Programista oprogramowania komputerowego
Deweloperzy komputerów stacjonarnych tworzą aplikacje, które działają na komputerach osobistych i stacjach roboczych.
Deweloperzy zazwyczaj tworzą aplikacje desktopowe dla określonych systemów operacyjnych, więc aktywność w tej dziedzinie odzwierciedla względne udziały rynkowe platform takich jak Microsoft Windows, Apple macOS, Google Chrome OS i system operacyjny Linux o otwartym kodzie źródłowym.
Korzystając z danych zebranych podczas odwiedzin witryn na całym świecie, Statcounter oszacował w sierpniu 2022 r., że Windows ma 74% udziału w rynku wśród systemów operacyjnych dla komputerów stacjonarnych.
Deweloperzy prawdopodobnie będą programować przy użyciu narzędzi zintegrowanego środowiska programistycznego (IDE) do szybkiej edycji, debugowania i kompilowania kodu źródłowego.
Popularne języki programowania aplikacji komputerowych to C#, C++, Swift i Java.
Oprogramowanie komputerowe działa lokalnie, ale nowoczesne aplikacje mogą wykorzystywać łączność z Internetem do zadań, od aktualizacji produktów po udostępnianie danych za pośrednictwem przechowywania w chmurze.
6. Data Scientist (programista Big Data)
Ludzie pomagają generować wiele danych, wykonując swoje codzienne życie: chodząc do sklepu spożywczego, surfując po Internecie, przejeżdżając obok kamer drogowych, używając telefonów komórkowych, a nawet głosując. Zbudowaliśmy systemy do rejestrowania danych ze zjawisk naturalnych, takich jak pogoda, trzęsienia ziemi i sygnały elektromagnetyczne z kosmosu.
Naukowiec danych to czarodziej matematyki z komputerem, który może odkryć wzorce we wszystkich tych informacjach.
Istnieje duża szansa, że ci programiści używają języka programowania Python lub czegoś bardziej wyspecjalizowanego, takiego jak R, Scala lub Julia.
„Big data” zwykle kończy się w relacyjnej bazie danych, więc naukowiec danych prawdopodobnie będzie miał SQL w swoim zestawie narzędzi programistycznych.
7. Programista sztucznej inteligencji/uczenia maszynowego
Twórcy oprogramowania wykorzystującego sztuczną inteligencję (AI) starają się naśladować ludzkie zachowania, takie jak podejmowanie decyzji. Dodaj uczenie maszynowe (ML), a aplikacja może z czasem stać się inteligentniejsza.
Aplikacje AI/ML zwykle przetwarzają wiele danych przy użyciu złożonych algorytmów, więc programiści w tej dziedzinie często są naukowcami zajmującymi się danymi.
Firma badawcza IDC stwierdziła, że światowe przychody z aplikacji, sprzętu i usług związanych ze sztuczną inteligencją przekroczyły 383 miliardy dolarów w 2021 r., co stanowi wzrost o prawie 21% w porównaniu z 2020 r.
Oprogramowanie do zarządzania relacjami z klientami i oprogramowanie do zarządzania zasobami przedsiębiorstwa odpowiadało za około 65% przychodów z aplikacji wykorzystujących sztuczną inteligencję.
8. Twórca gry
Twórcy gier komputerowych reprezentują szeroki wachlarz umiejętności.
Ich oprogramowanie może działać na komputerach stacjonarnych, urządzeniach mobilnych, konsolach lub w przeglądarkach internetowych. Fabuły uwzględniają różne gatunki gier, takie jak symulacja wojskowa lub sportowa, strzelanki FPS, strategie lub role-playing. Do tego dochodzą prawdopodobnie grafika 3D, muzyka i efekty dźwiękowe.
W świecie gier połączonych z Internetem twórcy gier masowo wieloosobowych muszą sprostać wymaganiom serwerów zaplecza i baz danych, które są tak samo wysokie, jak najbardziej ruchliwe witryny e-commerce.
Twórcy gier zazwyczaj mają doświadczenie w narzędziach do renderowania 3D i innym oprogramowaniu związanym z animacją.
Skupiając się na najnowocześniejszych technologiach, ostatnie ankiety dla programistów przeprowadzone przez firmę SlashData Developer Nation wykazały, że nieco ponad 37% aplikacji rzeczywistości rozszerzonej (AR) lub rzeczywistości wirtualnej (VR) to gry AR/VR. Kolejne 27,9% projektów dotyczyło budowania wirtualnych światów — niektóre dla gier.
9. Programista systemów operacyjnych
Chociaż tysiące programistów pracuje nad najpopularniejszymi systemami operacyjnymi — wnoszącymi wkład w Linuksa lub zatrudnianymi przez Microsoft, Apple czy Google — nadal jest to grupa ekskluzywna. W końcu SlashData twierdzi, że jego ankiety sugerują, że całkowita światowa populacja programistów wynosi ponad 24 miliony.
Istnieje duża szansa, że Twoja lodówka ma system operacyjny, ale popularne komputerowe systemy operacyjne wymagają dużych zespołów programistów, z których większość pracuje nad mniejszymi komponentami całego projektu.
Rdzeniem większości systemów operacyjnych jest jądro, które zarządza dostępem do procesora, pamięci, systemów plików i urządzeń we/wy. C jest podstawowym językiem kodowania jąder Microsoft Windows, Apple macOS i Linux. Używany jest również kod niskiego poziomu napisany w asemblerze.
A jądro Androida wyewoluowało z jądra Linuksa.
Oprócz jądra system operacyjny ma sterowniki do zarządzania różnymi urządzeniami sprzętowymi i aplikacjami w celu utrzymania systemu. Do tego dochodzi graficzny interfejs użytkownika systemu. Deweloperzy mogą używać C, C++, Objective C (macOS), a nawet Pythona (Linux) dla tych składników.
10. Inżynier DevOps
Inżynier DevOps zarządza narzędziami i przepływami pracy, które szybko i niezawodnie przenoszą oprogramowanie od etapu rozwoju do wydania publicznego.
„DevOps” to połączenie słów „rozwój” i „operacje”, a praktycy automatyzują powtarzalne zadania tworzenia oprogramowania — od zarządzania kodem po testowanie, wdrażanie, monitorowanie, konserwację i rozwiązywanie problemów.
Inżynierowie ci wykorzystują zestaw narzędzi DevOps, aby przyspieszyć cykle wydawania oprogramowania, zarządzać różnymi wersjami bazy kodu projektu i potwierdzić, że produkt końcowy działa zgodnie z oczekiwaniami.
W przypadku tworzenia stron internetowych proces DevOps może również zapewnić, że zasoby wymagane przez aplikację są dostępne i odpowiednio skonfigurowane na serwerze sieci Web.
DevOps wymaga zaawansowanych umiejętności, a wynagrodzenie inżyniera DevOps zwykle to odzwierciedla.
11. Deweloper bezpieczeństwa (SecDevOps)
Deweloper bezpieczeństwa tworzy narzędzia i zarządza procesami, które testują oprogramowanie i bezpieczeństwo systemów komputerowych.
W tworzeniu oprogramowania bezpieczeństwo jest często elementem procesu DevOps. Ktoś, kto skupia się na bezpieczeństwie w tym środowisku, można nazwać inżynierem SecDevOps.
Twórcy zabezpieczeń pracują nad ochroną oprogramowania i systemów komputerowych przed atakami i zagrożeniami cyberbezpieczeństwa. Używają różnych narzędzi, w tym języków skryptowych, takich jak Python, Bash i Ruby, do automatyzacji powtarzalnych zadań.
Deweloper bezpieczeństwa musi mieć dogłębną wiedzę na temat oprogramowania i systemów, które próbuje chronić.
Jakim typem programisty chcesz być?
Jeśli myślisz o zostaniu programistą, mamy dla Ciebie kilka informacji, które pomogą Ci podjąć kolejne kroki. Możesz przeczytać o najlepszych językach programowania do nauki lub zagłębić się w naukę PHP i odkrywanie samouczków JavaScript.
Być może chciałbyś dowiedzieć się, jak zostać programistą Laravel lub skupić się na nauce WordPressa, najpopularniejszego CMS na świecie.
Wtedy, może pewnego dnia, dołączysz do nas z karierą w Kinsta.
Streszczenie
To spojrzenie na 11 typów programistów, których role są wystarczająco różne, aby wyróżnić różne zadania dostępne w ich dziedzinach.
Mimo to wielu programistów pełni więcej niż jedną rolę, a większość zna wiele języków programowania lub skryptów. Może dlatego nigdy nie wszyscy zgodzimy się na „oficjalną” listę typów programistów.
W międzyczasie, jeśli masz projekt internetowy, który chcesz uruchomić, możesz zapoznać się z rozwiązaniami hostingu aplikacji i baz danych firmy Kinsta.