Nasza strona używa cookies. Dowiedz się więcej o celu ich używania i zmianie ustawień w przeglądarce. Korzystając ze strony, wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki. Rozumiem

Dobry programista. Czym się wyróżnia?

Zobacz, dlaczego dobry programista bez rozwoju, umiejętności zadawania pytań oraz szacunku do czasu daleko nie zajedzie.
Dobry programista. Czym się wyróżnia?

Wielu koderów będzie mówiło o sobie, że są dobrymi programistami. W niektórych przypadkach rzeczywiście tak będzie. Problem polega jednak na tym, że dla każdej z tych osób określenie „dobry programista” może oznaczać co innego. Dlatego warto zastanowić się, czym wyróżnia się dobry programista i co sprawia, że możemy go w ten sposób nazywać.

Według badania Evans Data Corporation na świecie jest 23,9 mln zawodowych programistów. To ogromna społeczność. O ilu z nich można powiedzieć, że to dobrzy programiści? Niestety, tego nie wiadomo. Nie ma żadnych wiarygodnych badań na ten temat. Czy łatwo byłoby je w ogóle wykonać? To pytanie do naukowców, ale możemy się domyślać, że najpierw trzeba by wyodrębnić pewne charakterystyczne cechy dobrego programisty, postawę, sposób działania.

Dobry koder powinien mieć oczywiście dużą wiedzę na temat programowania i najnowocześniejszych technologii. To oczywiste. Ale co jeszcze?


Stawia na rozwój

Duża wiedza i umiejętności programistyczne to jedno, ale dobry programista stawia także na nieustanny rozwój. Chociaż wiele osób, które postawiło np. na studia. kończy naukę wraz z opuszczeniem murów uczelni lub szkoły, dobry programista nie należy do tego grona. Taka osoba ma zupełnie inne nastawienie. Charakteryzuje go coś, co można określić terminem „lifelong learning”, czyli uczenie się przez całe życie.

Sama forma zdobywania wiedzy nie ma tu kluczowego znaczenia i zależy od indywidualnych preferencji i czasu, jaki można przeznaczyć na naukę, możliwości finansowych itp. Dobry programista ma instynkt poszukiwacza wiedzy, ma świadomość, że branża IT rozwija się bardzo szybko i trzeba ciągle się uczyć, doskonalić, aby pozostać wartościowym koderem.

Robert C. Martin w książce „Mistrz czystego kodu. Kodeks postępowania profesjonalnych programistów” napisał nawet, że:

40 godzin w tygodniu należy poświęcić pracodawcy, a 20 godzin zachować dla siebie, czytając, ucząc się i ćwicząc w tym czasie, aby zwiększać nieustannie swoje umiejętności jako programisty.

Martin przestrzega również w swojej książce, że:

Biada programistom, którzy przestali się uczyć nowych języków. Będą mogli tylko popatrzeć, jak oddala się od nich czołówka.

Dobry programista nigdy sobie na to nie pozwoli, a dodatkowo będzie regularnie sprawdzał poziom swojej wiedzy i swoje umiejętności w praktyce, na przykład korzystając z takich narzędzi, jak Codility.


Szanuje czas

Dla profesjonalisty czas jest bardzo cenny. Dobry programista nie może pozwolić sobie na jego marnowanie. Dlatego taka osoba szanuje czas zarówno własny, jak i innych ludzi. Co to oznacza w praktyce? Przede wszystkim chodzi o mądre i efektywne zarządzanie czasem, a ściślej pisząc, odpowiednie rozplanowanie zadań i wykonywanie wszelkich czynności jak najmniejszym kosztem sił i przeznaczonych na to minut. Np. unikanie wysyłania niekończących się e-maili (czasem lepiej zadzwonić), odpowiadania od razu na każdą wiadomość, pozostawiania najważniejszych i najtrudniejszych zadań na koniec dnia, rezygnacja z przedłużających się, bezproduktywnych spotkań itp.

Można korzystać tak naprawdę z bardzo różnych metod zarządzania czasem, na przykład techniki pomodoro (ustawienie czasomierza na 25 minut i w tym czasie skupienie się tylko i wyłącznie na konkretnym zadaniu), 5S (odpowiednio zorganizowane stanowisko pracy, które w rezultacie podnosi wydajność – usunięcie niepotrzebnych rzeczy, przypisane najczęściej używanym rzeczom konkretnych miejsc, zachowanie ładu na biurku, ustalenie stałych interwałów pracy i samodyscyplina we wdrażaniu tych zasad), czy prawidłowe używanie metodyki scrum (jedna z metodyk zwinnych, praca podzielona na mniejsze etapy, wyodrębnienie zadań zaplanowanych, realizowanych, weryfikowanych, pilnych do zakończenia, wykonanych) itp.

Dobry programista nie traci czasu, potrafi go oszacować w odniesieniu do specyfiki konkretnego projektu, świadomie planuje zadania i w skupieniu je wykonuje. Taki profesjonalista unika brnięcia w bałagan. Gdy dostrzega, że dany kod mógłby być lepszy, od razu go poprawia, ponieważ zdaje sobie sprawę, że prędzej czy później i tak będzie to musiał zrobić.

