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.
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.
GO TO FULL VERSION