Polacy mistrzami Świata w programowaniu zespołowym

0

Polacy zostali znów mistrzami świata w informatyce. Czemu jesteśmy tacy dobrzy? Jak myślicie? Na pewno 4programmers ma duży udział bo często nowi tu właśnie odkrywają swoje powołanie i potem dalej kształcą się na studiach. Wiwat mistrzowie, wiwat 4p :)
http://miasta.gazeta.pl/warszawa/1,34862,3993897.html

0

Jesteśmy dobrzy, a właściwie jesteście dobrzy. Ale ten news to już troche stary :P

0

A ja sie zastanawiam czemu sukcesy na tego typu zawodach odnoszą głównie uniwerki a nie politechniki, które ponoć lepiej przygotowują do praktycznej pracy, myślenia i ogólnie działania.

0

Na uniwerkach nacisk kładzie się na algorytmikę, myślenie abstrakcyjne i to właśnie jest na takich konkursach.

0
Grzybu napisał(a)

A ja sie zastanawiam czemu sukcesy na tego typu zawodach odnoszą głównie uniwerki a nie politechniki, które ponoć lepiej przygotowują do praktycznej pracy, myślenia i ogólnie działania.

A widziałeś jak odbywają się takie zawody w programowaniu "zespołowym"?

To są zawody algorytmiczne. 1 komputer, 3 członków zespołu. Każdy bierze zadanie i rozwiązuje na kartce. Jak któryś ma prawdopodobne rozwiązanie, siada do komputera, pisze program. Jak nie działa. Siada z powrotem do kartki i w tym czasie inny wklepuje. Współdziałania brak.

Tyle jeśli chodzi o "zespołowy". Nie wiem, czy na tym też tak jest, ale przypuszczam, że tak.

A czy w normalnej pracy częściej poszukujesz najszybszego algorytmu dla n=2^(bardzo duża liczba). Czy może częściej składasz z tego co masz program spełniający zadanie zgodnie z wolą klienta, któremu bardziej istotne jest jaki będzie kolor ikonek niż to czy otrzyma wynik po 1s czy po 2s?

0

Uczelniane zastosowania mają niewielką przydatność w praktyce. Np. piąta postać normalna bazy danych.

0
Dryobates napisał(a)

A czy w normalnej pracy częściej poszukujesz najszybszego algorytmu dla n=2^(bardzo duża liczba). Czy może częściej składasz z tego co masz program spełniający zadanie zgodnie z wolą klienta, któremu bardziej istotne jest jaki będzie kolor ikonek niż to czy otrzyma wynik po 1s czy po 2s?

Heh, pewnie pamiętacie te moje 'święte wojny', które prowadziłem bodajże w topicu o najbardziej przyszłościowym języku programowania, tutaj też nie odpuszczę ;) Jeśli zgodnie z tą zasadą spróbuje się napisać nowoczesną grę (a jak we wspomnianym topicu pisałem nie można tego rynku nie doceniać - zobaczcie sobie ile zarabia dajmy na to John Carmack ;)) to sukcesów nie wróżę - po użyszkodniku wyjącemu ze wściekłości nad zacinającą się na jego najnowszym sprzęcie grą raczej nie można oczekiwać że pobiegnie kiedykolwiek do sklepu po następne 'dzieło' jej twórcy/ów ;)

... co nie zmienia faktu że większość tzw. 'konkursów informatycznych', czy to solowych czy zespołowych ma z informatyką (a już na pewno z programowaniem) tyle wspólnego co kozia (!) z trąbą :/ (tak swoją drogą to szczególnie mi pod tym względem podpadła mi OI ;))

0

wg mojej wiedzy algorytmika poza uniwerkami to zazwyczaj śmiechu warta jest... niektórzy nie potrafią określić złożoności podstawowych algorytmów jak quick sort, a kopiec to dla nich czarna magia pomimo dwóch godzin wykładu na ten temat. jak dla kogoś szczytem ambicji jest zwykłe kodowanie tego co każą w VisualCośtam to w porządku. są artyści i są rzemieślnicy jak pewnie w każdej dziedzinie.

