Czy jesteś już seniorem? Pięć typów programistów

Często poruszamy ten temat z kolegami. Każdy z nas inaczej ocenia poziom seniora. Dlatego poniżej zebrałem pięć grup programistów nazywających siebie seniorem, dla każdego przygotowałem też opis i moje przemyślenia. Jestem ciekaw, czy znacie choć jedną z poniższych grup.

Rafał Jaworowski. Senior Developer w Onwelo. Wcześniej Senior Developer w AON, a jeszcze wcześniej (Developer/Senior Developer/Architekt) w PKP Informatyka. Pasjonat słuchania innych ludzi i uczenia się od nich. Dobry kolega z zespołu i osoba, której nie zależy na nazwie stanowiska a na ludziach. Lubi rozmawiać o architekturze i stara się rozumieć potrzeby innych. Chętnie pomaga, „bo wół nie zapomniał jak cielęciem był”.


Pierwszy typ programistów

Jesteś seniorem, gdy rozumiesz w 100% SOLID, piszesz w TDD i oczywiście wiesz, kto to uncle Bob, jak również chodzisz na wszystkie spotkania odnośnie technologii, w której pracujesz. 

Moje zdanie: Twój kod powinien być przetestowany, zgadzam się w 100%. Najtrudniejsze jest pytanie jak głęboko wchodzisz w testy. W wymyślaniu UnitTest można naprawdę przesadzić czasowo i nie oddać zadania na czas albo zrobić testy tak trudne, że narzut ich poprawienia względem kodu to np. 9/10, bo jednak istnieje takie coś jak utrzymanie po deweloperce. 

W jednym z projektów, w których pracowałem mieliśmy nawet trzy typy takich testów UnitTests (tutaj najwięcej było ustaleń czym takie testy są. Według nas korzystają z InMemory, testują części a nie cały proces), IntegrationTests (z bazą danych stawianą przed uruchomieniem testu, plus test całego procesu) oraz ContinuousIntegrationTest (stawiają sobie Api, Service, a potem na TeamCity testuje raz w nocy cały system z prawdziwą konfiguracją). Bardzo wolne testy mogą trwać nawet godzinę. Jednak dają najwięcej informacji. 

Drugi typ programistów

Jesteś seniorem, gdy piszesz trudny kod. Używasz ciągle klas generycznych i klas abstrakcyjnych. Prosty system do przerzucania plików z miejsca na miejsce napiszesz w taki sposób, że jak ktoś wejdzie do repozytorium pomyśli, ale skomplikowany program, pewnie dużo robi (oczywiście zastosujesz tam wiele wzorców, aby była pełna profeska). 

Moje zdanie: Jak nadużywasz takich rzeczy, to wiadomo, że junior Ciebie pokocha. Będzie myślał, że jesteś geniuszem, będziesz jego mistrzem. Nie zdziw się jednak, kiedy część Twoich kolegów (MID/Senior) będzie traktować Ciebie jak juniora. Ponieważ twój kod jest bardzo trudny w utrzymaniu. Dlatego przemyśl dziesięć razy zanim zamotasz kod. Pamiętaj również, że cechą juniora jest nadużywanie klas generycznych i klas abstrakcyjnych, ponieważ niedawno przeczytali, jak to działa a teraz się bawią.    

Trzeci typ programistów

Jesteś seniorem, gdy w jednej firmie pracujesz 20 lat. Masz 20 lat doświadczenia jako deweloper. 

Moje zdanie: Lata spędzone w firmie nie czynią z ciebie seniora. Możesz przez 20 lat posiadać roczne doświadczenie. 

Czwarty typ programistów 

Jesteś seniorem, kiedy jesteś samodzielny i twój kod działa. 

Moje zdanie: To, że kod działa, to 20% sukcesu. Jeśli nie piszesz w ogóle testów na pewno rozumiesz o czym mówię. Testy regresji zrobi ktoś za Ciebie, kto będzie do tego zmuszony. Taki kod często leży na produkcji, chyba, że interfejs białkowy jest naprawdę mocny. Wtedy to, że nie napisałeś testów sprawia, że pięć osób ma pracę. Oczywiście jest to szlachetne, jeśli jest świadome działanie z twojej strony.  

