Moim zdaniem, warto trenować algorytmikę. Uczy ona myśleć programistycznie. Kiedy zaczynasz programować, uczysz się podstawowej składni która występuje we wszystkich językach programowania. Tj. pętle, instrukcje warunkowe, switche, operatory logiczne i arytmetyczne + typy zmiennych, ewentualnie struktury i proste wypisanie danych. Tylko później przychodzi pytanie, co teraz ? "Niby znam te rzeczy, ale jak przyjdzie co do czego, to nie wiem jak je praktycznie zastosować". Więc próbujesz. Robisz o kilka za dużo zmiennych, nie zwracasz uwagi na zarządzanie pamięcią, robisz 15 niepotrzebnych instrukcji warunkowych. Algorytm wygląda brzydko, ale jednak odnosisz sukces, wszystko działa jak należy. Potem lecisz do następnego zadania, idzie Ci już lepiej. Zaczynasz coraz świadomiej używać pętli i warunków. Następnie dostrzegasz pewną brzydotę w swoich starych algorytmach i z 80 linii kodu zamieniasz je na 20/30 liniowe bloki. Zauważasz pewne powtórzenia, i myślisz sobie "hej, może tu i tam pyknę funkcje ?". Główny kod zajmuje teraz 15 linii kodu. i jest podzielony na funkcje, z możliwością ponownego użycia w razie potrzeby. Wykonujesz kolejne algorytmy, zwracają one błędne wyniki, a ty dalej próbujesz. Poznajesz przy tym jak działa komputer. Jak zarządza pamięcią, jak w praktyce zachowują się liczby zmiennoprzecinkowe, o co z nimi chodzi. Nad rozwiązaniem kolejnych problemów będziesz myślała całkowicie inaczej niż na początku. W głowie przelatywać będą myśli, tutaj dam pętle foreach, albo while (bo wiem, że for w tym miejscu nie ma sensu), tam dam switcha (bo w tym przypadku zgrabniej i czytelniej wygląda, oraz nie zajmuje tyle placu). Rozwiązywanie takich problemów, dla Ci masę benefitów. Kiedy popatrzysz się na obcy kod, to zrozumiesz co on robi, nawet nie znając szczególnie składni tego języka.
Oczywiście, korzysta się z gotowych bibliotek i algorytmów, bo nie ma sensu pisać cały czas od nowa. Algorytmy tam zawarte, będą prawdopodobnie wydajniejsze od twoich i nie będziesz musiała się martwić o to jak on działa w środku, a jedynie popatrzysz w dokumentacje i wuala. Ale z samej czystej ludzkiej ciekawości, jak wejdziesz do paczki z takim algorytmem, to fajnie wiedzieć o co w nim chodzi. Nie z racji, że gdzieś akurat o tym algorytmie czytałaś i go przerabiałaś, ale po prostu spojrzysz na niego i przeczytasz go jak wiersz ;)
Tak, to co pokazał Pan Mirosław, jest wystarczające aby zacząć z algorytmikom, o czym już wcześniej pisałem.
Co do innych dziedzin. Wszystko zależy, co chcesz robić. Jak programujesz webowo, to nie potrzebujesz właściwie żadnej wiedzy z matematyki, a jedynie zasady działania podstawowych protokołów, kilku sieciowych zagadnień i nie tylko (przy backendzie oczywiście). Matematyka w programowaniu webowych również występuję, ale przy zagadnieniach które raczej Cię nie dotyczą, takie jak szyfrowanie danych, lub przy tworzeniu fizyki gier. Widywałem strony w 3D, ale raczej były robione, aby pokazać, ze się da. Jeżeli chcesz tworzyć gry, to narzędzia w których to robisz mają dla Ciebie wiele gotowych funkcji, a ty je po prostu wykorzystujesz. Natomiast Ci, którzy tworzą takie programy jak np Blender, Unity, lub Unreal Engine to potrzebują bardzo dużej wiedzy z zakresu fizyki, matematyki i szeroko pojętej algorytmiki. Tak samo jak firmy, które tworzą sterowniki do chociażby autonomicznych samochodów, samolotów, czy rakiet kosmicznych.
Ale się elaborat zrobił :)
Podsumowują, od algorytmiki jako programista nie uciekniesz. Jest to po prostu sposób na rozwiązanie problemu. W jakim stopniu się w niej zgłębisz, zależy od Ciebie ;) A uczucie, które towarzyszy zielonemu światełku na spoju, czy też rozwiązaniu przez Ciebie trudnego problemu lub sprawienie, że autko pojedzie do przodu, jest bezcenne :)