Czy programista musi być dobry z matematyki?
Dość często i z różnych źródeł możemy dowiedzieć się, że w informatyce (a tym bardziej w programowaniu) dużą rolę odgrywa matematyka. Przykładem przez który część osób może tak myśleć jest fakt, że w szkołach i na studiach bardzo często na kierunku informatycznym jest dodawana rozszerzona matematyka, jednak czy oznacza to, że te dwa kierunki są ze sobą w jakiś sposób połączone?
Tak i nie, są elementy wspólne takie jak
Analizując podane przeze mnie części wspólne, możemy stwierdzić że rzeczywiście w informatyce jest dużo matematyki, ponieważ czasami musimy użyć kalkulatora, jednak nie jest to do końca dobry argument.
Owszem, w informatyce występuje liczenie, ale obliczenia które musimy wykonywać są oparte o podstawy liczenia, wystarczy że znamy takie podstawy jak
Jako przykład mogę podać przeliczanie liczb na różne systemy liczbowe, takie jak
A jak wygląda sytuacja w przypadku programowania? Dużo razy słyszałem (często od informatyków) że w zwykłej matematyce nie ma jakoś dużo matematyk (to fakt), jednak jest jej bardzo dużo w programowaniu, według niektórych jeśli ktoś chce być "dobrym" programistą, musi być jednocześnie mistrzem matematyki, bo inaczej sobie nie poradzi.
Szczerze mówiąc... nie rozumiem skąd taka opinia się wzięła, jednak przypuszczam dwie wersje
W większości przypadków jest oparta o logiczne myślenie, jako przykład mogę pokazać kawałek kodu PHP (skrypt stronicowania)
Dla osób nie które nie rozumieją tego kodu, postaram się przedstawić go krok po kroku, po polsku.
Porównajcie sobie trudność tego przykładu, do matematyki w szkole średniej i sami odpowiedzcie sobie na pytanie "Czy programista musi być dobry z matematyki?".
Oczywiście dobry matematyk szybciej wpadnie na rozwiązanie takiego przykładu, ale nie jest to konieczne, jak niektórzy mówią.
Tak i nie, są elementy wspólne takie jak
- Obie dziedziny są ścisłe
- Obie dziedziny nie są dla każdego
- W obu dziedzinach ważne jest analizowanie danych
- W obu dziedzinach zdarza się używać kalkulatora
Analizując podane przeze mnie części wspólne, możemy stwierdzić że rzeczywiście w informatyce jest dużo matematyki, ponieważ czasami musimy użyć kalkulatora, jednak nie jest to do końca dobry argument.
Owszem, w informatyce występuje liczenie, ale obliczenia które musimy wykonywać są oparte o podstawy liczenia, wystarczy że znamy takie podstawy jak
- Dodawanie
- Odejmowanie
- Mnożenie
- Dzielenie
- Podstawy ułamków
Jako przykład mogę podać przeliczanie liczb na różne systemy liczbowe, takie jak
- Decymalny
- Binarny
- Oktalny
- Heksadecymalny
A jak wygląda sytuacja w przypadku programowania? Dużo razy słyszałem (często od informatyków) że w zwykłej matematyce nie ma jakoś dużo matematyk (to fakt), jednak jest jej bardzo dużo w programowaniu, według niektórych jeśli ktoś chce być "dobrym" programistą, musi być jednocześnie mistrzem matematyki, bo inaczej sobie nie poradzi.
Szczerze mówiąc... nie rozumiem skąd taka opinia się wzięła, jednak przypuszczam dwie wersje
- Wielu nauczycieli programowania zamiast bawić się w wymyślanie programów które coś robią, każe przepisywać algorytmy do zadań matematycznych (np liczenie delty razem z punktami zerowymi), stąd w podświadomości programowanie kojarzy nam się z matematyką
- Dawniej w programowaniu trzeba było trochę więcej liczyć, dużo mniej elementów było gotowych, dodatkowo pojawił się w naszej kulturze stereotyp informatyka, jako typowego ścisłowca, który nie zna życia poza jakimiś dziwnymi obliczeniami i niezrozumiałymi znaczkami na komputerze (spójrzcie jak wygląda np kod assemblera, osobie która nie wie jak on działa... zresztą sami oceńcie)
W większości przypadków jest oparta o logiczne myślenie, jako przykład mogę pokazać kawałek kodu PHP (skrypt stronicowania)
Czy widzimy tutaj jakoś dużo obliczeń znanych z lekcji matematyki?
No nie, a to jeden z tych przykładów, w których musiałem użyć matematyki.Dla osób nie które nie rozumieją tego kodu, postaram się przedstawić go krok po kroku, po polsku.
- Pobieramy od użytkownika informacje, jaki identyfikator ma strona, na której jest
(domyślnie 1) - Obniżamy stronę o jeden, ponieważ zakres z jakiego liczymy, zaczyna się od 0 a nie 1
(i tutaj widzę pewien błąd który popełniłem, ale sami spróbujcie go znaleźć) - Następnie pobieramy liczbę postów z bazy danych
- Określamy liczbę postów, jaka ma przypadać na jedną stronę
- I zaczyna się matematyka, a dokładniej sprawdzamy czy przypadkiem nie chcemy wyświetlić większej liczby postów, niż występuje w bazie
Załóżmy że jest 35 postów, strony są po 10 stron, oznacza to, że będąc na ostatniej stronie, musimy pobrać i wyświetlić nie 10, a 5 postów (mylna może być zła nazwa zmiennej, ponieważ $numberPage może się kojarzyć z numerem strony, a nie liczbą postów - mój błąd) - Następnie zaokrąglamy maksymalną liczbę stron tak, aby przygotować do wyświetlenia numery na stronie, przykładowo numer 1 będzie oznaczał pierwsze 10 (od 1 do 10), numer 2 to następne 10 (od 10 do 20) itd
- A co jeśli mamy nie równą liczbę stron? Na przykład podane wcześniej 35?
Sprawdzamy czy liczba postów w bazie nie przekracza liczby, jakie aktualnie moglibyśmy wyświetlić (inaczej bez sensu byłby opisany punkt 5), jeśli tak się dzieje, powiększamy najwyższą liczbę na liście stron o 1
Porównajcie sobie trudność tego przykładu, do matematyki w szkole średniej i sami odpowiedzcie sobie na pytanie "Czy programista musi być dobry z matematyki?".
Oczywiście dobry matematyk szybciej wpadnie na rozwiązanie takiego przykładu, ale nie jest to konieczne, jak niektórzy mówią.
Komentarze
Prześlij komentarz