0
nicka napisał(a)

są artyści i są rzemieślnicy jak pewnie w każdej dziedzinie.

No oczywiście, że są. Tyle że ja nie widzę niczego złego w byciu takim właśnie 'rzemieślnikiem' - no bo niby kim innym jest programista? Głównym zadaniem każdego programisty jest tworzenie narzędzi służących ludziom do różnorakich celów (czy też rozrywki, jak to jest ze wspomnianymi przeze mnie grami). Nie oznacza to oczywiście, że takie narzędzie nie może być finezyjne - ale co komu po, dajmy na to, wyjątkowo finezyjnym młotku (chociaż trudno mi sobie wyobrazić na czym ta finezja miała by polegać ;)), który się delikatnie mówiąc rozsypie po pierwszym wybitym gwoździu ;)

0

tak btw: czy ktos z Was startuje w VI podlaskim turnieju w programowaniu zespolowym?

0

"Na pewno 4programmers ma duży udział bo często nowi tu właśnie odkrywają swoje powołanie i potem dalej kształcą się na studiach" jak sama nazwa wskazuje serwis ten jest przede wszystkim dla programistów... znam osobiście ludzi pokroju Wolskiego, i wątpie żeby tu zaglądali :P

nie mówie że to źle być rzemieślnikiem ale mam wrażenie że wielu uważa za ważniejsze przedmiot pt. "Kurs C" niż "Algorytmy"... jednak wg. mnie informatyka to nie to samo co programowanie ;-)

sprawdzanie poprawności programów czy nawet dowody poprawności - brzmi banalnie? dla kodera na pewno. a okazuje się że wielkie firmy jak Microsoft ogromne pieniądze na to wydają. wiecie że bezpieczeństwo podpisu cyfrowego opiera się na nieudowodnionej teorii P!=NP? chodząc na kursy tracicie ten dreszczyk emocji... :P

co jest fajnego w poznawaniu składni kolejnego języka?

0

O cholera, ale lamer ze mnie.. Mimo inż. i niedługo mgr z informy nie umiem obliczyć złożoności QuickSorta - sakreble!
Jak by się o tym któryś z moich (zadowolonych) pracodawców dowiedział, to zrobiłby mi pewnie z (|) jesień średniowiecza!

0

Moja idea jest taka: przychodzi pan(i) i che bazę. Ma gdzieś czy będą indeksy. Potem chce interface. Ma gdzies czy w delphi, VCL, C++, C#. Potem ma być raport. Ma gdzieś czy będzie czekał 1s (bubble sort) czy 0.2 s(quick sort). Ale wiem jedno. Powie, nie podoba mi się, bo ikony są za małe. I na co się zda algorytmika?

BTW. Ja też nie umiem policzyć złożoności QS, ale umiem go sobie napisać, zmodyfikować do potrzeb i wykorzystać.

Pamiętam, parę lat temu, kiedy zatrudniłem się jako kreślarz. Robię rysunek wałka stopniowanego. Wiadomo, polskie normy i to co mnie w szkole nauczono. 45 minut i słyszę OLEKSY!!!!! CO TO k[cenzura]a JEST???? Ok, mówię, przyerysuję po "mojemu". Zaraz lepiej...

0

Marooned -> bo nie jesteś 'tru' programistą, tylko zwykłym programistycznym rzemieślnikiem dla którego szczytem ambicji jest zwykłe kodowanie tego co każą w VisualCośtam ;)

Ale co do szybkości działania i potrzeby optymalizacji to ja będę swoich racji bronił - żebyście widzieli, jakie, z pozoru niewinnie wyglądający gracz, straszliwe bluzgi pod adresem programisty jest w stanie wypisać na forum gdy mu gra się przycina na jego Smętium 666GHz i DżiForsie 9900 GTI ;)

0

