Tradycyjnie w branży technologicznej programiści są podzieleni na cztery stopnie w zależności od ich poziomów kwalifikacji: Junior, Middle, Senior i Team Lead. Lub pięć, jeśli uwzględnisz programistów stażystów jako najniższych rangą „żołnierzy” branży programistycznej. W poprzednim artykule omówiliśmy już, jak to jest być młodszym programistą. Zacznijmy więc od miejsca, w którym skończyliśmy ostatnim razem i przejdźmy przez kolejny etap w gradacji kariery programisty, czyli Mid-Level Developer. Jak to jest być programistą średniego poziomu.  Krótki przewodnik po roli — 1

Kim jest programista średniego poziomu?

Mid-level Developer to stosunkowo doświadczony programista, który spędził w tym zawodzie co najmniej 2-4 lata. Te lata powinny zmienić niedoświadczonego i niepewnego świeżego programistę w silnego, w pełni funkcjonalnego programistę, który jest w stanie napisać własny kod i wymyślić rozwiązania bez konieczności proszenia o pomoc starszych członków zespołu. Deweloper średniego poziomu zazwyczaj jest jednostką centralną w prawie każdej „armii” programistycznej, ponieważ programiści średniego poziomu to ci, którzy wykonują główną część prac programistycznych w prawie każdym projekcie. W przeciwieństwie do mniej doświadczonych programistów juniorów, programiści średniego poziomu nie potrzebują dużej pomocy ani nadzoru, są w stanie zrobić wszystko samodzielnie, a mając jasne zrozumienie kodu i technologii używanych w projekcie, mają więcej obowiązków. Na przykład, jeśli Junior koncentruje się głównie na pisaniu kodu, który będzie działał, prosto i przejrzyście, programista średniego poziomu musi również pomyśleć o takich rzeczach, jak upewnienie się, że kod jest zrozumiały i napisany zgodnie ze standardami jakości i wymaganiami projektu. Zazwyczaj większość bazy kodu prawie każdego oprogramowania jest napisana przez programistów średniego poziomu. Oczywiście, jak zawsze, gdy mowa o zawodach i specjalizacjach w branży technologicznej, warto wspomnieć, że programiści średniego poziomu (podobnie jak Juniorzy czy Seniorzy) mogą mieć zupełnie inne doświadczenie i odpowiedzialność w zależności od firmy, w której pracują. „Patrząc z zewnątrz, 3-5 lat doświadczenia sprawia, że ​​jesteś średniozaawansowany. Z wnętrza organizacji, jesteś na etapie zaufania w zakresie kodowania, ale niewielka lub żadna interakcja z klientem i własność małych i średnich projektów. Widziałem przypadki, w których programiści wyższego szczebla woleliby pozostać na poziomie średnim, ponieważ w zasadzie programujesz bez konieczności kontaktowania się z kierownikami projektów i klientami”mówi Lewis Nakao, doświadczony programista i konsultant kariery programistów.

Jakie są obowiązki programisty średniego poziomu?

Porozmawiajmy teraz bardziej szczegółowo o niektórych najbardziej typowych i powszechnych obowiązkach programisty średniego poziomu.
  • Pisanie i utrzymywanie kodu.
  • Analizowanie i wdrażanie najlepszych praktyk kodowania do kodu projektu.
  • Analiza wymagań technicznych projektu i dostosowanie do nich kodu.
  • Identyfikacja i rozwój obszarów do rewizji w bieżących projektach.
  • Wykonywanie i wdrażanie testów oprogramowania.
  • Opracowywanie procedur zapewnienia jakości projektów oprogramowania.
  • Analiza potrzeb użytkowników, projektantów, testerów QA i innych członków zespołu programistycznego.
  • Opracowywanie procedur zapewniania jakości.
  • Koordynowanie prac i współpraca z innymi programistami, projektantami, analitykami systemowymi i biznesowymi itp.
  • Dokumentowanie każdej części procesu rozwoju w celu dalszej pracy i konserwacji.

Wymagania dla programisty średniego poziomu

Oto lista najczęstszych i typowych wymagań dla programisty średniego poziomu, które powinieneś spełnić, aby dostać tę pracę. Oczywiście wymagania będą się różnić w zależności od polityki zatrudniania firmy, technologii używanych w projekcie i języka programowania programisty. Oczywiście skupimy się na typowych wymaganiach stawianych programistom Java średniego poziomu.
  • Co najmniej dwa-trzy lata jako programista Java i doświadczenie w pracy nad co najmniej kilkoma różnymi projektami oprogramowania.
  • Pełna wiedza na temat projektowania, programowania, wdrażania i utrzymywania aplikacji Java.
  • Wiedza o tym, jak programować systemy o dużej objętości i małych opóźnieniach przeznaczone do dużej skalowalności.
  • Solidna znajomość frameworków do budowy projektów webowych (Maven, Gradle), frameworków do projektów korporacyjnych (Spring, Hibernate, Spring Boot), narzędzi do testów jednostkowych (JUnit, Mockito) itp.
  • Zdolność do udziału we wszystkich fazach cyklu rozwoju.
  • Umiejętność pisania wysokiej jakości, wydajnego i łatwego do testowania kodu.
  • Dobra znajomość przeprowadzania analizy oprogramowania, testowania i debugowania kodu Java.
  • Doświadczenie w zarządzaniu rozwojem aplikacji Java i Java EE.
  • Potrafi wymyślać alternatywne podejścia i wdrażać nowsze technologie.
  • Umiejętność jasnego i zwięzłego komunikowania się zarówno z klientami technicznymi, jak i nietechnicznymi.

