Czy matematyka i inne przedmioty ścisłe są niezbędne aby zostać programistą?

Programowanie staje się coraz bardziej popularne, jednak wielu początkujących lub dopiero myślących o stawianiu pierwszych kroków rezygnuje ze względu na strach przed matematyką. Z drugiej strony, często matematyka jest traktowana pobłażliwie przez wszystkich tych, którzy wierzą, że uda im się nauczyć programowania w bardzo krótkim czasie i szybko zmienią branżę. Ani jedno, ani drugie podejście nie jest do końca odpowiednie, ponieważ logiczne myślenie jest konieczne, ale nie oznacza to, że będziemy musieli rozwiązywać całki za każdym razem, aby algorytm zadziałał.

Logika > Matematyka

Wyjaśnijmy to na samym początku - matematyka nie jest niezbędna dla programisty, ale zdolność logicznego myślenia już tak. Znajomość matematyki na wysokim poziomie może być przydatna, a wymagany stopień zaawansowania zależy od wykonywanych zadań, jednak podstawa powinna być wystarczająca. Ważne jest, aby nie traktować matematyki wyłącznie jako obliczenia algebraiczne, a raczej spojrzeć na nią jak na przedmiot, który daje zdolność do analitycznego i abstrakcyjnego myślenia. W programowaniu i tworzeniu aplikacji przyda się przede wszystkim umiejętność rozbijania dużego problemu na małe części.  Problem, który chcemy rozwiązać to ogromny arbuz. Nie udałoby się go zjeść naraz, ale musimy w jakiś sposób sobie z tym poradzić. Jak? Kawałek po kawałku.

Ile matematyki jest w programowaniu?

Programowanie jest częścią informatyki, która zaś opiera się na matematyce. Wniosek jest prosty, w programowaniu jest całkiem sporo matematyki, jednak nie oznacza to, że każdy projekt wymaga skomplikowanych obliczeń ze strony dewelopera. Z pewnością znajdzie się wielu programistów (i deweloperów), którzy nie zgodzą się ze stwierdzeniem, że programowanie jest powiązane z wyższą matematyką. Jednak wykorzystywane codziennie narzędzia, które zostały już kiedyś stworzone przez kogoś wcześniej, często były wynikami długich i skomplikowanych obliczeń. Za to aby ich używać, nie musimy dokładnie wiedzieć, jak działają, tylko jak możemy je wykorzystać. Można przyrównać to do jazdy samochodem - celem jest przejechanie z miejsca A do B. Jeśli posiadacie sprawne, zatankowane auto i prawo jazdy, możecie wykonać to zadanie, jednak nie musicie wiedzieć, jak dokładnie wygląda praca silnika i innych mniejszych części podczas ruchu. Innym przykładem jest obsługa przeglądarki internetowej. Aby wejść na pocztę, sprawdzić maila i wysłać wiadomość do znajomego, nie musicie wiedzieć, jak dokładnie działają serwery lub dlaczego po zalogowaniu powinno widnieć https a nie http w miejscu, gdzie wpisujesz adres strony. A i tak działa, prawda?

Czy można programować bez głębszej znajomości matematyki?

W środowisku związanym z IT często ten temat rodzi kłótnie. Niektórzy nie wyobrażają sobie programowania bez zaawansowanych umiejętności, zaś inni zupełnie nie uważają ich za potrzebne. Pionier informatyki - Edsger Wybe Dijkstra - w 1972 roku stwierdził, że atutem kompetentnego programisty jest zapał do matematyki. Jednak mogłoby to znaczyć, że każdy matematyk miałby predyspozycje do bycia dobrym programistą, a tak zdecydowanie nie jest. Z drugiej strony znajomość matematyki ułatwia naukę, ale nie jest ona konieczna. Oczywiście, podstawy - przede wszystkim logiczne myślenie - są wymagane, bo to tak, jakbyśmy chcieli napisać książkę bez znajomości alfabetu. Jednak możemy być świetnymi deweloperami bez zgłębiania statystyki (zostawmy to tym, którzy zajmują się Big Data), algebry, optymalizacji i tak dalej.

Co w takim razie możemy robić? Jak wspomniane było wcześniej w programowaniu najważniejsza jest umiejętność logicznego myślenia i rozkładanie problemów na małe części, aby poradzić sobie z nimi krok po kroku. Nie bez powodu większość osób zaczyna od front-endu, gdzie znajomość matematyki nie jest konieczna. Świat aplikacji webowych nie wymaga skomplikowanych obliczeń, a nawet jeśli potrzebne jest wdrożenie bardziej zaawansowanych rozwiązań, to na szczęście istnieje już wiele bibliotek i frameworków, które pomogą uporać się z zadaniem.

Kiedy bez matematyki się nie uda?

Ustaliliśmy już, że zrozumienie matematyki na wysokim poziomie nie jest konieczne do rozpoczęcia przygody z programowaniem, ale z drugiej strony niektóre zagadnienia jej wymagają. Jeśli chcecie tworzyć gry komputerowe to taka wiedza jest po prostu niezbędna. Zainteresowała Was sztuczna inteligencja i uczenie maszynowe? Tutaj bez dobrej znajomości statystyki, probabilistyki, algebry liniowej i umiejętności operowania na dużej liczbie danych również niewiele zdziałacie. Niestety w tych przypadkach nie można opierać się na gotowych modelach, a trzeba je samemu wypracować.

Myślę, więc piszę kod

Podsumowując, matematyka nie jest konieczna, ale zdolność logicznego myślenia jest jak najbardziej potrzebna. Programowanie, oprócz zrozumienia danego języka, to przede wszystkim umiejętność rozwiązania problemu i osiągnięcia celu przez rozbicie go na mniejsze (zależne od siebie) części. W ten sposób krok po kroku możemy stworzyć większą całość - wymaga to obycia z abstrakcyjnym myśleniem, ale nie oznacza, że będąc średnim uczniem w naukach ścisłych programowanie kategorycznie nie jest dla nas. Zdecydowanie znajomość matematyki jest pomocna i dlatego warto się do niej przyłożyć lub odświeżyć wiedzę, jednak co tak naprawdę będzie świadczyć o tym, czy potrafimy się odnaleźć w informatycznym świecie to sposób myślenia.

Dodaj komentarz
Wszelkie prawa zastrzeżone