Czy w pracy programisty potrzebna jest znajomość matematyki?

No własnie, jak to jest z tą matmą?

Pamiętam jak będąc na studiach, wypełnionych mniej lub bardziej ciekawą matematyką, jeden z profesorów grzmiał podczas wykładów zza mównicy, że w życiu bez jego ukochanej dziedziny to ani rusz. A miało to dotyczyć w szczególności programistów, jak to często podkreślał.

Jak to jest w rzeczywistości? Na własnym przykładzie oraz na podstawie obserwacji innych ludzi z branży można jasno stwierdzić, że brak znajomości matematyki absolutnie nie stoi na przeszkodzie w drodze do bycia programistą. Szczerze nawet nie do końca rozumiem dlaczego ten zawód jest automatycznie kojarzony z matematyką. Obecnie zawód programisty rozgałęzia się na wiele dziedzin i część z nich, tak jak web development obok matmy nawet nie leżała.

Oczywiście podstawowa, czy nawet biegła, znajomość nigdy nie zaszkodzi, a może nawet tylko pomóc. Ja osobiście ostatnią całkę rozwiązałem… właśnie na studiach i to pod niejako przymusem. Mimo, iż „całkiem” lubię ten temat, to jakoś nigdy nie miałem okazji zająć się tym ot tak dla siebie.

Przychodzi mi do głowy mój znajomy z obecnej pracy. Został zatrudniony jako programista, ale był absolwentem pełnych studiów matematycznych. Programowaniem zainteresował się przy okazji. W firmie do której dołączył, jeszcze długo przede mną, odnalazł się doskonale podczas tworzenia silnika obliczeń finansowych, który stanowił niejako rdzeń całego pomysłu na biznes. Przez jakiś czas, jak się potem dowiedziałem, był jedyną osobą, która wiedziała od razu co się w aplikacji psuło lub jak mogło zostać zoptymalizowane. To niesamowicie podnosi wartość takiego pracownika w oczach firmy i szybko stał się jednym z kluczowych członków zespołu.

Programiści gier to z kolei trochę inna sprawa. Ceniony programista w tej branży powinien wykazywać znajomość geometrii analitycznej, wektorów, macierzy, trygonometrii. To istotna prawda, nawet w dobie narzędzi, które zajmują się tym wszystkim za nas (np. Unity3D). Jedynie znając podstawy będziesz wiedzieć co właściwie robisz. Mimo iż wiele silników gier prowadzi obliczenia fizyczne za nas, to nadal warto wiedzieć jaki udział w tym procesie może mieć całkowanie czy pochodna. To tak jak znając zasadę działania skrzyni biegów i silnika jesteś w stanie zrozumieć samochód i wyciągnąć w nim najlepsze osiągi. 🙂

Ostatnio podczas lektury pewnej książki spotkałem świetne porównanie związane z tym tematem. Matematyka w pracy programisty będzie tak potrzebna jak w tym samym stopniu jak przy rozwiązywaniu Sudoku. Trzeba mieć świadomość, że liczby istnieją i że zestawione razem mają jakieś znaczenie, ale zarówno laik jak i profesor matematyki rozwiążą planszę w zbliżony sposób. Liczy się zdolność logicznego myślenia, przewidywania i wyciągania wniosków. Czyli dokładnie tak samo jak podczas wszelkiego typu pracy związanej z programowaniem.  🙂