No dobrze - ja potrafie obliczyc zlozonosc quicksorta, znam roznice miedzy lista a tablica haszowana, bo implementowalem obydwie. Tylko, ze bardzo czesto wystarcza wiedza o tym, co jest szybsze, ale juz niekoniecznie dlaczego. Jak sie korzysta w c++ z STL, to pasuje wiedziec do czego sa jakie kontenery, ale juz nie bardzo jak i dlaczego zostaly tak napisane. W wiekszosci wypadkow wystarczy umiejetnie je zastosowac.
Rzemieslnik to tez zawod, tak samo jak kazdy inny i jak kazdy inny jest potrzebny - tak jak smieciarz, babcia klozetowa i inni. Ktos to musi robic i jak uwaza, ze robi to dobrze i jest z tego zadowolony to co w tym zlego?

0

A poza tym - obliczając złożoność, wyjaśniając działanie itp algorytmów, które istnieją, to nawet programistą nie jesteś - jesteś dydaktykiem ;P

A wymyślenie nowego algorytmu to obecnie kilka lat z życiorysu najczęściej (no chyba, że jakiś impuls z kosmosu do ciebie dotrze ;) ). No i zwróć uwagę na historię algorytmów, znakomita większość została wymyślona przez pracowników naukowych, a nie programistów.

0

<font size="1" color="gray">[post Oleksego wyleciał jako off-top]</span>

Ghostek napisał(a)

Marooned -> bo nie jesteś 'tru' programistą, tylko zwykłym programistycznym rzemieślnikiem dla którego szczytem ambicji jest zwykłe kodowanie tego co każą w VisualCośtam ;)
Nie mam oczywiście zamiaru negować tak przemyślanych wypowiedzi, ale czy zwykły rzemieślnik w przypływie nudy połączonej z potrzebą napisałby np. rzeźnicko szybki algorytm generowania kolejnych ciągów na podstawie maski w 100% 32bit Assemblerze bardzo przydatny do ataków brute-force? Może i tak :)

Pozdro

0

nie mówie że to źle być rzemieślnikiem, myślałem że troche zachęce do tego by nie traktować informatyki jako takiej co ogranicza się do inżynierii. po instytucie chodzi nie jeden student, który już coś wniósł odkrywczego w różne dyscypliny informatyki. kumpel np. dostał od prowadzącego zadanie domowe, zrobił i okazało się że to było ważne i pojechał z tym na konferencje - zdaje się że nie później jak na drugim roku. Czasem wystarczy coś zauważyć ciekawego, pewną własność i odrobine lepiej coś oszacować lub odrobine przyspieszyć czy zaproksymować wynik żeby okazało się to ważne i fajne. Dwa lata temu za tego typu odkrycie w grze co się nazywa "chomp" chłopak dostał stypendium wysokości kilkuset tysięcy dolarów. Nie rozwiązał problemu, ani nie wiadomo czy przybliżył nas rzeczywiście do rozwiązania ale mimo to uznano to za ważne i fajne ;-)

0

Spoko, ja tez twierdze, ze to moze byc fajne. Tylko to tez zalezy co kto lubi. Sa ludzie, ktorzy lubia, kiedy klient dostaje dokladnie to co zamowil - lacznie z kolorami przyciskow itp. Sa ludzie, ktorzy uwielbiaja cyrtolic sie z kodem, zeby byl maksymalnie dopieszczony, choc czasem klient nawet nie zauwazy roznicy (z wyjatkiem czasu wykonania). Sa ludzie, ktorzy wola siedziec nad czysta algorytmika pozostawiajac tworzenie interfejsu, pisanie kodu rzemieslnikom. Wszystkie podejscia sa w porzadku o ile w efekcie klient dostaje CO NAJMNIEJ dobry program - taki, ktory go satysfakcjonuje i nie jest fuszerka.
Ja osobiscie wole pisac samo sedno programu, czysta funkcjonalnosc, bo pisanie/klikanie interfejsu mnie nudzi - no ale ktos to musi zrobic. Z drugiej strony czasem nie chce mi sie dopieszczac szczegolow jezeli wiem, ze zaoszczedze na tym 10ms dzialania - no chyba, ze to 10 ms usklada sie w efekcie w minute ;) I mysle, ze takie podejscie jest w porzadku.

