Nasza strona używa cookies. Korzystając ze strony, wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki. Rozumiem

Od rozwiązywania zagadek do krytycznego myślenia

Piotr Dul Co-founder / No Input Signal Sp z o.o.
Sprawdź, jak umiejętność rozwiązywania zagadek oraz rozwijanie krytycznego myślenia przydają się programistom, m.in. podczas rozmów kwalifikacyjnych.
Od rozwiązywania zagadek do krytycznego myślenia

O rozmowach rekrutacyjnych do firm IT krąży wiele mitów. Z pewnością obie strony takiej rozmowy chciałyby zweryfikować swoje oczekiwania i upewnić się co do słuszności swego wyboru. Aktualnie, niezmiennie już od paru lat, programista z kilkuletnim doświadczeniem jest towarem deficytowym na rynku. I to pomimo zawirowań związanych z pandemią i masowymi zwolnieniami w niektórych firmach. 

Podczas rekrutacji, a w szczególności tych wieloetapowych, padają pytania, które mogą zaskoczyć każdego. Do kanonu pytań “dziwnych i nieszablonowych” weszły już:

- Gdyby pan/pani miała być drzewem, to jakim? 

- Gdyby pan/pani znalazła pingwina w zamrażarce, to jak by się pan/pani zachowała?

- Ile meczów należałoby rozegrać, aby wyłonić zwycięzcę turnieju spośród 5623 osób? 

Dwa pierwsze pytania mają za zadanie sprawdzić u kandydata między innymi kreatywność, umiejętność panowania nad emocjami i zachowania dystansu do sytuacji. Co jednak z pytaniami dotyczących liczenia, myślenia i wnioskowania? Oprócz znajomości podstawowych zasad arytmetyki wymagają one jeszcze od kandydata wnikliwości, logicznego i samodzielnego myślenia, czasami wychodzącego poza utarte schematy.

W pracy programisty zdarzają się problemy do rozwiązania wymagające właśnie takiego myślenia - co tłumaczy sensowność powyższych pytań. Do tego dodać należy możliwość pozyskania gotowego kodu tzw. metodą “copiego-pasta”, który umieszczony w repozytorium służy za przykładny kod kandydata. 

W szkołach uczniowie nabywają umiejętność zdobywania dobrych ocen, zaliczania testów i przedmiotów, przeskakując między różnymi wymaganiami nauczycieli. Takie podejście z czasem staje się nawykiem i rzeczywiste problemy zdają się przerastać możliwości “normalnego” człowieka. Nikt nie pokazał nam, jak samodzielnie myśleć, formułować problemy i szukać rozwiązań. W ciągu ostatnich kilkunastu lat różni ludzie i organizacje próbowały wypełnić tę lukę edukacyjną nauczając „umiejętności myślenia” w oparciu o schematy. 

Były to m.in. takie struktury jak: 

  • krytyczne myślenie 
  • myślenie konstruktywne 
  • myślenie twórcze 
  • myślenie równoległe 
  • myślenie pionowe 
  • myślenie lateralne (Edward De Bono) 
  • myślenie konfrontacyjne i antagonistyczne 


Według dr. Zbigniewa Michalewicza, autora książki „Nauczanie łamigłówkowe”,  powyższe podejścia są skoncentrowane na „mówieniu o problemie” zamiast na „rozwiązywaniu problemów”. Autor uważa, że brak umiejętności rozwiązywania problemów jest między innymi konsekwencją malejącego poziomu matematyki w szkołach. Z pomocą w podniesieniu umiejętności myślenia (w tym umiejętności matematycznych) mogą służyć różnego rodzaju zagadki. Najlepiej, gdyby były to zagadki niewymagające encyklopedycznej wiedzy - treściwe i zrozumiałe dla każdego. Po rozwiązaniu takich zagadek następuje czynnik “eureka!”, który dodatkowo pomaga utrzymać zainteresowanie i motywuje do dalszej pracy.

