Nastały u mnie ostatnio jakieś takie filozoficzne i myślicielskie czasy, mianowicie - "Jak to jest z algorytmiką w pracy programisty?".
Studiuję, cały czas staram się poszerzać swoją wiedzę z zakresu programowania oraz informatyki, dlatego nie mam pewności czy też wiedzy, co do pracy programisty. Wiadomo, że programistów, albo lepiej - ludzi tworzących oprogramowanie można podzielić na klepaczy i programistów. Ci pierwsi, kiedy dostają zadanie zaczynają po prostu go klepać, nie zastanawiając się, jak po co - dobrze zna język to zaklepie dany program. Druga grupa, to grupa bardziej "wyrafinowana", która myśli nad tym, co robi i stara się to robić najlepiej jak się da, a co z tego czasem wychodzi to inna sprawa :P. Mówię to przez pryzmat tego, co udało mi się słyszeć i czytać w ostatnich latach - bo jako tako, doświadczenia w firmie nie mam. Dlatego, jeśli opowiadam farmazony to mnie zjedźcie ;).
Tu też nasuwa się moje pytanie - skoro programista chce rozwiązywać problem najlepiej, jak się da to czy znajomość algorytmiki jest mu w tym niezbędna? Nie chodzi mi tu o jakieś super skomplikowane algorytmy z Google'a, ale o te podstawowe, jak grafy, programowanie dynamiczne, algorytmy tekstowe, kombinatoryczne itd. Wiem, że to też są rozbudowane przykłady, jednak od tego zaczyna się nauka algorytmów w większości przypadków. Jak to się przekłada na pracę typowego programisty w jakiejś firmie X (no, pomijamy tu może Google czy Microsoft)? Czy często korzystacie z drzew czerwono-czarnych, algorytmu Dijkstry, Eulera czy KMP itp.? Czy też może sama algorytmika ma służyć do poszerzania granic i rozwijania samego myślenia z mniejszym naciskiem na wykorzystywanie w dalszym etapie pracy?
Czytałem różne rzeczy, jedni piszą, że jest to potrzebne inny, że wcale tego nie używają. A jak jest z tym naprawdę?