Ile zarabiają programiści średniego szczebla?

A co z wynagrodzeniami programistów średniego szczebla io ile są wyższe w porównaniu do zarobków programistów Junior? Zobaczmy. W Stanach Zjednoczonych średnia pensja programisty średniego szczebla wynosi 71 000 USD roczniedo Glassdoor, w porównaniu z 63 502 USD rocznie dla młodszych programistów. ZipRecruiter twierdzi, że średnie roczne wynagrodzenie inżyniera oprogramowania średniego szczebla w Stanach Zjednoczonych jest nieco wyższe — 88 725 USD rocznie. „Podczas gdy ZipRecruiter odnotowuje roczne pensje od 131 500 USD do 49 000 USD, większość wynagrodzeń inżynierów oprogramowania średniego szczebla waha się obecnie w Stanach Zjednoczonych od 70 000 do 100 000 USD. 30 000 $), co sugeruje, że niezależnie od lokalizacji nie ma zbyt wielu możliwości podwyższenia wynagrodzenia czy awansu, nawet przy kilkuletnim doświadczeniu – donosi ZipRecruiter . W Niemczech wgPayScale, programista średniego szczebla z 5-9-letnim doświadczeniem, zarabia średnio 54 778 euro. We Francji średnia pensja pracownika średniego wynosi 41 342 euro. Ogólnie rzecz biorąc, programiści średniego szczebla zarabiają od 10 do 30% więcej niż juniorzy, więc zdobycie większych pieniędzy zdecydowanie powinno być jedną z motywacji do jak najszybszego rozwoju od juniora do średniego programisty.

Perspektywy kariery

Oczywiście główną ścieżką rozwoju kariery każdego programisty średniego szczebla jest osiągnięcie poziomu Senior, który jest w zasadzie najwyższym stopniem wśród zwykłych programistów i jedynym prostym celem rozwoju kariery. Zajęłoby to jednak trochę czasu, ponieważ starszy programista musi mieć ponad 10-letnie doświadczenie zawodowe. Istnieją również inne sposoby rozwoju programisty średniego poziomu. Pozycje takie jak Team Lead i Tech Lead byłyby jednymi z głównych opcji, na które można patrzeć w przyszłość po osiągnięciu poziomu Senior.

Jak to jest być programistą średniego poziomu. opinie

Podsumowując, spójrzmy, co starzy i doświadczeni programiści mają do powiedzenia na temat bycia programistą średniego poziomu. „Najlepszym sposobem, aby dostać się na średni poziom, jest zdobycie doświadczenia, przynajmniej kilkuletniego, a być może dłuższego. Chodzi o to, abyś naprawdę wiedział, jak działają projekty, dyrektorzy, menedżerowie, księgowość, spotkania, terminy, polityka itp., a nie tylko to, co powiedziano ci w szkole. Muszą także uczyć się na swoich błędach i regularnie błędnie określać najwyższe priorytety w wielu sytuacjach. Zwykle poprawia się to tylko wraz z doświadczeniem. Będziesz musiał zacząć od stanowiska programisty na poziomie podstawowym. „Gwiazda rocka” może to ominąć dzięki doskonałemu występowi na stażu, który prowadzi bezpośrednio do pełnoetatowej pracy, ale jest to raczej wyjątek niż reguła”, mówi .jego poglądy Dwayne Towell, doświadczony programista z USA „Ostatecznie liczy się tylko to, co dana firma (do której aplikujesz na stanowisko) myśli o programiście średniego poziomu. Możesz nazywać siebie programistą średniego poziomu, jak chcesz, ale jeśli ubiegasz się o 10 stanowisk programisty średniego poziomu i nigdy nie zostajesz zatrudniony, to może nadszedł czas, aby to przemyśleć” — mówi John Morris, starszy programista z ponad 10 lata doświadczenia. „Ta rola jest przeznaczona dla osób, które mogą wnieść wkład w projekt przy niewielkim nadzorze. Można na nich polegać, jeśli chodzi o podejmowanie właściwych decyzji we wdrażaniu, gdy starsi członkowie zespołu zajmują się architekturą. Oczekuje się, że przekształcą zgłoszenia w rozwiązania, zapewnią szacunki dotyczące zadań i pomogą w rozłożeniu większych części pracy. Mogą być w trakcie rozmów z klientami, ale nie oczekuje się, że będą nimi przewodzić” – tak William Hurley, ekspert programista i architekt oprogramowania, podsumował rolę inżyniera oprogramowania średniego szczebla.