środa, 5 września 2018

Matematyka potrzebna programistom IT

Matematyka potrzebna programistom IT 


Pytanie o matematykę i programowanie jest jednym z najczęstszych jakie się pojawia u zainteresowanych programowaniem czy informatyką. Ważnym jest poznać zależność pomiędzy matematyką a programowaniem, a szczególnie to, jakich działów matematyki należy się poduczyć z powodu ich przydatności w informatyce i programowaniu. Najprościej rzecz ujmując, programowanie to instruowanie komputera, co ma robić. Komputery to z natury niezbyt mądre urządzenia, gdyż nie mają zielonego pojęcia, jak wykonać jakiekolwiek zadanie. Musisz im wszystko wytłumaczyć, i to ze szczegółami. Jeśli wydasz komputerom odpowiednie instrukcje, potrafią dokonać wielu wspaniałych i zadziwiających rzeczy. 

Programowanie - kod binarny

Informatyka jako dziedzina nauki wywodzi się bezpośrednio z matematyki. Dawniej, jeszcze w końcu XX wieku, stanowiła jej część, jednak przez jej niesamowicie szybki i daleko idący rozwój została uznana za osobną dziedzinę nauki. Informatyka z roku na rok ewoluuje a celem tego procesu jest szybsze osiąganie wyników za pomocą narzędzi jakie udostępnia. Gdyby pokusić się o narysowanie piramidy informatyki, z całym przekonaniem jej podstawą byłaby właśnie matematyka. Z samej definicji wynika, że jest to dziedzina nauki wysoce abstrakcyjna, opierająca się na świecie cyfrowym. 

Profesor Dijkstra, znany miłośnikom informatyki zapewne dzięki algorytmowi znajdowania najkrótszych ścieżek w grafie, powiedział kiedyś, że „informatyka ma tyle samo wspólnego z komputerami, co astronomia ma z teleskopami.” Za tymi słowami stoi jego ogromna wiedza informatyka-teoretyka. Mówi nam on po prostu, że obcujemy z dziedziną wiedzy ważną i poważną. Analizując dowód jego słynnego algorytmu grafowego pomyślimy jednak sobie, że to już jest jednak matematyka. Jasne jest, że żeby złożyć komputer z kilku części, skonfigurować sprzęt, zainstalować oprogramowanie, włączyć ulubioną grę czy wejść i zaistnieć na portalach społecznościowych, wielkiej matematycznej wiedzy nie trzeba. Twardej matematyki, przez co rozumiemy jej część, której nie opanujemy w miesiąc tylko raczej w perspektywie kilku lat studiów pod okiem uznanych fachowców, trzeba by się nauczyć jeśli myślimy o tej części informatyki, która ma do czynienia z teorią procesów, robotyką, projektowaniem systemów lub elektroniką. Wiele osób po studiach które pracują przy komputerach dumnie twierdzą, że do wykonywania swojej pracy potrzebują wiedzy matematycznej z gimnazjum czy podstawówki, a ostatnią całkę to już nie pamiętają kiedy liczyli. Pytanie, na ile to, co robią jest innowacyjne i twórcze, bo wygląda na odtwórcze (do czyszczenia komputera najbardziej wszak potrzeba umiejętności używania śrubokręta i odkurzacza). 

Program komputerowy składa się z wielu instrukcji. Instrukcja to proste polecenie, które możesz wydać komputerowi, a zazwyczaj jest to jedno bardzo konkretne zadanie. Wszystkie cudowne rzeczy wykonywane obecnie przez komputery zawdzięczamy mądrym programistom, którzy napisali oprogramowanie; dzięki oprogramowaniu komputery wiedzą, co mają robić. Oprogramowanie (ang. software) to program lub grupa programów uruchamianych na Twoim komputerze bądź na innym komputerze, z którym się łączysz, jak np. serwer WWW. Komputery myślą, używając do tego celu ogromnej ilości układów elektronicznych. W najprostszej postaci, układy elektroniczne to przełączniki, które mogą zostać włączone albo wyłączone. Inżynierowie oraz naukowcy nazywają takie stany odpowiednio cyframi 1 albo 0. Jedynki i zera tworzą swoisty kod nazywany kodem binarnym. Słowo "binarny" oznacza "posiadający dwa stany". Stany te to "włączony" lub "wyłączony", jeden lub zero. Cyfra binarna to "bit". Komputery wykorzystują system binarny. Większość ludzi jednak nie ma pojęcia, jak posługiwać się systemem binarnym. Musi być więc jakiś prostszy sposób, aby przekazać komputerowi, co mamy zamiar zrobić. W tym celu ludzie stworzyli języki programowania. Pozwalają one zapisywać rzeczy, które my, ludzie, potrafiły zrozumieć, a następnie tłumaczą je na język binarny, który potraf zrozumieć komputer.