Typy programistów
ile znasz typów programistów? A jeśli jesteś programistą, do jakiego typu się odnosisz? W świecie rzeczywistym granice między różnymi typami programistów są rozmyte. Im bardziej profesjonalnie staniesz się, tym więcej typów będziesz pasować. Zobaczmy więc, ile typów programistów jest dostępnych w branży programistycznej.
zanim zaczniemy, chcielibyśmy podziękować Lorenzo Pasqualisowi, którego artykuł zainspirował nas do stworzenia tego materiału.
szczerze mówiąc, większość z nas rozpoznaje tylko trzy typy programistów: frontend, backend i fullstack. To oczywiste, ale to tylko połowa prawdy. Obecnie różni programiści z tych samych stosów tech mało prawdopodobne może zastosować swoje umiejętności i wiedzę do różnych obszarów. To tak, jakby poprosić dewelopera mobilnego o pracę nad stworzeniem gry. Mógł znać narzędzia, ale nie jest programistą gier. A to powoduje ogromne zróżnicowanie typów programistów.
zaczniemy od głównych typów:
Frontend
wczoraj napisaliśmy największy artykuł z cheatsheet dla frontenderów. Więc kim oni są? Jest to typ programistów, którzy specjalizują się w wizualnych interfejsach użytkownika, estetyce i układach. Ich kod działa w przeglądarce internetowej, na komputerze użytkownika witryny. Zajmują się tworzeniem aplikacji internetowych i stron internetowych. Sprzęt nie jest tym, o czym zazwyczaj myślą specjaliści od frontendu.
ich praca wymaga zrozumienia interakcji człowiek-maszyna i zasad projektowania bardziej niż teorii informatyki.
umiejętności tworzenia frontendu:
- projektowanie interfejsu użytkownika (UI)
- projektowanie user experience (UX)
- CSS
- JavaScript
- HTML
- struktury UI.
Programiści Frontend muszą znać frameworki takie jak Bootstrap, Foundation, Backbone, AngularJS i EmberJS, które zapewniają świetnie wyglądającą zawartość bez względu na urządzenie, oraz biblioteki takie jak jQuery i LESS, które kod pakietu tworzą bardziej użyteczną, oszczędzającą czas formę. Wiele ofert pracy front-end developer wymaga również doświadczenia z Ajax, powszechnie stosowaną techniką korzystania z Javascript, która umożliwia dynamiczne ładowanie stron poprzez pobieranie danych serwera w tle.
Backend
drugi najpopularniejszy typ programistów. Programista zaplecza specjalizuje się w projektowaniu, wdrażaniu, logice rdzenia funkcjonalnego, wydajności i skalowalności oprogramowania lub systemu działającego na maszynach oddalonych od użytkownika końcowego. Integrują szeroką gamę usług, takich jak bazy danych, buforowanie, rejestrowanie, systemy poczty e-mail itp.
co sprawia, że front end strony internetowej możliwe? Gdzie są przechowywane wszystkie te dane? Oto pytania dotyczące rozwoju backendu. Zaplecze strony internetowej składa się z serwera, aplikacji i bazy danych. Programista zaplecza buduje i utrzymuje technologię, która zasila te komponenty, które razem umożliwiają w ogóle istnienie strony internetowej skierowanej do użytkownika.
umiejętności rozwoju zaplecza:
- Java
- C, C++
- Ruby
- Python
- Scala
- Go itd.
używają również narzędzi takich jak MySQL, Oracle i SQL Server, aby znaleźć, zapisać lub zmienić Dane i przekazać je użytkownikowi w kodzie front-end. Oferty pracy dla programistów backend często wymagają również doświadczenia z frameworkami PHP, takimi jak ZEND, Symfony i CakePHP; doświadczenia z oprogramowaniem do kontroli wersji, takim jak SVN, CVS lub Git; oraz doświadczenia z Linuksem jako systemem programistycznym i wdrożeniowym.
Fullstack
Nazwij tego programistę kreatorem, ale on (lub ona) działa zarówno frontend, jak i backend. Fullstack developer posiada umiejętności niezbędne do stworzenia w pełni funkcjonalnej aplikacji internetowej. Uważa się, że profesjonalna praca zarówno po stronie serwera, jak i klienta otwiera więcej możliwości. To są walety-of-all-trade.
złożoność rozwoju pełnego stosu można zilustrować tym obrazem (oczywiście jest więcej technologii):
Obraz przez TechCrunch
programista fullstack powinien być w stanie:
- aby skonfigurować i skonfigurować serwery Linux
- aby napisać API po stronie serwera
- aby zanurzyć się w JavaScript po stronie klienta, zasilając aplikację
- aby odwrócić „oko projektowe” do CSS
mobilny programista
to jest programista kto pisze kod dla aplikacji, które działają natywnie na konsumenckich urządzeniach mobilnych, takich jak smartfony i Tablety. Ten typ pojawił się po boomie urządzeń mobilnych na początku 2000 roku i eksplozji rynku smartfonów. Wcześniej mobile development był uważany za podzbiór embedded development (o Embedded developerach też napiszemy w tym artykule).
programista mobilny rozumie zawiłości mobilnych systemów operacyjnych, takich jak iOS i Android, a także środowisko programistyczne i struktury używane do pisania oprogramowania na tych systemach operacyjnych.
Mobile developer skills:
- Java
- Swift
- Objective-C
- C, C++ i Java
- interfejsy programowania aplikacji (API), takie jak Apple iOS, Android, Windows Mobile i Symbian
- języki programowania stron internetowych, takie jak HTML 5 i CSS
- wieloplatformowe pakiety mobilne, takie jak antena i amp ( księgowość-zarządzanie-promocja)
twórca gier
każde dziecko uzależnione od gier chce w przyszłości zostać twórcą gier. Ale ten zawód jest tak romantyczny i zabawny, jak skomplikowany i wymagający.
twórca gier specjalizuje się w pisaniu gier i może należeć do jednej z innych kategorii programistów, ale często mają specyficzną wiedzę i umiejętności w projektowaniu i wdrażaniu wciągających i interaktywnych gier.
umiejętności dla twórców gier:
- DirectX, OpenGL, Unity 3D, frameworki WebGL
- języki takie jak C, C++ i Java
- JavaScript i HTML5
- Swift i Java dla urządzeń mobilnych.
analityk danych
ten typ programisty pisze programy do analizy zbiorów danych. Często zajmują się analizą statystyczną, uczeniem maszynowym, wizualizacją danych i modelowaniem predykcyjnym. Całkiem Romantyczne, prawda? Ale lista umiejętności, które powinien posiadać analityk danych, obejmuje wiele rzeczy związanych z nauką:
- języki programowania Statystycznego, takie jak R lub Python oraz języki zapytań do bazy danych, takie jak SQL
- zrozumienie statystyk i różnych technik, które są (lub nie są) poprawnym podejściem
- znajomość metod uczenia maszynowego
- znajomość wielowymiarowego rachunku różniczkowego i zasad algebry liniowej
- umiejętność radzenia sobie z niedoskonałościami w danych (w tym brakujące wartości, niespójne formatowanie ciągów znaków itp.)
- Wizualizacja i komunikacja danych jest niezwykle ważna
- posiadanie silnego zaplecza inżynierii oprogramowania
- umiejętność rozwiązywania problemów wysokiego poziomu
programista DevOps
jest to rodzaj programisty zaznajomiony z technologiami budowania, wdrażania i integracji systemu oraz administrowania oprogramowaniem zaplecza i systemami rozproszonymi.
aby wyjaśnić sposób:
- programista tworzy aplikacje
- Ops wdraża, zarządza i monitoruje aplikacje
- DevOps tworzy aplikacje i wdraża je/zarządza/monitoruje.
rozwiązanie DevOps stało się możliwe dzięki chmurze i narzędziom/platformom ułatwiającym wdrażanie i zarządzanie. Umiejętności potrzebne devops:
- Kubernetes
- Docker
- Apache Mesos
- stos HashiCorp (Terraform, Vagrant, Packer, Vault, Consul, Nomad)
- Jenkins itp.
inżynier Rozwoju Oprogramowania w teście
ten typ programisty jest odpowiedzialny za pisanie oprogramowania w celu weryfikacji jakości systemów oprogramowania. Tworzą zautomatyzowane testy, narzędzia i systemy, aby upewnić się, że produkty i procesy działają zgodnie z oczekiwaniami. Umiejętności potrzebne inżynierom w teście:
- Python
- Ruby
- selen.
programista Wbudowany
programista wbudowany działa na sprzęcie, który nie jest powszechnie klasyfikowany jako komputery. Do tej kategorii należą na przykład mikrokontrolery, systemy czasu rzeczywistego, interfejsy elektroniczne, Dekodery, urządzenia konsumenckie, urządzenia IoT, sterowniki sprzętowe i szeregowa transmisja danych.
Programiści Wbudowani często pracują z takimi językami jak:
- C, C++
- Assembly
- Java lub zastrzeżone technologie, frameworki i zestawy narzędzi
z wbudowaną definicją programisty chcielibyśmy zakończyć listę typów programistów. Wymieniliśmy dla Ciebie główne typy programistów, które są zasadniczo różne. Ale można też usłyszeć o:
– web developer (cel tworzenia stron internetowych jest oczywisty)
– application developer (który jest biegły w tworzeniu różnych typów aplikacji)
– security developer (który tworzy systemy, metody i procedury testowania bezpieczeństwa systemu oprogramowania)
– CRM developer (spędzają czas z SAP, Salesforce, Sharepoint i Enterprise Resource Planning)
– programista big data (rzadko spotykany, tego typu programiści używają systemów do rozproszonego przechowywania i przetwarzania ogromnych ilości danych, takich jak MapReduce, Hadoop i Spark)
– Programiści graficzni (specjalizują się w pisaniu programów do renderowania, oświetlenia, cieniowania, cieniowania, wycinania i zarządzania scenami)
Zapisz się do naszego cotygodniowego newslettera, aby znaleźć więcej interesujących rzeczy na temat tworzenia oprogramowania!