Czy żeby zostać seniorem wystarczy się zestarzeć? W normalnym życiu tak ale aby uzyskać status programisty-seniora potrzeba jednak czegoś więcej. Spróbujemy określić czego.
Co dobry senior posiadać powinien
Ponad dekadę temu, trendem dla firm było zatrudnianie programistów na podstawie języka programowania, w którym mieli doświadczenie, frameworków czy stosu technologicznego. Z biegiem czasu okazało się, że warto doceniać programistów z uzupełniającymi umiejętnościami miękkimi. Wiedza techniczna obecnych seniorów jest teraz właściwie podstawą do pracy w branży, stawiając poprzeczkę jeszcze wyżej dla osób dopiero rozpoczynających karierę.
A jakie umiejętności są najbardziej cenione przez firmy technologiczne? Przeglądając ogłoszenia o pracę ale przede wszystkim bazujących na tym kogo firmy ostatecznie zatrudniają, można te umiejętności podzielić na trzy zbiorcze kategorie:
- Wiedza techniczna i kunszt - Zrozumienie podstawowych pojęć z dziedziny informatyki jest podstawą do zostania inżynierem oprogramowania. Nawet jeśli jest to wiedza powszechna, to nauka ta jest rozległa i ciągle się rozwija.
- Zakres i autonomia - Nie żyjemy w świecie, w którym praca w pojedynkę i implementacja specyfikacji z diagramów UML jest już wystarczająca. Ci, którzy wiedzą, jak poruszać się po złożoności wymagającej minimalnego nadzoru, są obecnie niezwykle cennymi profesjonalistami.
- Komunikacja i wywieranie wpływu - Choć nikt nie oczekuje od Ciebie bycia biegłym psychologiem, minęła już era, w której programiści byli introwertykami mówiącymi niezrozumiałym, obcym językiem. Wiedza, jak pracować z ludźmi i współdziałać z partnerami nietechnicznymi jest cenioną umiejętnością na rynku.
Jego wysokość Pan starszy inżynier oprogramowania
Słynny „senior” to wyjątkowo niejasny termin. Na ogół jest to po prostu tytuł, który reprezentuje miejsce, w którym się znajdujesz w drabinie swojej firmy, jeśli taka w ogóle istnieje.
Bycie uznanym za seniora zależy od wielu różnych aspektów, takich jak to jak są cenione Twoje umiejętności w branży, w której pracujesz, jakie są oczekiwania firmy, jaki wkład wniosłeś do niej i wiele innych, czasem zupełnie nieprzewidywalnych kwestii. Czasami nawet to, w jakich firmach pracowałeś wcześniej, ma duże znaczenie. A czasami liczy się po prostu szczęście.
Rozpoczęcie kariery
Przez większość czasu będziesz pracował nad bardzo konkretnymi problemami, małymi funkcjami lub poprawkami błędów, dopóki nie nabierzesz wprawy i nie będziesz dobrze rozumiał produktu lub systemu, który pomagasz rozwijać – jako całości. Zaczniesz pracować w parze z bardziej doświadczonymi programistami i uczyć się na podstawie przeglądów kodu i informacji zwrotnych od swoich partnerów.
Praca jako zaawansowany programista
Znasz już projektowanie algorytmów, struktury danych, wzorce projektowe oraz narzędzia i frameworki, z którymi pracujesz. Masz bardzo głębokie doświadczenie z co najmniej jedną częścią stosu technologicznego, z którym pracujesz. Jesteś w stanie dostarczyć złożone kawałki oprogramowania z bardzo małym nadzorem nad swoją pracą. Ba, oczekuje się już nawet iż możesz pomóc mniej doświadczonym kolegom rozwijać się.
Jest to czas w karierze, że zaczynają się okazje do prowadzenia własnych, małych projektów. Większość programistów pozostaje na tym poziomie przez wiele lat.
Dochodzimy do seniora
Kodowanie w ogóle zaczyna stawać się mniej ważne, ponieważ jesteś teraz „głosem mędrca” dla swojego zespołu i całej organizacji. Rozumiesz jak dokonać trudnych kompromisów na poziomie architektury aplikacji w całej domenie. Czuwasz nad znaczną częścią firmowej bazy kodów, nadzorujesz jej ewolucję i pracę innych programistów a także doradzasz innym zespołom. Jesteś wpływowy i dochodzisz do punktu zwrotnego, w którym zaczynasz rozważać przejście do roli lidera. Zwykle potrzeba kilku lat, aby znaleźć się na tym poziomie.