Błędy programistów – jak ich unikać?

04.09.2020

Artykuł

Świat wokół nas cały jest skomputeryzowany. Niezwykły rozwój, jaki przeszły technologie informacyjne, czasem jest wręcz onieśmielający. Wspaniałe dzieła elektroniki sprawiają wrażenie idealnych. Ludzie, którzy je rozumieją, mogą wydawać się geniuszami. Ale jak to jest, że nauka programowania idzie często tak opornie, a błędy programistów są codziennością? Czy ta branża dostępna jest wyłącznie dla utalentowanych wybrańców? Przyjrzyjmy się temu!

Programiści rządzą światem?

Śmiałe stwierdzenie – ale zobaczmy, czy ma jakieś podstawy. Z każdym dniem wokół nas przybywa elektroniki, z której przeciętny człowiek niewiele rozumie. Kolejne technologie są po prostu coraz bardziej skomplikowane. Popularnonaukowe magazyny i portale internetowe tłumaczą je przystępnie, ale zawsze dzieje się to za cenę jakichś uproszczeń czy pominięć. Niestety, tylko eksperci naprawdę znają się na… swojej wąskiej specjalizacji, nie na wszystkim.

Stąd wynikać może wizerunek “specjalisty-magika”, który naprawdę rozumie, o co w tych komputerach chodzi. Przyczynia się to do budowania prestiżu wokół stanowisk z branży IT. Lekarze i prawnicy (stereotypowo) cieszą się poważaniem, bo mało kto pojmuje ludzki organizm i treści ustaw i ludzki organizm. Podobnie informatycy – im mniej ludzi ogarnia działanie komputerów, tym większy mogą zyskać szacunek.

Z drugiej strony, sporo wokół tego narosło stereotypów i mylnych wyobrażeń. Programista nie zawsze umie naprawić niedziałający router. Nie musi też znać się na sprzęcie. Nie potrzebuje wiedzieć wszystkiego o wszelkich algorytmach i niekoniecznie wie, dlaczego komputer się akurat zawiesił. Ciężko to czasem wytłumaczyć laikom…

Błędy programistów się zdarzają.  Zejdźmy na ziemię!

Patrząc realistycznie, mnóstwo jest grup społecznych, które mogą dumnie twierdzić: “bez nas świat by przepadł”. Lekarze, strażacy, budowlańcy, górnicy, nauczyciele i tak dalej, i tak dalej… Tak naprawdę to nie warto się o to kłócić. Prawda jest taka, że wszyscy oni pozostają ludźmi, niewiele różniącymi się od przeciętnego Kowalskiego. Nie są zatem nieomylni. Od czasu do czasu, niestety, trochę o tym zapominają.

Kiedy zaś laik bierze się do poważniejszej nauki programowania, nieraz może być onieśmielony przez bardziej doświadczonych kolegów. Zależy to oczywiście od sposobu bycia konkretnych osób, z którymi ma się kontakt, ale warto zwrócić uwagę na kilka pozornie oczywistych prawd:

  • Podczas nauki błędy są nieuniknione. Każdy przez nie przechodził, wszyscy się na nich uczą – to całkiem normalne. Jedną z metod uczenia się jest ciągłe próbowanie do skutku, aż program zadziała – oczywiście nie w ciemno. Popularnym zadaniem testowym jest: “masz kod, wyszukaj w nim błędy”.
  • Eksperci też się mylą. Kolejne lata nauki to kolejne szanse na pomyłki. Dobrze, jeśli nie powtarza się ich od nowa – choć to też się zdarza. Z czasem po prostu trochę rzadziej mawia się: “kurczę, nigdy jeszcze takiego błędu nie widziałem!”.
  • Wszystkiego nie ogarnia nikt. Odpowiednie wykształcenie daje podstawy wiedzy w wielu dziedzinach – od technologii produkcji układów scalonych po statystyczne metody mierzenia wydajności programów. Nie da się jednak być znawcą we wszystkich niezliczonych dziedzinach, dzięki którym komputery są współcześnie takie, a nie inne.
  • Istnieją sposoby mierzenia i odnajdywania pomyłek. W większych organizacjach używa się rozbudowanych systemów do nadzorowania pracy nad poprawianiem czyichś błędów. Dzięki nim można dokumentować błędy, ich objawy, szkodliwość, przyczyny. Zlicza się bugi obecne w dostarczanym kodzie, czas potrzebny na naprawę, a nawet ich rozmieszczenie.
  • Narzędzia dla programistów ograniczają błędy. Dlatego istnieją techniki obsługi wyjątków, ostrzeżenia kompilatorów, edytory kolorujące składnię, debuggery. Dlatego powstały języki programowania, bazujące na angielskich słowach zamiast na kodach binarnych.

Błędy programistów – co, gdy się wydarzą?

Mniej doświadczeni nieraz wstydzą się popełnianych gaf, traktując je jak osobiste porażki. Warto pracować nad tak negatywnym nastawieniem. Jeśli mamy problem z czymkolwiek niedziałającym, niezrozumiałym, nie ma powodu, aby ociągać się z zadawaniem pytań. To sposób na naukę! Co więcej, człowiek nigdy nie jest za stary, aby zadać pytanie nowicjusza, nawet dużo młodszemu koledze. To może tylko znaczyć, że potrzebował nauczyć się czegoś.

W większości przypadków spotyka się to raczej ze zrozumieniem, a nie potępieniem. Ten, kto ma kłopot i szuka pomocy, rozwija się przez naukę. Ten, kto popełnił błąd i szuka pomocy, najpewniej będzie umiał go sprawnie naprawić. W obu przypadkach lepiej jest zachęcić go do pracy niż deprymować wytykaniem palcami.

Dobry developer nie ufa sam sobie

Tak, zgadza się! To znana z ruchu drogowego zasada ograniczonego zaufania. Błędy programistów się po prostu zdarzają. Początkujący mogą mieć wrażenie, że uważne pisanie wystarczy i błędów po prostu nie będzie. Zaawansowani natomiast świetnie wiedzą, że nigdy nie powinni wbijać się w taką dumę. Przyczyn błędów jest za wiele, a systemy informatyczne są zbyt złożone, aby ogarnąć je jednym umysłem. Dlatego powstały liczne sposoby zapobiegania błędom na wielu poziomach. To jednak temat na inny artykuł. Tymczasem pozostańmy z konkluzją: warto popełniać błędy w trakcie nauki, aby uczyć się na nich. Dzięki temu później będzie już wiadomo, jak sobie z nimi poradzić!