Różnica między programistami różnych szczebli

Czym różni się Senior Developer od Regulara czy Juniora?

Czytam sobie na grupach wypowiedzi różnych osób. Czasami pada pytanie, czym różni się Senior Developer od Regulara czy Juniora. To jest bardzo interesujące pytanie dla wszystkich i pokuszę się oczywiście o drobną refleksje.

Widełki finansowe są głupie, a nawet bezdennie głupie. Nie chodzi o pieniądze i stanowisko w korporacji, mimo że wciąż nas w nie upychają. Nie chodzi także o ilość czasu spędzonego na wytwarzaniu oprogramowania. Moim zdaniem ma to wiele wspólnego z tym, jak programista postrzega swoją pracę i jak współdziała z innymi oraz jak podchodzi do problemów. Ale zacznijmy od początku.

Młodszy programista

Juniorzy są niedoświadczeni. W niektórych przypadkach niedawno ukończyli studia i po raz pierwszy pracują w pełnym wymiarze godzin jako programista. Jednak we wszystkich przypadkach wymagają czasu od innych członków zespołu. Wynika to z faktu, że młodsi programiści zazwyczaj nie mogą samodzielnie wykonywać skomplikowanych prac.

Młodsi programiści podchodzą do opracowywania oprogramowania w celu „sprawienia, aby działało”. Dla nich działające oprogramowanie i dobre oprogramowanie są równoważne. W związku z tym postrzegają wzrost w swoim rzemiośle jako naukę składni jednego lub więcej określonych języków, naukę pewnych technicznych podejść, a może nawet uczenie się, dlaczego działają określone techniczne szczegóły.

Regularzy/Midzi

Programiści średniego poziomu mogą zasadniczo działać samodzielnie, aby rozwiązywać ukierunkowane problemy techniczne. Można ich nawet uznać za bardzo mocnych technicznie w co najmniej jednym obszarze. W niektórych organizacjach widziałem nawet programistów średniego szczebla, nazywanych starszymi programistami. Jeszcze niedawno sam czułem się regularem, ale nazywali mnie seniorem, co jest śmieszne.

Regularzy nie są wcale seniorami. Oni opanowali dobrze swoje rzemiosło i może nawet są uznawani za seniorów z perspektywy juniorów lub innych midów. Ale tak naprawdę istnieje ogromna przepaść pomiędzy regularami i seniorami. A wiecie czemu? Ponieważ przejście na poziom seniora wymaga zmiany perspektywy.

Regularzy oczywiście doskonale wiedzą, jak rozwiązywać technicznie złożone problemy. Mogą to być także osoby, które chcą wycisnąć niesamowitą wydajność przy niewiarygodnym koszcie złożoności. Podanie jak junior, regular dostrzega działające oprogramowanie i dobre oprogramowanie. Regularzy są szczególnie dobrzy w tworzeniu działającego oprogramowania.

Starszy programista

W pewnym momencie każdemu z nas otwierają się oczy. Wychodzi się już z wojen między językami programowania i doskonale się rozumie różne niuanse pomiędzy językami. Senior developer rozumie różnice pomiędzy działającym oprogramowaniem a dobrym oprogramowaniem. Dobre oprogramowanie nie dość że robi to co powinno, to jeszcze jest niezwykle skalowalne w rozwoju. Seniorzy nie myślą w kategoriach indywidualnych klas, metod czy funkcji, działających na niskim poziomie. Myślą raczej w kategoriach oprogramowania zorientowanego obiektowo i wzorców projektowych.

Starsi programiści nie rozwiązują problemów, pisząc jeszcze więcej kodu. I nigdy nie rozwiązują problemów samodzielnie. Są efektywnymi członkami zespołu, który podchodzi do problemów na poziomie aplikacji, a nie na poziomie poszczególnych funkcji. Nie skupiają się na tym, jak napisać oprogramowanie, ale na tym, co oprogramowanie ma robić.

Starsi programiści mówią tym samym językiem, co programiści średniego i średniego poziomu, ale podchodzą do problemów z innego kierunku. Dla starszych programistów istnieje różnica między dobrym oprogramowaniem a działającym oprogramowaniem. Różnica polega na tym, jak jest on złożony, jak jest używany i jak zostanie ponownie wykorzystany.