Często podczas rozmów rekrutacyjnych na stanowiska IT padają pytania, nazwijmy je, dość „dziwne i niestandardowe”. „Jakbyś miał być drzewem, to jakie byłoby to drzewo?”. „Co byś zrobił, gdybyś znalazł pingwina w zamrażarce?”. „Ile meczów należałoby rozegrać, aby wyłonić zwycięzcę turnieju spośród 5623 osób?” (Amazon). „O czym myślisz, kiedy jesteś sam w swoim samochodzie?” (Gallup) itp. Jak to się ma do rozwiązywania zagadek – zapytasz?

W różnego rodzaju szkołach uczy się ludzi jak odpowiadać na pytania, rozwiązywać testy i zaliczać przedmioty. Przy takim podejściu do rozwiązywania problemów, po pewnym czasie u wyżej wymienionych osób w sytuacjach rzeczywistych problemów, występuje tzw. zespół karpia. 😉 Nikt nie pokazał im jak samodzielnie myśleć, formułować problemy, szukać rozwiązań.

Struktury „umiejętności myślenia”

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 pewne struktury.

Były to struktury:

  • 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 autora książki „Nauczanie Łamigłówkowe” dr. Zbigniewa Michalewicza 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. Michalewicz proponuję zwiększenie matematycznej świadomości studentów poprzez zagadki. Zagadki mają być na tyle ogólne, żeby każdy mógł je zrozumieć, zapamiętać. A w szczególności powinny zawierać czynnik „eureka!” oraz być zabawne (aby utrzymać zainteresowanie).

Do rozwiązywania zagadek można podejść na kilka sposobów, ponieważ jest ich kilka rodzajów. Są na przykład zagadki optymalizacyjne, zagadki z ograniczeniami, „udowodnij, że coś jest możliwe lub nie jest możliwe”, itp.

Reguły rozwiązywania zagadek

Do rozwiązania zagadek można posłużyć się poniższymi ogólnymi regułami.

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.

W dwóch spośród trzech powyższych reguł pojawiają się obliczenia, co sugeruje, że przy rozwiązywaniu zadań niezbędna jest znajomość matematyki. To może tłumaczyć, dlaczego panuje przekonanie, że programista musi znać matematykę, która pomaga rozwiązać problemy związane z produkcją oprogramowania.

Reguła 1 dotyczy uszczegółowienia określeń i ich zrozumienia. Na przykład określenie „zwykły” użytkownik jest za mało precyzyjne i wymaga zadania dodatkowych pytań w celu ustalenia co go wyróżnia. Jak go odróżnimy od innych użytkowników? (Jeśli inny użytkownik to np. administrator oznacza to, że różni ich poziom dostępu).

Krytyczne myślenie

Reguła ta jest również ściśle powiązana z „krytycznym myśleniem”, czyli umiejętnością zadawania krytycznych pytań i udzielania krytycznych odpowiedzi dotyczących tego, co wiemy. Nie oznacza to oczywiście szukania tzw. dziury w całym, a upewnieniu się, że rozumiemy zagadnienie, zbadaliśmy je i potrafimy o nim dyskutować używając zrozumianych dla obu stron argumentów.

W rozmowach z klientami lub tzw. biznesem programiści zadają krytyczne pytania próbują zrozumieć co autor miał na myśli. Czasami kończy się to irytacją tych pierwszych, bo przecież każdy wie kim jest klient premium i jak go odróżnić od zwykłego klienta. W podobnych przypadkach jest również potrzebna konkretna wiedza zamiast intuicji, która potrafi zwodzić na manowce. Szczególnie w zagadkach związanych z obliczaniem prawdopodobieństwa intuicja bywa zawodna. Przykładowo rzuciliśmy monetą i wypadł orzeł, jakie jest prawdopodobieństwo, że przy następnym rzucie monetą również wypadnie orzeł?

rozwiązywanie zagadek

Intuicja podpowiada, że mniejsze, bo przecież już raz wypadł orzeł. A co, jeśli zapytamy „jakie jest prawdopodobieństwo, że orzeł wypadnie 5 razy z rzędu?” Tu już nieco mocniej czujemy intuicyjnie, że jest to mało prawdopodobne, gdy tymczasem jest to tak samo prawdopodobne jak to, że wypadnie orzeł przy drugim rzucie, gdyż zdarzenia są niezależne. Jedno nie wpływa na drugie.

W przypadku reguły 3 budując układ równań z niewiadomymi, w istocie budujemy model matematyczny, w obrębie którego będziemy starali się wyliczyć odwiedź uwzględniając wszystkie zmienne. Czasami do zagadek można zbudować skomplikowany model, którego szczegółowość będzie utrudniała znalezienie odpowiedzi, ale w końcu nam się to uda.

Przykład

Przykładem modelu, który może posłużyć do rozwiązania zadania jest mapa. Pozwala ona nam znaleźć odwiedź na zagadkę „jak dojechać z punktu A do B pokonując ten odcinek najkrótszą trasą”. Na mapie zaznaczone są drogi oraz jej długości i poprzez porównanie długości wszystkich możliwych dróg dojazdu jesteśmy w stanie znaleźć odwiedź. Nie jest nam potrzebna szczegółowa mapa z wykazem nazw ulic czy określeniem, na którym skrzyżowaniu stoi sygnalizacja świetlna.

Choć dodając te informacje do modelu nadal będziemy w stanie znaleźć odpowiedź, to jednak już nieco trudniej. Z drugiej jednak strony, nie znając rodzaju drogi (na przykład czy jest jednokierunkowa), możemy mylnie obliczyć jej długość. Dopasowanie modelu do charakteru rozwiązywanej zagadki jest istotną kwestią w efektywnym udzielaniu odpowiedzi.

Temat Cię zaciekawił? Sprawdź inne wpisy w tej kategorii.

By Piort