Jak rozpoznać wybitnego programistę?

„Najlepsi programiści są nawet do 28 razy lepsi niż najgorsi programiści” – Robert L. Glass

Skoro tak mówi jeden z najsławniejszych i najbardziej utytułowanych programistów na świecie, warto wziąć jego słowa „pod lupę” i zastanowić się: co odróżnia genialnych developerów od tych przeciętnych? Oto kilka nieoczywistych cech, które posiadają wybitni programiści.

1. Nastawienie na Cel

Wielu programistów skupia swoją uwagę na dobrych praktykach programowania (SOLID, DRY, metodologia Agile…), przy czym zapominają oni, czemu to wszystko służy. Genialny developer wie, że programowanie jest dyscypliną wysoce użyteczną, służącą Celowi – który nie jest pięknym kodem, a jego rezultatem.

2. Umiejętność balansowania między pragmatyzmem a perfekcjonizmem

Świetny programista posiada zdolność do tworzenia jednocześnie mistrzowskich, jak i szybkich rozwiązań. Przeciętny programista nie zwraca należytej uwagi na szczegóły lub tkwi w swoim perfekcjonizmie, ignorując wagę użyteczności produktu.

3. Brak awersji do debuggowania i naprawiania bugów

Mierny developer boi się debuggowania nawet własnego kodu. Wielki programista, w poszukiwaniu „winnego” , „zanurza się i wierci” w kodzie z niespotykaną wytrwałością.

4. Pokora

Każdy wybitny programista kiedyś zaczynał swoją drogę. I każdy z nich wiedział, że jeśli chce coś osiągnąć – musi uczyć się od lepszych, bardziej doświadczonych kolegów. Jednak aby się uczyć, trzeba być świadomym własnych słabości i umieć prosić o pomoc. Przeciętnemu programiście brakuje tej odwagi.

5. Rozwinięte umiejętności społeczne

Programista musi efektywnie komunikować się z ludźmi z całej firmy, aby być świetnym w swoim fachu. Dzięki temu jest w stanie szybko zidentyfikować problem, postawić właściwe hipotezy oraz dostarczać właściwych rozwiązań. Jeżeli potrafi porozumiewać się jedynie z innymi developerami – jest w swojej pracy po prostu… dobry.

6. Świadomość biznesowa

Większość inżynierów oprogramowania (szczególnie tych najbardziej utalentowanych) ma tendencję do marnowania swojego czasu na ulepszanie rzeczy, których ulepszenie nic nie zmieni. Wybitni programiści wiedzą, jak budować produkt – mają wyczucie, co liczy się dla klientów, a co nie. Dzięki temu potrafią priorytetyzować swoje zadania i wiedzą, jaki kolejny krok dla firmy podjąć.

7. Zdrowy sceptycyzm

Dobry pogramista znajdzie rozwiązanie, które działa i zakończy pracę. Świetny programista nie zaufa własnemu kodowi, dopóki porządnie go nie sprawdzi – jest więc jak detektyw, którego uwadze nie czmychną nawet najmniejsze bugi.

8. Lenistwo – tak!

Larry Wall, autor „The Perl Programming Languages”, wymienia lenistwo jako jedną z najbardziej wartościowych cech świetnego programisty. Choć brzmi źle, lenistwo jest drogowskazem dla najprostszych i tym samym najszybszych rozwiązań; oznacza zamiłowanie do automatyzacji procesów. Wybitny programista wie, ile jest wart jego czas i nie marnuje go na samodzielne pisanie kodu od nowa. Średni w swoim fachu developer nie korzysta z udogodnień.

Jeśli więc poszukujesz świetnego programisty, zwróć uwagę nie tylko na znajomość języków programowania i doświadczenie kandydata,  ale również na inne, mniej oczywiste cechy – idealny developer widzi więcej niż to, co na ekranie własnego komputera 🙂