Do rozwiązywania zagadek można podejść na kilka sposobów, gdyż jest kilka ogólnych typów zagadek. Są np. zagadki optymalizacyjne, zagadki z ograniczeniami, „udowodnij, że coś jest możliwe lub nie jest możliwe”, zagadki zawierające elementy prawdopodobieństwa itp. 

Podchodząc do rozwiązywania zagadek można posłużyć się regułami, które zaproponował dr Michalewicz, który w dziedzinie nauczania przez zagadki jest światowym autorytetem. Brzmią one następująco: 

Reguła 1: Upewnij się, że rozumiesz problem, wszystkie podstawowe określenia i wyrażenia użyte do jego zdefiniowania. 
Reguła 2: Bardziej niż na intuicji polegaj na obliczeniach. 
Reguła 3: Obliczenia będą bardziej efektywne, jeśli zbudujesz model dla danego problemu definiując zmienne, ograniczenia i cele. 


Treść zadania, choć często krótka i zwięzła, może kryć pewne niejednoznaczne słowa lub wyrażenia. Jeśli tak jest, zgodnie z regułą 1, należy się nad nimi zatrzymać i spróbować doprecyzować, co autor miał na myśli. Jakie założenia wynikają z treści, a jakie informacje zostały celowo pominięte? 

Jakże często możemy zaobserwować nieporozumienia w projektach IT wynikające z błędnej interpretacji niejednoznacznych określeń... Wizja klienta minęła się i to mocno z wizją wykonawcy. Zadanie odpowiednich pytań jest kluczem do sukcesu. Jakość odpowiedzi klienta świadczy o jakości zadanych pytań. Nie trudno w tym momencie dostrzec silnego powiązania między rozwiązywaniem problemów, a krytycznym myśleniem. Krytyczne myślenie, czyli umiejętność zadawania pytań i udzielania na nie odpowiedzi, bazując na tym, co wiemy.

Nie polega to oczywiście na szukaniu tzw. dziury w całym, lecz na upewnieniu się, że rozumiemy zagadnienie, zbadaliśmy je i potrafimy o nim dyskutować, używając zrozumiałych dla obu stron argumentów. W rozmowach z klientami lub tzw. biznesem, programiści zadają krytyczne pytania i próbują zrozumieć, co autor miał na myśli. Czasami kończy się to irytacją tych pierwszych, a dowcipami o tych drugich. Wyciąganie jednak zbyt szybkich wniosków i przechodzenie do konkluzji bywa złudne. Niektóre problemy zdają się być proste, wręcz intuicyjne. W szczególności zagadki związane z obliczaniem prawdopodobieństwa są podatne na intuicyjne odpowiedzi. Przykładem może być zagadka o rzucie monetą: 

Rzucamy monetą, wypada orzeł. Jakie jest prawdopodobieństwo, że przy następnym rzucie monetą również wypadnie orzeł? 

Intuicja podpowiada, że mniejsze, bo przecież już raz wypadł orzeł. Wrażenie będzie silniejsze, jeśli zwiększymy ilość doświadczeń: np. rzuciliśmy 5 razy monetą i 5 razy z rzędu wypadł orzeł. Jakie jest prawdopodobieństwo, że przy następnym rzucie również wypadnie orzeł? W takiej sytuacji zdaje się bardzo mało prawdopodobne, że kolejny raz również wynik się powtórzy, gdy tymczasem prawdopodobieństwo jest zawsze takie samo. Zdarzenia są niezależne od siebie.

Z drugiej strony naukowcy poczynili badania, które dowodzą przewagi przeczuć nad żmudnymi obliczeniami. Do opracowań tych można zaliczyć m.in. takie książki jak: - “Gut Feelings” Gerda Gigerenzera i “Błysk! Potęga przeczucia” Malcolma Gladwella.

