zrozumiec-programiste

Zrozumieć programistę

Każdy z nas kiedyś coś komuś musiał tłumaczyć i każdemu zdarzyło się też kiedyś frustrować, jak po raz 3 nie może zrozumieć czegoś, co „dziecko już dawno by załapało”. Obalając popularny mit, programiści to też ludzie, z tym, że wielu już poddało się w tłumaczeniu innym, na czym polega ich praca.

Jeśli kiedyś przypadkiem natknąłeś się na fragment kodu, pewnie zadałeś sobie wtedy pytanie, jak to jest, że tu jakieś dodawanie, tu jakieś klamry, tam średnik sprawia, że możesz np. pobrać ze strony PKP swój bilet. Odpowiedź zawiera się w jednym słowie – dekompozycja. Programiści starają się rozłożyć każde zadanie na jak najprostsze czynniki, z których ostatecznie powstaje program.

Jak to działa w praktyce? Praca programisty w dużym uproszeniu przypomina następującą zagadkę (odpowiedzi znajdują się poniżej).

Pytania:

  1. W samolocie jest 400 cegieł, wyrzuciłaś 1. Ile zostało?
  2. Jak w trzech krokach wsadzić słonia do lodówki?
  3. Jak w 4 krokach wsadzić łosia do lodówki?
  4. Jak w 4 krokach wsadzić sarenkę do lodówki?
  5. Król lew organizuje urodziny. Zaprosił wszystkie zwierzęta. Jakiego nie było?
  6. Czy babci uda się przepłynąć rzekę pełną krokodyli?
  7. Jakimś dziwny cudem babcia zginęła, co się stało?

Odpowiedzi do zagadki:

  1. W samolocie jest 400 cegieł, wyrzuciłaś 1. Ile zostało? Zostało 399 cegieł.
  2. Jak w trzech krokach wsadzić słonia do lodówki? Otworzyć lodówkę, wsadzić słonia, zamknąć lodówkę.
  3. Jak w 4 krokach wsadzić łosia do lodówki? Otworzyć lodówkę, wyciągnąć słonia, wsadzić łosia, zamknąć lodówkę.
  4. Jak w 4 krokach wsadzić sarenkę do lodówki? Otworzyć lodówkę, wyciągnąć łosia, wsadzić sarenkę, zamknąć lodówkę.
  5. Król lew organizuje urodziny. Zaprosił wszystkie zwierzęta. Jakiego nie było? Sarenki, bo siedzi w lodówce.
  6. Czy babci uda się przepłynąć rzekę pełną krokodyli? Tak, bo krokodyle są na imprezie króla lwa.
  7. Jakimś dziwny cudem babcia zginęła, co się stało? Zabiła ją cegła wyrzucona z samolotu.

Aby poprawnie rozwiązać zagadkę, należy przede wszystkim:

  • znać reguły gry, czyli to, że poprzednie akcje wpływają na obecne,
  • zwracać uwagę na rozwój gry, pamiętać wszystkie akcje od początku do końca,
  • dekomponować problem na mniejsze części.

I te cechy są bardzo istotne w pracy programisty. Reguły gry możemy rozumieć jako język programowania, to on daje nam możliwości i ograniczenia do przekładania toku myślenia na program. Rozwój gry to nic innego jak rozwój programu – programiści muszą zwracać uwagę na pozostałe moduły, które są w systemie, inaczej wprowadzenie nowej funkcjonalności może popsuć starą (a w najgorszym przypadku kluczową funkcjonalność do działania programu). Ostatnią cechą jest umiejętność dekomponowania problemu na najmniejsze części. „Otwórz lodówkę, włóż słonia, zamknij lodówkę” – z takimi problemami programiści stykają się na co dzień. I właśnie na takie myślenie należy się przestawić, że zrozumieć programistę.

Wróćmy do naszego problemu z pobraniem biletu na pociąg.

Pytanie: Jak pobrać bilet?

Odpowiedź: Wejść na stronę PKP -> zalogować się -> pobrać listę biletów -> wybrać bilet -> wysłać do serwera numer biletu -> serwer zwraca link do pobrania pliku -> pobieramy bilet.

I jeszcze jedno — jeśli poprosisz kiedyś programistę, żeby wytłumaczył Ci, jak to działa, a on zacznie tłumaczyć poszczególne kroki w podstawowy sposób, nie obrażaj się, bo jego mózg działa tak cały czas.