Mid czy senior – czy ważne jest stanowisko?

Tych grup jest jeszcze więcej… i pewnie jak rozmawiacie z kumplami to ktoś jeszcze inaczej rozumie stanowisko seniora. Temat jest niestety bardziej skomplikowany. Pamiętaj, że rynek różnie ocenia i czasem na bezrybiu rak to też ryba. Jednak moim zdaniem: czy to ważne czy jesteś seniorem czy midem? Ważne abyś podchodził do pracy z zapałem, abyś czytał o nowościach i nie tylko odnośnie Twojego języka. Osobiście jestem na grupie Unity Developers, a jeszcze ani jednej gry nie zrobiłem i być może nigdy nie zrobię. Jednak jestem na bieżąco, rozumiem jakie są trendy nie tylko w mojej technologii. Staram się, jak mój przełożony wpadnie na pomysł zapytać: „Rafał jakie jest Twoje zdanie?”, uświadomić go jakie są trendy i w co warto iść. Nie tylko w mojej technologii. 

Fajnie, gdy będziesz dążył do dyskusji w zespole o architekturze przynajmniej raz w tygodniu. Możesz wtedy nauczyć czegoś kolegów, jak również koledzy mogą nauczyć Ciebie nowych ciekawych rozwiązań. Jeśli zespół nie rozmawia o architekturze to masz 100% pewność, że nie jesteś w zespole osób kompetentnych, a twoja wiedza prawdopodobnie się dewaluuje.

Nie bazuj też na tym co już wiesz, bo rynek się zmienia i możesz proponować dawno przestarzałe rozwiązanie. Ty będziesz szczęśliwy, ale możesz spotkać się z hejtem albo stracisz czas nie ucząc się niczego nowego. Jak czegoś nie wiesz to pytaj innych, nie ma głupich pytań. Seniorzy też pytają. 

Nie raz się spotkałem z sytuacją, że Senior nie pytał, a potem oddał zupełnie co innego niż chciał Architekt. Warto też pamiętać, że każdy z nas jest lepszy w czymś innym. Część z nas posiada większą wiedzę o nowościach, inni posiadają umysły matematyczne, a jeszcze inni są fanami TDD. Oczywiście te cechy mogą się mieszać, warto jednak nie oceniać innych nie dowiadując się najpierw w czym oni są dobrzy, bo to, że już są w czymś słabi to wiesz. 

Piąty typ to też senior?

Jestem ciekaw Waszego zdania na temat tego typu seniora. Chłopak wie wszystko o technologii .NET, świetnie ogarnia bazy danych, najtrudniejsze rozwiązania potrafi implementować (posiada 10 lat doświadczenia). Jest geniuszem. Jednak uważa, że testów nie warto pisać i najlepiej testować na produkcji. Jest przeciw Pull Requestom i code review, bo to strata czasu. Jego kod raz na cztery commity nie kompiluje się, dodatkowo ma manię wyższości i jego odpowiedzią na pisanie testów jest sugerowanie, że twórca Linux też nie pisze testów. Tak, on uważa się na równi z nim. Jeśli chodzi o wiedzę, przewyższa wszystkich w zespole i pewnie wielu na rynku. Jest geniuszem, ale nie seniorem (oczywiście nadal wierzę, że się nawróci). 

Wasze opinie możecie zostawić w komentarzach, jeśli chcecie coś dodać albo z czymś się nie zgadzacie. Serdecznie dziękuje Wam za poświęcony czas. Wiem, jak jest cenny. Mam nadzieję, że Was nie zanudziłem. 


Zdjęcie główne artykułu pochodzi z unsplash.com.

Zapraszamy do dyskusji

Patronujemy

 
 
Polecamy
Pierwsze lata nauki programowania zajmowały mi 24/7. Historia Adama Pozorka