C++ jest bardzo popularnym językiem programowania i wielu programistów porusza się w nim dość swobodnie. Jednak żeby awansować z juniora na specjalistę, a tym bardziej seniora, trzeba mieć wiedzę i umiejętności, które czasem bardzo daleko wykraczają poza to, z czym zwykle kojarzy się praca programisty.
Znajomość systemów operacyjnych
Ponieważ C++ jest językiem używanym przeważnie do pisania bardzo skomplikowanych aplikacji, to często realizowane w tym języku zadania wymagają perfekcyjnego osadzenia w zasadach systemu operacyjnego. Praca senior C++ developer wymaga na tyle dobrej znajomości wszystkich systemów, żeby umieć zawczasu przewidywać problemy implementacyjne lub brak zgodności z konkretnymi platformami. Jednym z najczęstszych problemów są różnice w implementacji API systemowych, bez których programy mogą nie działać właściwie.
Komunikacja i koordynacja
Senior developer często zajmuje się w mniejszym stopniu programowaniem, a w większym zarządzaniem zespołem programistów. Umiejętność pisania najbardziej złożonych funkcji nie podlega więc dyskusji, ale to samo można powiedzieć o zdolnościach komunikacyjnych oraz umiejętności koordynacji grupy. Ponieważ senior C++ developer często jest właściwie mentorem dla mniej doświadczonych programistów, musi jednocześnie mieć potężną wiedzę oraz umieć ją skutecznie przekazywać
Programowanie wielowątkowe i współbieżne
Te dwa zagadnienia są związane z pisaniem programów w C++ na każdym poziomie. Ten język po prostu nie jest stosowany zwykle do realizacji prostych zadań, co oznacza, że na porządku dziennym jest wykorzystywanie wielu wątków na maszynie. Zrobienie tego w sposób optymalny to jednak zupełnie inny poziom złożoności. Oczywiście należy opanowywać tę umiejętność od najwcześniejszych etapów, ale od senior developera pracującego w C++ oczekuje się, że będzie on umiał w sposób perfekcyjny wykorzystać możliwości dawane przez nowoczesne procesory i obsługujące je systemy operacyjne.
Jeszcze więcej doświadczenia
Tym, co na pewno musi mieć senior, jest olbrzymie doświadczenie. I nie chodzi tylko o pisanie i utrzymywanie programów, ale o udokumentowany udział w pisaniu funkcji o specyficznych konstrukcjach i zadaniach. Doświadczenie musi bowiem obejmować także zadania związane z najtrudniejszymi aspektami C++, czyli wykorzystaniem pamięci czy budową optymalnej struktury programów. W teorii brzmi to dość prosto, jednak praktyka pokazuje, że właśnie na tym etapie projektowania aplikacji bardzo często popełnia się kluczowe błędy, a dopóki taka sytuacja będzie miała miejsce, nie można liczyć na stanowisko senior developera.