Nasi prastarzy przodkowie podejmowali decyzje polegając jedynie na przeczuciach. I musieli robić to dobrze, gdyż w przeciwnym razie nie przetrwaliby. Oni nie mogli zdać się na obliczenia, gdyż takich jeszcze nie znali. Z czasem wytworzyli mądrości ludowe, które są znane ówcześnie jako przysłowia, np. “Co dwie głowy, to nie jedna” czy “Lepiej dmuchać na zimne”. Analogicznie do każdego takiego stwierdzenia można dopisać kontrprzysłowie: “Gdzie kucharek sześć, tam nie ma co jeść” i “Kto nie ryzykuje, ten nie pije szampana”. W efekcie nie wiadomo, które przysłowie ma zastosowanie, skoro wykluczają się wzajemnie. 

Do tego sytuację komplikuje fakt, że do podejmowania decyzji w istotnych problemach dochodzą jeszcze emocje, a te, jak wiemy, nie są dobrym doradcą. Tu również naukowcy dowiedli (Gary Belsky, Thomas Gilovich “Why Smart People Make Big Money Mistakes And How to Correct Them”), że logika przegrywa z intuicją. Okazuje się, że jesteśmy bardziej ostrożni, mogąc coś zyskać i bardziej skłonni do podjęcia ryzyka w celu uniknięcia straty. Nawet w sytuacjach, gdzie suma zysków i strat są identyczne, to nadal wyżej wymieniona skłonność się objawia. 

Wróćmy do rozwiązywania zagadek. Istnieją zagadki tego typu, w których nie unikniemy układu równań z niewiadomymi lub po prostu pewnych obliczeń. Za przykład może posłużyć wymienione wyżej zadanie maturalne z drwalem. Wykonując kilka prostych obliczeń, uwzględniających dane pochodzące z treści zadania - rozwiążemy je. Taki “model” matematyczny powinien być zbudowany na odpowiednim poziomie szczegółowości, gdyż zbyt skomplikowany model niepotrzebnie utrudni znalezienie rozwiązania. 

Do próby rozwiązania “dylematu komiwojażera” z pewnością potrzebujemy mapy i odległości między miastami (są różne warianty tego dylematu). Problem polega na znalezieniu najkrótszej trasy łączącej wszystkie miasta. W tym wypadku mapa służy za model, który posiada naniesione dane w formie graficznej. Jeśli byśmy teraz tę mapę udoskonalili i dodali więcej informacji (np. rodzaje dróg, maksymalne prędkości dopuszczalne na trasach czy nawet występowanie sygnalizacji świetlnej), to takie “udoskonalenie” utrudni nam znalezienie rozwiązania, ale powodując tym samym większą jakość rozwiązania. Wszystko zatem zależy jak bardzo chcemy i możemy zagłębić się w problem oraz jakimi danymi dysponujemy. Dopasowanie modelu do charakteru zagadki jest istotną kwestią w efektywnym udzielaniu odpowiedzi. 

Na zakończenie zapraszam do zmierzenia się z dwiema zagadkami, które faktycznie otrzymałem do rozwiązania podczas rozmowy kwalifikacyjnej. Przygotowując się do typowo technicznych zagadnień, totalnie zaskoczony poniższymi pytaniami - poległem, czego Wam nie życzę. 


Zagadka nr 1 

Sto maszyn produkuje sto opon w sto godzin. 

Ile godzin zajmie 5 maszynom wyprodukowanie 5 opon? 


Zagadka nr 2

Pewien staw zarasta liliami wodnymi. Każdego dnia lilie podwajają swoją powierzchnię. Wiedząc, że liliom porośnięcie całego stawu zajęło 30 dni - odpowiedz ile dni zajęło liliom zarośnięcie połowy stawu? 


P.S. Aby dowiedzieć się, czy Twoje rozwiązanie jest prawidłowe - prześlij je na mój adres e-mail: piotr.dul@noinputsignal.com

Rozpocznij dyskusję

Lubisz dzielić się wiedzą i chcesz zostać autorem?

Podziel się wiedzą z 160 tysiącami naszych czytelników

Dowiedz się więcej