-
171. Data: 2012-10-15 22:03:40
Temat: Re: sortowanie
Od: "slawek" <h...@s...pl>
Użytkownik "Edek Pienkowski" napisał w wiadomości grup
dyskusyjnych:k5csta$d0e$...@m...internetia.pl...
>albo akwarium, albo się zakłada częściowe znerdzenie (pol: kujonizm)
Kujon to kujon - jedynym jego atutem jest umiejętność "zakuj i zapomnij"
nabyta w stopniu heroicznym.
>albo się nie robi nawet oprogramowania do pralek nie mówiąc o kalkulatorach
Jak widzę niektóre rzeczy made in PRC - to mam wrażenie, że twoje życzeniowe
myślenie rozmija się z rzeczywistością.
>_przed_ algorytmiką, żeby wszyscy wiedzieli, co to jest procesor i umieli
Co to jest "procesor"?
>Potem można wyłoązyć teorię dopiero, bo jak ktoś faktcznie tak jak mówisz
>nie wie co to RAM a co to procesor, nie sądzę, żeby w ogóle był w stanie
>zrozumieć coś tak prostego jak problemy z sortowaniem. My mamy to już
Pojęcie porządku znano trochę wcześniej niż Anglicy zleźli z drzew. Więc
"nieco" wcześniej niż wynaleziono żarówkę/lampę elektronową/tranzystor, co
tam sobie wybierzesz.
>przestać udawać że ktoś kto nie wie co to jest program zrozumie
>quick-sorta (poza odnotowaniem, że chyba się wie jak to działa)
>i ze to jest uczenie algorytmiki.
A niby czego? Murarstwa?
Zrozumie? Dobrze! Nie zrozumie? Wypad!
>takie przedmioty na niektórych uczelniach jak "Jak się uczyć?" czy
>bardziej wyspecjalizowane "Street Fighting Maths" (uczy szybkiego
>szacowania i paru innych). Ludzie mogą z nich polewać, ale te przedmioty
Ej tam, bez przesady... szkoły gotowania na gazie są znane wszędzie. I mają
się dobrze.
--- news://freenews.netfront.net/ - complaints: n...@n...net ---
-
172. Data: 2012-10-15 22:12:03
Temat: Re: sortowanie
Od: "slawek" <h...@s...pl>
Użytkownik "PK" napisał w wiadomości grup
dyskusyjnych:507968f5$0$1220$6...@n...neostrada
.pl...
>pełno jest cudownych "odkryć" wynikających z tego, że poważny
>naukowiec pisał w C++ i użył rand() niczym 14-latek na sprawdzianie).
Cudownych odkryć jest wiele i bez rand().
Natomiast samo w sobie jest ciekawe:
a. dlaczego rand() jest tak beznadziejne (czy zaszkodziłoby dać naprawdę
dobry generator jako rand() ?;
b. czy istnieją liczby losowe jako takie (i los jako taki, predestynacja,
wolna wola i takie tam) ?
--- news://freenews.netfront.net/ - complaints: n...@n...net ---
-
173. Data: 2012-10-15 22:34:47
Temat: Re: sortowanie
Od: "M.M." <m...@g...com>
W dniu poniedziałek, 15 października 2012 21:22:55 UTC+2 użytkownik slawek napisał:
> I tu moje pytanie - czy w porządnej firmie (nacisk na słowo *porządnej*)
> tego rodzaju tfurczość jest też przykładem cnót wszelkich?!
Jak odrozniamy porzadna firme od nieporzadnej? Porzadna to
taka ktora zarabia czy myle sie?
Z doswiadczenia wiem ze w firmach czesto produkuje sie nawet znacznie
gorszy kod, glownie z powodu ogromnej presji czasu. Program dziala na
akceptowalnym poziomie, kilent placi i na karku juz kolejne zlecenie.
Czesto nie mam czasu zeby cos dopracowac. Czesto zatrudnia sie mniej
doswiadczonych programistow bo sa tansi. Zwykle o losach projektu
decyduje ten kto ma pieniade na projekt, a posiadanie pieniedzy czesto
nie idzie w parze ze stosownymi umiejetnosciami. Ja orlem nie jestem, a
najczesciej i tak nie pozwalaja mi wykorzystac swoich umiejetnosci.
Przykladowo w tej chwili mam program o czesciowej funkcjonalnosci. Uparli
sie zeby najpierw napisac program tylko o czesciowej funkcjonalnosci.
Chodzilo glownie o to, zeby mozna bylo szybko zobaczyc cokolwiek dzialajacego.
Chcieli to zribilem. Zadzialalo, nawet spodobalo sie i
nawet bylo ladnie zaprojektowane, ale teraz trzeba przerobic jeden
program na niemal zupelnie inny. Nie mam dobrze wydzielonego wspolnego
kodu, nie mam dobrych abstrakcji, nie mam w kodzie ogolnych struktur
danych, to tu dopisuje sprytengo ifa, to tam duzo kodu powielam przez
copy-paste i sie zrbobila sieczka. Nie ma czasu na uporzadkowanie, ma
zadzialac i koniec.
Pozdrawiam
-
174. Data: 2012-10-15 22:54:07
Temat: Re: sortowanie
Od: bartekltg <b...@g...com>
W dniu 2012-10-15 21:22, slawek pisze:
> Użytkownik "bartekltg" napisał w wiadomości grup
> dyskusyjnych:k5cqnf$gac$...@n...news.atman.pl...
>
>> Powiedzmy, okolice średniej trudności z tego:
>> http://potyczki.mimuw.edu.pl/user.phtml?op=zadania
>
> Bartuś, a oświeć mnie, czy rozwiązania ibidem, a zwłaszcza te ocenione
> na 10/10 punktów... spełniają oczekiwania "pracodafcuf"?
Konkursik ten przez wiele lat był przy okazji narzędzeim
rekrutacji pewnej firmy.
Tak, ten konkursik sprawdza zdolności matematyczne/algorytmiczne,
nie jakość kodu. No i?
konkursiki 'kto ładniej napisze i skomentuje bezę danych
węży gumowych' pewnie też są. Ale mnie nie interesują.
[ciach reszta pierdół.]
pzdr
bartekltg
-
175. Data: 2012-10-15 23:59:11
Temat: Re: sortowanie
Od: Andrzej Jarzabek <a...@g...com>
On 15/10/2012 21:34, M.M. wrote:
[...]
> Z doswiadczenia wiem ze w firmach czesto produkuje sie nawet znacznie
> gorszy kod, glownie z powodu ogromnej presji czasu.
Żeby nie było - też mam takie doświadczenia...
> Program dziala na
> akceptowalnym poziomie, kilent placi i na karku juz kolejne zlecenie.
> Czesto nie mam czasu zeby cos dopracowac. Czesto zatrudnia sie mniej
> doswiadczonych programistow bo sa tansi. Zwykle o losach projektu
> decyduje ten kto ma pieniade na projekt, a posiadanie pieniedzy czesto
> nie idzie w parze ze stosownymi umiejetnosciami.
Tylko że opłacalność tego potrafi też działać w drugą stronę - firma
sprzedała program w jakiejś tam wersji, klienci chcą następnej wersji i
nawet są skłonni zapłacić dużą kasę, ale z powodu niedobrych praktyk
rozwijanie kolejnych wersji staje się coraz droższe, a co za tym idzie
coraz mniej opłacalne.
Albo jeszcze gorzej: program którego zrobienie kosztowało dwa miliony
został sprzedany za cztery, tylko że się okazuje, że w programie jest
sporo bugów, które producent musi zapatchować za darmo, i patchowanie w
końcu kosztuje kolejne trzy miliony.
> Przykladowo w tej chwili mam program o czesciowej funkcjonalnosci. Uparli
> sie zeby najpierw napisac program tylko o czesciowej funkcjonalnosci.
> Chodzilo glownie o to, zeby mozna bylo szybko zobaczyc cokolwiek dzialajacego.
Chcieli to zribilem. Zadzialalo, nawet spodobalo sie i
> nawet bylo ladnie zaprojektowane, ale teraz trzeba przerobic jeden
> program na niemal zupelnie inny. Nie mam dobrze wydzielonego wspolnego
> kodu, nie mam dobrych abstrakcji, nie mam w kodzie ogolnych struktur
> danych, to tu dopisuje sprytengo ifa, to tam duzo kodu powielam przez
> copy-paste i sie zrbobila sieczka. Nie ma czasu na uporzadkowanie, ma
> zadzialac i koniec.
"Miał zadziałać, i proszę bardzo - zadziałał. I koniec."
Poważnie jednak - to jest absolutnie normalne, że funkcjonalność
programu jest rozbudowywana w ten sposób. Tak się robi, na tym się
zarabia, i porządnie zrobione jest to obopólnie korzystne dla
zamawiającego, jak i dla producenta. Chodzi jednak o to, że porządne
zrobienie tego nie oznacza dopuszczenia do sieczki, a nawet jak już się
sieczka gdzieniegdzie zrobi, to da się ją posprzątać. Powiesz, że
klienta nie interesuje, czy jest sieczka, czy nie. Ale czy nie
interesuje go również, czy zaimplementowanie kolejnego wymagania zajmie
dwa tygodnie, czy - z powodu sieczki - dziesięć? Czy nie interesuje go
ile razy na miesiąć system będzie padał i jaki będzie miał downtime?
Oczywiście zarobić da się i na tym, że klient nie ma pełnej informacji o
tym, co kupuje, między innymi o takich aspektach. Ale skoro pytałeś o
definicję porządnej firmy, moja definicja jest taka, że jest to firma,
która nie opiera na tym fakcie swojego modelu biznesowego.
-
176. Data: 2012-10-16 01:20:30
Temat: Re: sortowanie
Od: "slawek" <s...@h...pl>
Użytkownik "bartekltg" <b...@g...com> napisał w wiadomości grup
dyskusyjnych:k5ht5m$a02$...@n...news.atman.pl...
> Konkursik ten przez wiele lat był przy okazji narzędzeim
> rekrutacji pewnej firmy.
No, rozumiem, współpraca uczelnia-biznes itd. itp.
Ale czy ta firma, konkretnie, jest jakaś bardziej wiodąca na rynku innym niż
polski? Tak retorycznie pytam.
> Tak, ten konkursik sprawdza zdolności matematyczne/algorytmiczne,
> nie jakość kodu. No i?
To ja się nieśmiało zapytam: czy zdolności matematycznych nie lepiej
sprawdzić egzaminem z matematyki? Po co tracić czas na komputery?!
> konkursiki 'kto ładniej napisze i skomentuje bezę danych
> węży gumowych' pewnie też są. Ale mnie nie interesują.
Jeżeli uznamy te prace 10/10 za wzorcowe - to nie ma sensu uczyć nikogo
staranności w programowaniu - bo, cytując klasyka "byle jak, byle co, byle
szło".
I potem nie nie ma sensu dziwić się, że są naprawdę duże problemy z bazą
danych szlauchów i kaloszy (de facto przemysł), że znienacka coś walnie się
w bankowości/giełdzie, że w grze pamięć cieknie megabajtami co minutę, a
wyniki w pracach naukowych to efekt rand()... ale za to TEORETYCZNIE
JESTEŚMY POTĘGĄ W ALGORYTMACH I PIŁCE NOŻNEJ.
-
177. Data: 2012-10-16 01:37:00
Temat: Re: sortowanie
Od: Michoo <m...@v...pl>
On 15.10.2012 21:36, slawek wrote:
> Użytkownik "Michoo" napisał w wiadomości grup
> dyskusyjnych:k5cfhp$2rs$...@m...internetia.pl...
>
>> program napisze na zajęciach. Ich trzeba nauczyć "co to jest algorytm".
>
> Co to jest "algorytm"?
Zapis sekwencji czynności wykonywanych na abstrakcyjnej maszynie [1]
mających za zadanie na podstawie określonych danych wejściowych
wygenerować zależny od niego stan końcowy (wynik)[2].
[1] W szczególności np. "na człowieku" - możemy mieć algorytm obierania
banana.
[2] nieskończony ciąg czynności nie jest algorytmem
--
Pozdrawiam
Michoo
-
178. Data: 2012-10-16 01:51:44
Temat: Re: sortowanie
Od: "M.M." <m...@g...com>
W dniu poniedziałek, 15 października 2012 23:59:13 UTC+2 użytkownik Andrzej Jarzabek
napisał:
> Tylko że opłacalność tego potrafi też działać w drugą stronę - firma
> sprzedała program w jakiejś tam wersji, klienci chcą następnej wersji i
> nawet są skłonni zapłacić dużą kasę, ale z powodu niedobrych praktyk
> rozwijanie kolejnych wersji staje się coraz droższe, a co za tym idzie
> coraz mniej opłacalne.
Można się tylko zgodzić.
> Albo jeszcze gorzej: program którego zrobienie kosztowało dwa miliony
> został sprzedany za cztery, tylko że się okazuje, że w programie jest
> sporo bugów, które producent musi zapatchować za darmo, i patchowanie w
> końcu kosztuje kolejne trzy miliony.
Najwyraźniej my to wiemy.
> Poważnie jednak - to jest absolutnie normalne, że funkcjonalność
> programu jest rozbudowywana w ten sposób. Tak się robi, na tym się
> zarabia, i porządnie zrobione jest to obopólnie korzystne dla
> zamawiającego, jak i dla producenta. Chodzi jednak o to, że porządne
> zrobienie tego nie oznacza dopuszczenia do sieczki, a nawet jak już się
> sieczka gdzieniegdzie zrobi, to da się ją posprzątać. Powiesz, że
> klienta nie interesuje, czy jest sieczka, czy nie. Ale czy nie
> interesuje go również, czy zaimplementowanie kolejnego wymagania zajmie
> dwa tygodnie, czy - z powodu sieczki - dziesięć? Czy nie interesuje go
> ile razy na miesiąć system będzie padał i jaki będzie miał downtime?
Raczej powiem że w praktyce nie potrafię albo przepchnąć takiej argumentacji,
pomimo że moim zdaniem też jest oczywista, albo w praktyce zrobienie dobrego
projektu jest w ogóle trudne do osiągnięcia. Chodzi mi o taką praktykę...
jakby to zgrabnie określić, może... całą praktykę biznesową, nie tylko
programistyczną.
Nie potrafię przepchnąć takiej argumentacji w najróżniejszych okolicznościach. A to w
rozmowie z kolegą z zespołu ciężko, bo zaraz rozmowa przyjmie taki ton, że
uważam iż on zrobił sieczkę a nie porządny kod. Gdy poczuje zagrożenie z mojej
strony, to strach się bać co mi za plecami odwinie. Z managementem ciężko, bo
łatwo górę bierze chciwość i zaoszczędzenie odrobiny czasu. Z klientem to już w
ogóle najtrudniej, bo klient nie dysponuje odpowiednią wiedzą, a często chce
narzucać pewne rzeczy. Kolejna sprawa to wypada operować konkretami. Trzeba
podać jakie rozbudowy, o ile przyspieszą późniejszy czas wykonania, itd. Nie
da się przecież tak zaprojektować programu, żeby zupełnie każda modyfikacja była w
przyszłości łatwa. Z kolei żeby operować konkretami to trzeba dobrze znać dziedzinę,
ale
nawet jak się zna dziedzinę to jest trudno oszacować czas i próg opłacalności.
W mojej praktyce nigdy większego projektu nie robiłem dla dziedziny o której
na starcie miałem pojęcie. Zawsze musiałem douczyć się na szybko. Właściwie to
nie wiedziałem nawet co w ogóle może być użyteczne w systemie i jakie rozbudowy
zaproponować. W takich warunkach musiałem oszacować czas, cenę i, co tu dużo mówić,
odgadnąć jaki projekt będzie najlepszy. Nie można bez dobrej znajomości dziedziny
zrobić
dobrego projektu, można go co najwyżej odgadnąć. Kolejny problem jest taki, że krótko
po
rozpoczęciu chcą zobaczyć jakiś prototyp, tak jakby dla pewności że prace w
ogóle trwają. Prototyp wprost z definicji da się wykonać na skróty. Chociażby
można go zrobić bez uprzedniego przemyślenia jak będzie testowany, ale jest
więcej pułapek. Potem przy przechodzeniu z prototypu do pełnej wersji może nagle
się okazać, że program będzie bardzo trudny w testowaniu.
We wszystko powyższe czasami wplata się problem wydajnościowy, a kod
po zoptymalizowaniu to już masakra w utrzymaniu.
Aktualnie borykam się z właśnie z tego typu problemem - projekt który był dobry na
potrzeby prototypu, okazał się kiepski dla pełnej wersji.
Pozdrawiam
P.S.
Czy widac polskie znaki?
-
179. Data: 2012-10-16 04:12:36
Temat: Re: sortowanie
Od: Baranosiu <r...@w...pl>
Dnia 15.10.2012 Michoo <m...@v...pl> napisał/a:
> On 15.10.2012 21:36, slawek wrote:
>> Użytkownik "Michoo" napisał w wiadomości grup
>> dyskusyjnych:k5cfhp$2rs$...@m...internetia.pl...
>>
>>> program napisze na zajęciach. Ich trzeba nauczyć "co to jest algorytm".
>>
>> Co to jest "algorytm"?
>
> Zapis sekwencji czynności wykonywanych na abstrakcyjnej maszynie [1]
> mających za zadanie na podstawie określonych danych wejściowych
> wygenerować zależny od niego stan końcowy (wynik)[2].
>
> [1] W szczególności np. "na człowieku" - możemy mieć algorytm obierania
> banana.
> [2] nieskończony ciąg czynności nie jest algorytmem
>
Dochodzi jeszcze kwestia tego co rozumie się przez zbiór "czynnoiści
elementarnych", bo na przykład kiedyś konstruowano komputery
analogowe, które jedną "czynnością elementarną" przechodziły przez
nieskończoną liczbę stanów i algorytm działający na maszynie
analogowej może już nie być algorytmem na maszynie dyskretnej. Tak
więc definicja "abstrakcyjnej maszyny" jest też częścią algorytmu a
nie tylko same czynności (choć zwykle chodzi o maszyny dyskretne
mające skończoną liczbę stanów). Mnie na studiach uczono (a były to
lata 90-te), że tak na prawdę nie ma jednej uniwersalnej matematycznej
definicji czym jest algorytm, dlatego w różnych kontekstach przyjmuje
się różne "modele" tego pojęcia.
-
180. Data: 2012-10-16 07:25:24
Temat: Re: sortowanie
Od: kenobi <p...@g...com>
W dniu poniedziałek, 15 października 2012 21:22:55 UTC+2 użytkownik slawek napisał:
> Użytkownik "bartekltg" napisał w wiadomości grup
>
> dyskusyjnych:k5cqnf$gac$...@n...news.atman.pl...
>
>
>
> >Powiedzmy, okolice średniej trudności z tego:
>
> >http://potyczki.mimuw.edu.pl/user.phtml?op=zadania
>
>
>
> Bartuś, a oświeć mnie, czy rozwiązania ibidem, a zwłaszcza te ocenione na
>
> 10/10 punktów... spełniają oczekiwania "pracodafcuf"?
>
>
>
> Bo ja jakoś wątpię. Nie dlatego, że tego. Ale jak sobie obejrzałem, to:
>
>
>
> 1. Copy-paste (w rozwiązaniu zadania z jakąś kulką beznadziejnie odbijającą
>
> się pomiędzy zepsutymi sensorami) - i to bez podania, czy źródła są Public
>
> Domain, czy tak jakoś spadły z niebiesiech.
>
> 2. Trzy jednakowe (z grubsza) rozwiązania - chyba zupełnie niezależne, ot,
>
> trzej ich autorzy się inspirowali tym samym serialem w TV, nie znają się ani
>
> w realu ani przez net.
>
> 3. Brak sensownych komentarzy, bez przesady nie musi być więcej komciów niż
>
> LOC, ale przecież napisać parę dobrych słów nie boli.
>
> 4. Ajdenty niczym z obsfucated C
>
> 5. Nadużywanie makrodefinicji (na wuja definiować mętne makro z parametrem,
>
> jeżeli zostanie ono użyte dokładnie jeden raz?)
>
>
>
> Ok, ja rozumiem - takie rzeczy też można widzieć tu i owdzie. Ba! Zawsze
>
> można, że to początkujący itd. itp.
>
>
>
> Ale! Ale te wysokopunktowane rozwiązania są wysokopunktowane bo - jak
>
> rozumiem intencje arbitrów - mają stanowić WZÓR DO NAŚLADOWANIA.
>
>
>
> I tu moje pytanie - czy w porządnej firmie (nacisk na słowo *porządnej*)
>
> tego rodzaju tfurczość jest też przykładem cnót wszelkich?!
>
>
a ktore dokladnie? ja rzucilem okiem na kilka
i sa one kryptyczne ale czysto napisane i
ocenilbym chyba wysoko w nocie 'za wyglad'
(choc z tym preprocesorem to rzeczywiscie
dziwny styl)