Czy programista musi być dobry z matematyki?
Programowanie jest nauką ścisłą i wiele osób kojarzy programistów z osobami, które od zawsze były dobre z matematyki, czy fizyki. Czy jednak programista zawsze musi być dobrym lub bardzo dobrym matematykiem? Odpowiedź brzmi to zależy.
Przede wszystkim matematyka jest rozległą dziedziną i choć najczęściej kojarzy się ją z obliczeniami, to w rzeczywistości możemy do niej zaliczyć wiele dziedzin, w których zamiast liczb będzie raczej więcej teoretycznych rozważań. Do matematyki zaliczają się m.in.:
- logika matematyczna,
- algebra,
- analiza matematyczna,
- matematyka dyskretna,
- geometria,
- itd.
Logika i algebra przyda się tak naprawdę każdemu programiście, bo w każdej aplikacji pojawią się przynajmniej jakieś proste obliczenia i warunki logiczne. Analiza, czy matematyka dyskretna przydadzą się już w bardziej specjalistycznych zastosowaniach. Jeżeli Twoim marzeniem jest tworzenie gier, to geometria też może okazać się niezbędna.
Czy jednak musisz być ekspertem w tych dziedzinach? Raczej nie. Większość algorytmów jest już gotowych i w celu ich wykorzystania wystarczy skorzystać w swoim kodzie z odpowiedniej biblioteki, czyli takiego "gotowca". W dużym uproszczeniu można to porównać do tego, że musisz wiedzieć czym jest trójkąt, że można policzyć jego pole, ale nie musisz pamiętać samego wzoru na pole trójkąta. Załóżmy jednak, że pracujesz dla NASA i jesteś programistą, który pracuje w zespole odpowiedzialnym za wysłanie łazika na Marsa. W takiej sytuacji na pewno lepiej znać matematykę, niż jej nie znać, ale raczej zakładałbym, że obliczeniami zajmują się prawdziwi eksperci, a Twoim zadaniem będzie "tylko" przetłumaczenie ich zapisów na język zrozumiały dla komputera.
Moje doświadczenia są takie, że od zawsze byłem dobry lub bardzo dobry z matematyki (i dla odmiany słaby z fizyki). Studiowałem informatykę na Politechnice Wrocławskiej i było tam wiele kursów powiązanych z matematyką (algebra, analiza 1, analiza 2, logika matematyczna, matematyka dyskretna itd.). Czy ta wiedza przydaje mi się teraz w codziennej pracy podczas programowania? Raczej nie. Studia uczą trudnej sztuki rozwiązywania problemów i logicznego myślenia, ale jeżeli dostałbym teraz do policzenia nawet prostą całkę, to nawet nie wiedziałbym od czego zacząć. Wiedziałbym jednak, że na pewno jest w Javie jakaś gotowa biblioteka, która zrobi to za mnie i moim zadaniem byłoby raczej to, żeby dowiedzieć się jak ją wykorzystać. Jeżeli więc matematyka nie była Twoją mocną stroną, to jeszcze nic straconego.
Dyskusja i komentarze
Masz pytania do tego wpisu? Może chcesz się podzielić spostrzeżeniami? Zapraszamy dyskusji na naszej grupie na Facebooku.