CodeGym /Kursy /Python SELF PL /Ścieżka programisty

Ścieżka programisty

Python SELF PL
Poziom 63 , Lekcja 4
Dostępny

6.1 Drabina kariery

Programiści również mają gradacje w zależności od kwalifikacji. Kiedyś używano takich pojęć jak „koder”, „programista” i „haker”, ale teraz wszyscy przeszli na nazwy w języku angielskim z amerykańskiego IT.

Dla developera istnieje 6 głównych stopni kariery:

  • Intern Software Engineer
  • Junior Software Engineer
  • Middle Software Engineer
  • Senior Software Engineer
  • TechLead
  • Principal Software Engineer

W zależności od kraju, a nawet od firmy, pewne parametry mogą się różnić, ale ogólnie rzecz biorąc wygląda to tak:

Intern Software Engineer — to stażyści. Są w trakcie nauki programowania, nie mają ani komercyjnego doświadczenia, ani doświadczenia w dużych projektach. Zwykle pracują pod nadzorem bardziej doświadczonych kolegów. Ich główne zadanie w pracy to poznawanie bazy kodu i podstaw tworzenia oprogramowania, wykonując proste zadania kodowania i uczestnicząc w testowaniu.

Junior Software Engineer — to już programiści, ale bez poważnego komercyjnego doświadczenia lub z doświadczeniem poniżej roku. Pracują pod kierownictwem bardziej doświadczonych deweloperów, realizując części projektów i uczestnicząc w cyklach code review. Ten etap kariery skupia się na pogłębianiu umiejętności technicznych i zrozumieniu zadań projektowych.

Middle Software Engineer (lub po prostu Software Engineer): mają więcej samodzielności w podejmowaniu decyzji technicznych, odpowiadają za znaczące części projektu, zaczynają mentoring mniej doświadczonych kolegów i aktywniej uczestniczą w dyskusji nad architekturą. Zwykle mają 2–5 lat doświadczenia praktycznego.

Senior Software Engineer: odpowiadają za projektowanie i realizację złożonych systemów, zapewniają mentoring i kierownictwo w zespole, uczestniczą w strategicznym planowaniu projektów i często reprezentują zespół w kontaktach z klientami i innymi zainteresowanymi stronami. Zwykle mają 5–10 lat doświadczenia.

TechLead: ponosi odpowiedzialność za końcowy techniczny rezultat projektu, kieruje rozwojem, rozwiązuje najbardziej złożone zadania, zapewnia przestrzeganie standardów technicznych i koordynuje działalność deweloperów.

Principal Software Engineer: pracuje na najwyższym poziomie technicznym, często uczestniczy w kształtowaniu strategii technicznej firmy, opracowywaniu innowacyjnych rozwiązań i ustalaniu standardów technicznych, służy jako główny mentor dla liderów technicznych i jest kluczowym ekspertem w złożonych kwestiach technicznych.

To ciekawe. Duże firmy mogą mieć dodatkowe role i podrole. Na przykład w Google są takie role:

  • Staff Software Engineer (L6): ma znaczny wpływ na politykę techniczną swojego działu.
  • Senior Staff Software Engineer (L7): pracuje nad dużymi i złożonymi projektami, definiuje strategiczne kierunki rozwoju technologii w firmie.

6.2 Produkty Lego

Kiedyś (w 1975 roku) Niklaus Wirth, twórca języka Pascal, napisał książkę „Algorytmy + Struktury danych = Programy”. Od tego czasu wiele się zmieniło.

Współczesny produkt oprogramowania to nie to, czym był 10 lat temu, a tym bardziej nie to, co było 20 lat temu. O 1975 roku nawet nie wspominając — od tego czasu minęło 50 lat.

Współczesny programista już nie pisze programów ręcznie. Raczej składa je z gotowych części (bibliotek) i pisze kod, który pomaga tym częściom współdziałać.

Współczesne produkty oprogramowania mogą składać się z dziesiątek, a nawet setek programów. Niektóre z nich działają na komputerze użytkownika, jego urządzeniach mobilnych, a większość na serwerach w data center.

Wiele z tych programów, takich jak web server czy baza danych, jest już napisanych. Trzeba je tylko odpowiednio skonfigurować, żeby działały jak trzeba. Chociaż z czasem proces konfigurowania może stać się tak skomplikowany, że faktycznie zmienia się w rozwój. (*facepalm*)

Programiści ciągle walczą sami ze sobą. Zamiast ponownie pisać podobny kod w różnych programach, piszą biblioteki, które można konfigurować (dostosowywać) do własnych potrzeb, a następnie po prostu łączą je w każde wymagane miejsce.

W ciągu ostatnich 20 lat programiści napisali bardzo wiele bibliotek, frameworków i otwartych repozytoriów. Są ich naprawdę miliony. Teraz pisanie całego kodu od zera jest uważane za złe maniery. Zamiast tego należy złożyć program z jakościowych i sprawdzonych rozwiązań — bibliotek, frameworków, pakietów i modułów.

Ale i takie podejście już się starzeje. Tendencja ostatnich 10 lat to przejście do chmury, wielkie data center, które dostarczają twoim programom wszystko, czego potrzebują. Chcesz bazę danych? Mamy ich setki do wyboru. Chcesz rzadki, specjalny web server — mamy i takie! Każda zachcianka za twoje pieniądze.

6.3 „Jestem inżynierem” © Elon Musk

Już nie trzeba pisać skomplikowanych i nudnych rzeczy. Jeśli potrzebujesz jakiejś fajnej, skomplikowanej funkcji, na ten przypadek już jest biblioteka. Po prostu musisz: a) wiedzieć, że istnieje, b) znaleźć odpowiednią (mogą być dziesiątki analogów o różnej jakości), c) zrozumieć, jak ją zintegrować z twoim projektem.

Praca z takiego podejścia stała się tylko ciekawsza. Teraz możesz 10 razy szybciej dodawać do produktu nową funkcjonalność. 30 lat temu, jeśli potrzebowałeś web servera, musiałeś go napisać. 20 lat temu — kupić, zainstalować i skonfigurować. A teraz — po prostu wejść do panelu administracyjnego „chmury” i włączyć.

To zresztą jedna z przyczyn popularności języka Python. Jest on bardzo dobrze dostosowany nie do pisania dużych i skomplikowanych rozwiązań, a właśnie do „sklejania” różnych części ze sobą. I, sądząc po jego popularności, świetnie sobie z tym radzi.

No i sama profesja Python-developera przekształciła się w Python Fullstack Software Engineer. Współczesny Python-developer musi rozumieć, jak działa baza danych, aby umiejętnie z nią pracować. Rozumieć HTML & JavaScript, aby ustawić pracę frontendu z python-backendem. No i Docker jest potrzebny — to teraz standard branży.

Współczesna produkcja oprogramowania w ogóle mało przypomina to, co było jeszcze 20 lat temu. Współczesny programista pisze kod nie więcej niż 50% swojego czasu. Resztę czasu spędza na czytaniu dokumentacji, nauce nowych technologii i spotkaniach. Samotnych programistów już dawno nie ma.

1
Опрос
Rewolucja informacyjna,  63 уровень,  4 лекция
недоступен
Rewolucja informacyjna
Rewolucja informacyjna
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION