Czy programiście potrzebna jest matematyka?

Matematyka jest tą dziedziną, która często dzieli środowisko ludzi związanych z IT. Jedni bagatelizują jej rolę w pracy programisty, inni wskazują na duże znaczenie i istotny wkład matematyki w informatykę. A jak jest naprawdę?

Pionier informatyki, Holender Edsger Wybe Dijkstra, odbierając w 1972 roku nagrodę Turninga, wygłosił wykład, w którym powiedział między innymi, że atutem kompetentnego programisty jest zapał do matematyki. Nawet, jeśli ten wybitny naukowiec nieco przesadził, faktem jest, że znajomość matematyki jeszcze nikomu nie przeszkodziła w programowaniu, wręcz przeciwnie. Z drugiej strony bycie dobrym matematykiem nie oznacza, że będzie się również dobrym programistą. Zacznijmy jednak od początku, a tego należy szukać w szkole, najlepiej w szkole wyższej.

Edukacja informatyczna a matematyka

O popularności kierunków informatycznych w Polsce pisaliśmy już w artykule „Czy programista potrzebuje studiów?”. Teraz warto kilka słów poświęcić nauce matematyki w kształceniu przyszłych programistów. Niektóre uczelnie przywiązują do tego przedmiotu bardzo dużą wagę, inne nieco mniejszą, ale zawsze matematyka pojawia się na studiach informatycznych. Szczególnie dużo matematyki wykłada się na pierwszych dwóch latach. Studenci muszą zgłębiać takie przedmioty, jak na przykład statystyka i metody probalistyczne, analiza matematyczna, metody elementów skończonych, algebra liniowa, matematyka dyskretna itp. Tak czy inaczej, matematykę trzeba zaliczyć, jeśli chce się ukończyć studia informatyczne. Wiele osób twierdzi nawet, że tzw. „odsiew pierwszego rocznika” odbywa się najczęściej właśnie za sprawą matematyki. Kto nie poradzi sobie z tym przedmiotem, żegna się ze studiami. Nic dziwnego, że niejeden programista ma co najmniej ambiwalentny stosunek do matematyki. Nie ma się co oszukiwać, jeśli ktoś chce zajmować się zawodowo programowaniem, nie uniknie kontaktu z tą dziedziną nauki. Oczywiście nie oznacza to, że w każdym przypadki i zawsze zagadnienia matematyczne wysuwają się na pierwszy plan.  

Gdzie można wykorzystać matematykę, a gdzie jest zbędna?

Trudno wyobrazić sobie programistę bez matematycznych zdolności, a szczególnie chodzi tu o umiejętność logicznego myślenia. To pozwala nie tylko sprawnie przyswajać wiedzę, ale również wyciągać wnioski i analizować problemy programistyczne, szukając ich rozwiązania. Oczywiście wykorzystanie matematyki zależy również od stanowiska, jakie się zajmuje i od zadań, jakie się wykonuje. Na przykład w developmencie aplikacji webowych biegła znajomość matematyki nie wydaje się być konieczna, ponieważ wiele procesów zostało zautomatyzowanych i rozwiązano praktycznie wszystkie problemy wymagające matematycznej wiedzy. W tej sytuacji developer może się skupić tylko na implementowaniu rozwiązań i na optymalizacji, a do tego matematyka nie jest niezbędna. Z drugiej strony są zagadnienia, które wymagają wiedzy z obszaru matematyki. Na pewno przyda się ona przy tworzeniu gier komputerowych, gdy trzeba zaimplementować różne zjawiska fizyczne lub programować silnik graficzny do generowania obrazów 3D, macierze i wektory wykorzystuje się przy analizie obrazu, algebra jest przydatna w kinematyce i przy kolizjach. Zagadnienia matematyczne pojawiają się także przy pisaniu bardzo złożonych programów, przy operowaniu na dużej liczbie danych, przy tworzeniu i testowaniu algorytmów, analiza przydaje się przy optymalizacji. Oczywiście to tylko kilka przykładów, gdzie znajomość matematyki jest z pewnością przydatna. W Bulldogjob jesteśmy jednak przekonani, że wiedza jeszcze nikomu nie zaszkodziła, a tym bardziej wiedza matematyczna, dlatego przychylamy się do stanowiska, że jednak matematyka bywa potrzebna programiści. Jeśli nie na co dzień, to czasami. A wy co o tym sądzicie?