Ważne jest także to, że dobry programista nie pozwala nakładać na siebie zbyt dużej presji, nie bierze dodatkowych zobowiązań, które mogłyby obniżyć jakość jego pracy. Taki koder unika pośpiechu, ponieważ doskonale wie, że to wróg wysokiej jakości pracy. Woli skupić się na utrzymaniu czystego kodu, co pozwala mu dalej go rozwijać bez kłopotu. W czasie kryzysu i presji wywołanej deadlinem ciągle zachowuje spokój i stosuje swoje sprawdzone, wypracowane w praktyce metody. Często to właśnie takie podejście ratuje projekt, który nagle zaczyna się sypać.


Przygotowuje dokładną dokumentację

Wielu programistów przyznaje, że przygotowywanie dokumentacji jest jedną z tych kwestii, które są znienawidzone przez koderów. Nic dziwnego, że niejeden programista reaguje na słowo „dokumentacja” alergicznie. Problem polega jednak na tym, że z jednej strony programiści nienawidzą pisania dokumentacji, a z drugiej – nienawidzą źle napisanej dokumentacji. I tak źle, i tak niedobrze.

Dobry koder nie traktuje przygotowywania dokumentacji jako zła koniecznego. Ma zupełnie inne podejście do tej kwestii. Zdaje sobie doskonale sprawę, że im dokładniejsza dokumentacja już od samego początku rozwijania projektu, tym sprawniej będzie przebiegała praca, a członkowie zespołu będą mogli lepiej wykonywać swoje zadania.

Dobry programista ma nawyk, aby maksymalnie ułatwiać pracę wszędzie tam, gdzie to tylko możliwe. Przekłada się to również na tworzoną przez niego dokumentację i jej poziom. Jest ona dokładna, pozbawiona błędów, spójna i napisana w sposób jasny, a do tego można w niej znaleźć łatwo potrzebne informacje. Dzięki takiej dokumentacji nie tylko członkowie zespołu łatwiej pracują, ale również w przyszłości będą miały ułatwione zadanie te osoby, które będą wprowadzały zmiany w kodzie lub będą implementowały nowe funkcjonalności. Najczęściej kończy się to generowaniem znakomitej części dokumentacji z kodu przy pomocy odpowiednich narzędzi. I jeszcze jedno: dobry programista regularnie aktualizuje dokumentację.


Zadaje pytania

Sokrates uparcie powtarzał przez cały dzień: Oida ouden eidos! To znaczy po prostu: wiem, że nic nie wiem. Z dobrym programistą jest podobnie. Potrafi się przyznać do swojej niewiedzy, w przeciwieństwie do wielu innych koderów, którzy tylko stwarzają pozory, że mają wiedzę na jakiś temat. W rezultacie okazuje się, że ci ostatni w panice poszukują rozwiązania w internecie i bywa, że przywłaszczają go sobie. Wtedy niejeden współpracownik myśli sobie „To jest dopiero programista!”.

Jednak takie oszukiwanie współpracowników, a przede wszystkim samego siebie, do niczego dobrego nie prowadzi. Programowanie to zawód oparty na wiedzy, a nie ma człowieka, który wie wszystko. Dobry programista nie ukrywa tego i potrafi zadawać pytania tym, którzy znają odpowiedź, zaprasza ich do wspólnego rozwiązywania problemu i jednocześnie przez cały czas się uczy. Poszukuje podpowiedzi i rozwiązań, korzystając z różnych źródeł. Przyznanie się do własnych ograniczeń jest pierwszym krokiem do wielkości, również w programowaniu.


Zawsze testuje swój kod

Dobry programista nie unika testowania własnego kodu. Robi to na każdym etapie pracy nad projektem. To bardzo rozsądne podejście, ponieważ pozwala uniknąć żmudnego poszukiwania błędu, gdy większość kodu jest już gotowa. Wtedy konieczne jest często zaangażowanie większych sił i zainwestowanie więcej czasu, aby wykryć buga. Nic dziwnego, że w takiej sytuacji dużą popularność zyskują takie techniki tworzenia oprogramowania, jak np. TDD.

Dobry programista doskonale wie, że lepiej wykorzystać TDD, niż później zmagać się ze żmudnym debugowaniem kodu. Dzięki testom jednostkowym profesjonalista sprawdzi, czy kod rzeczywiście działa tak jak powinien. TDD to jeden z przykładów, bo profesjonalny developer może korzystać z wielu różnych rodzajów testów. Oprócz tego, że pisze testy, dba o ich jakość, która jest dużo ważniejsza niż ich ilość.


Podsumowanie

To zestawienie nie wyczerpuje wszystkich kwestii, jakie mogą wpływać na to, czy danego programistę uznamy za dobrego. Nie taka była zresztą intencja tego artykułu. Chodziło raczej o zasygnalizowanie problemu i sprowokowanie przemyśleń. Warto usiąść i rozejrzeć się dookoła. Być może w Twoim sąsiedztwie znajduje się taki dobry programista. Wtedy warto zastanowić się, co jeszcze sprawia, że uznajesz go za dobrego kodera. I wyciągnąć z tego odpowiednie wnioski. Powodzenia

Masz coś do powiedzenia?

Podziel się tym z 120 tysiącami naszych czytelników

Dowiedz się więcej