0

ale sie dowartosciowac ort!, kto byl na OI wie jak wygladaja takie zawody jakiego typu sa problemy i ile ma to wspolnego z programowaniem na co dzien, tak czy siak oni sa najlepsi ale na sukces nie przeklada sie tylko talent ale przygotowanie i zaplecze naukowe ktore za nimi stoi...

0

ale sie dowartosciowac probojecie

No ale o co chodzi? Kto się dowartościowuje? Padł rzekomy zarzut, że konkursowicze to geniusze, a reszta to zwykli rzemieślnicy. I żeby było śmieszniej, to nawet nikt się z tym nie próbował kłócić (z czym IMO można się kłócić) - większość wcale się tym nie przejęła, i wcale nie uważa tego za pejoratywne określenie.

Uważasz, że na zarzut: "jesteś rzemieślnikiem" wszyscy powinni zapłakać nad sobą w ciemnym kącie? Tak bardzo boli cię odpowiedź: "tak, jestem rzemieślnikiem, i dobrze mi z tym, bo taka osoba jest szanowana i potrzebna"?

To jest wg ciebie próba dowartościowania się?

0

hm sorka, tak to jest jak sie przeczyta pierwsze dwa posty i dalej scroll w dol ;) zwracam honor :P

0

Ech... Widziałem te konkursy programistyczne i zawsze je miałem głęboko gdzieś... W gimnazjum człowiek ma ciekawsze zadania, jak np. pisać programy na zaliczenia studentom ze śmiesznych uczelni i zbierać sobie na rower...

Mnie osobiście algorytmika zawsze nudziła, a takie zadania u mnie zawsze wywoływały u mnie myśli w stylu "po jaką cholerę to komu?". Oczywiście nie twierdze że ci co się w tym babrają są gorsi, ale nie można też twierdzić że są lepsi od nas - rzemieślników.

Ale czy aby na pewno "rzemieślników"? Powiedziałbym że to właśnie ci konkursowicze to rzemieślnicy, a ci których rzemieślnikami zwano są artystami, przekazującymi treść, a nie przejmującymi się tym jakich pędzli i farb / instrumentów i nut (itd.) używają!


Kończę, bo źle skończę.

0

To są tak dwie różne dziedziny, że nawet nie można ich porównywać. Ważne aby umieć to połączyć. Jeden opracowuje super szybki algorytm szukania, po to aby drugi mógł napisać silnik bazy danych.

0

sam jakis czas temu bylem rzemieslnikiem, teraz trochę bardziej stawiam na algorytmy. Jasne, że często z optymalizacją gra nie jest warta świeczki, ale spójrzcie na rządowe projekty informatyczne - wszystkie, z którymi się spotykałem (rekrutacja do liceum oraz intranet NFZ, jeszcze chyba cos) maja jedna wspolna ceche - niesamowicie wolno dzialaja (w czasie szczytu) oraz maja tendencje do padania... i smiem podejrzewac, ze tamci "ynformatycy" maja w (!) algorytmy, a nawet pewnie nie wiedza co to quicksort...

jak to jest ze mna? Ostatnio zauwazylem, ze robota polegajaca na "przyspieszaniu" jest bardziej oplacalna, niz zwykle "wklikiwanie formularzy"... Przykładowo gwiazdor.pl tydzień temu działał jak 4pro pol roku temu (czy tam ile). Teraz macie jakies watpliwosci co do czasu szukania w szukajce?

do czego zmierzam: nie ma znaczenia, co kto lubi bardziej - najważniejsze jest się rozwijać, przy czym warto trochę tego rozwoju pchnąć w algorytmy...

0

Mówiąc o optymalizacji. Pamiętam jak dziś. Miałem wielokrotnie zagnieżdżoną pętlę for. Naszpikowałem ją if'ami i break'ami w celu optymalizacji. Miało to na celu maksymalną eliminację iteracji. Za pomocą QueryPerformanceCounter pomiar czasu. 2.6s. Mówię, za dużo. Dalsza "optymalizacja". 2.8s. OMG mówię. usuwam wszystkie ify, breaki itp. Goła pętla robiąca 100% iteracji. Czas? 1.7s. Mało nie padłem.

