Witam, jestem bardzo początkujący i zastanawia mnie w jakim stopniu wykorzystuje się algorytmikę w praktyce, w konkretnych projektach.
Czy zagadnienia z wszelkich olimpiad to nauka dla nauka czy faktycznie znajdują swoje zastosowania projektach?
pozdrawiam ;)
W 99,5% nie.
Gdy przeczytałem Twój wątek od razu pomyślałem o: http://xion.org.pl/2013/12/16/algorithms-dont-end-here/ Poza tym algorytmika ułatwia zrozumienie jak coś działa np. wyszukiwanie w bazie.
I często niestety trzeba coś z algorytmiki ogarniać, żeby móc już zacząć tworzyć te komercyjne projekty. Na rozmowach kwalifikacyjnych dość często padają pytania z tym związane, zwłaszcza jak szuka sią pierwszej pracy.
Nie znam zadań z olimpiad, ale algorytmikę wykorzystuję na co dzień w projektach, pewnie dlatego, że część projektów to rzeczy bliskie sprzętowi, gdzie często nie ma gotowych bibliotek, ale to insza inszość.
czyli nie szczędzić czasu na nauke algorytmiki, choćby dla samego treningu
Nie no po pierwsze to zależy co chcesz potem w żyicu robić a po drugie rozgraniczmy co tutaj kto rozumiem przez algorytmikę. Bo dla jednych algorytmika to oznacza na przykład rozkmianie sub-wykładniczych algorytmów dla problemó NP zupełnych i pisanie adaptacyjnych solverów dla ILP, a dla innych "algorytmika" to znajomość sortowania bąbelkowego i rozumienie jak działa lista jednokierunkowa.
O ile ta pierwsza opcja przyda się niewielkiemu odsetkowi programistów, o tyle bez tej drugiej może być ciężko każdemu. I nawet nie chodzi o to żebyś umiał z pamięci zaklepać 3 wersje quicksorta albo drzewo Trie, tylko o to żeby wiedzieć że coś takiego jest i czym się charakteryzuje. W 95% przypadków użyjesz gotowej implementacji z biblioteki, ale musisz wiedzieć czego szukasz i rozumieć czego użyć w danej sytuacji.
Bo potem jest jak z ludźmi co parsują DOMem kilkunasto-megabajtowe XMLe i nie rozumieją czemu dostają OutOfMemory i dlaczego powinni użyć SAX albo StAX. No bo przecież parser XML to parser XML, nie? I analogicznie "sortowanie to sortowanie", "lista to lista", "mapa to mapa", a to nie do końca tak ;)