0

mowiac o optymalizacji mam bardziej na mysli zmniejszenie zlozonosci, nie stalej :)

przyklad najlepszy wspomniana wyszukiwarka w katalogu - byla zrobiona najprosciej jak sie dalo - zwykly select z LIKE i z zalozonymi kluczami fulltext... to jednak nie wystarczalo.

a optymalizacje o ktorej mowisz stosowalem na mojej pierwszej OI - i nigdy wiecej - co by nie mowic o tym konkursie, jednak czegos sie tam nauczylem ;)

0

Co jest lepsze, mięso czy cebula? Czy można to porównywać?
Ja powiem, że Tatar, do którego potrzebne jest jeszcze parę dodatków.
W hodowli i w uprawie można być partaczem lub profesjonalistą.
Czy istnieją kucharze znający się na paszach, nawozach, metalurgii i górnictwie?
I czy tacy są potrzebni?
Ale kucharz MUSI umieć odróżnić wołowinę od wieprzowiny.

0

Odnośnie wspaniałych rządowych projektów informatycznych. Sprawa wygląda często tak, że firma informatyczna dostaje dosyć spory budżet, a następnie, by większosc zostawić dla zarządu, bierze kilku tanich studentów / absolwentów, którzy klepią system starając się jakoś spełnić wymagania zapisane w grubych tomach specyfikacji. Specyfikacji, która jest zwykle zawikłana podobnie jak przepisy podatkowe, bo pisana przez ludzi o niewielkim pojęciu programistycznym.

Dodatkowo większośc ludzi zaangażowanych w projekt umie programować na poziomie czysto "praktycznym" tzn. wie, że żeby coś wyszukać w bazie danych trzeba wpisać SELECT ... WHERE, ale z drugiej strony nie ma zielonego pojęcia o tym, jak to się dzieje że otrzymuje wyniki. Dodajcie do tego zwykle dość zaawansowaną technologię wybraną przez jakiegoś "szefa" i tragedia gotowa...

Ciekawy przypadek mieliśmy u nas w firmie. Ktoś zdecydował, że będziemy używać technologii X, bo teraz wszyscy tego używają, mając w zespole kilku programistów o doświadczeniu w jakichś projektach na uczelni i zerowym doświadczeniu w tej technologii. Powstał system, który działał wolno, co chwila padał i nikt nie wiedział, czemu. Po przepisaniu systemu w sposób bardziej "akademicki" z większym rozumieniem istoty rzeczy (i zmianie technologii na mniej "enterprisey", ale łatwiejszą do zrozumienia), nagle okazało się że wszystko śmiga, a jak są jakieś błędy, to poprawia się je w klika minut.


Co do wspomnianego przez kogoś quicksorta - widziałem już jak ktoś implementował quicksorta ręcznie, zamiast skorzystać z gotowca w bibliotece standardowej / bazie danych*. :D

*) Tak swoją drogą, porządne bazy danych wcale nie używają quicksorta. Quicksort na czymkolwiek wielokrotnie większym niż się mieści w cache L2 chyba przegra z merge(-heap) sortem. A jeśli zbiór się nie mieści w RAM, to na pewno przegra z kretesem.

0
Krolik napisał(a)

Co do wspomnianego przez kogoś quicksorta - widziałem już jak ktoś implementował quicksorta ręcznie, zamiast skorzystać z gotowca w bibliotece standardowej / bazie danych*. :D

hmm nie mam takiego doswiadczenia jak Ty ale nie rozumiem twojego podejscia.. to ze cos jest gotowe i dolaczane do libc (ktora ma wiele roznych implementacji) to chyba nie znaczy ze zawsze trzeba stosowac rozwiazania gotowe a nie mozna myslec samemu zwlaszcza w hobbystycznych projektach :-|

1 użytkowników online, w tym zalogowanych: 0, gości: 1