eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › To prawda?
Ilość wypowiedzi w tym wątku: 24

  • 1. Data: 2012-01-12 17:08:08
    Temat: To prawda?
    Od: " M.M." <m...@W...gazeta.pl>

    Cytat z perełek oprogramowania, bez mojego komentarza:

    Większość ludzi sądzi, że mając w ręku przedstawiony opis, można napisać kod
    bez trudu. Mylą się jednak. Jedynym sposobem, byś się o tym Szanowny
    Czytelniku przekonał, jest odłożenie książki na bok i samodzielene napisanie
    programu. Spróbuj.
    Zadałem to ćwiczenie na wykładach dla zawodowych programistów. Mieli kilka
    godzin na zamianę powyższego opisu na program w języku, który sobie wybrali;
    wystarczał pseudo język wysokiego poziomu. Pod koniec określonego czasu prawie
    wszyscy zgłosili, że mają poprawnie zapisane procedury. Przeznaczyliśmy 30
    minut na sprawdzanie kodu, co programiści robili za pomocą zadanych testów.
    Wyniki osiągane w różnych grupach z ponad setką programistów, były mniej
    więcej takie same: dziewięciu na dziesięciu znalazło błędy w swych funkcjach
    (a nie zawsze byłem przekonany o poprawności kodu, w którym błędów nie wykryto).
    Byłem zdumiony: mimo dostatecznej ilości czasu, zaledwie 10% zawodowych
    programistów zdołało poprawnie zapisać ten niewielki programik. Nie tylko dla
    nich zadanie okazało się trudne: w części poświęconej historii, w p 6.2.1
    książki Sortowanie i wyszukiwanie Kunth podkreśla, że wprawdzie pierwszy
    algorytm wyszukiwania binarnego ukazał się drukiem w 1946r, ale na pierwszą
    jego publikację nie zawierającą błędów trzeba było czekać do 1962r"

    Pozdrawiam

    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 2. Data: 2012-01-12 19:11:47
    Temat: Re: To prawda?
    Od: " " <f...@N...gazeta.pl>

    M.M. <m...@W...gazeta.pl> napisał(a):

    > Cytat z perełek oprogramowania, bez mojego komentarza:
    >
    > Większość ludzi sądzi, że mając w ręku przedstawiony opis, można napisać kod
    > bez trudu. Mylą się jednak. Jedynym sposobem, byś się o tym Szanowny
    > Czytelniku przekonał, jest odłożenie książki na bok i samodzielene napisanie
    > programu. Spróbuj.
    > Zadałem to ćwiczenie na wykładach dla zawodowych programistów. Mieli kilka
    > godzin na zamianę powyższego opisu na program w języku, który sobie wybrali;
    > wystarczał pseudo język wysokiego poziomu. Pod koniec określonego czasu
    prawie
    > wszyscy zgłosili, że mają poprawnie zapisane procedury. Przeznaczyliśmy 30
    > minut na sprawdzanie kodu, co programiści robili za pomocą zadanych testów.
    > Wyniki osiągane w różnych grupach z ponad setką programistów, były mniej
    > więcej takie same: dziewięciu na dziesięciu znalazło błędy w swych funkcjach
    > (a nie zawsze byłem przekonany o poprawności kodu, w którym błędów nie
    wykryto)
    > .
    > Byłem zdumiony: mimo dostatecznej ilości czasu, zaledwie 10% zawodowych
    > programistów zdołało poprawnie zapisać ten niewielki programik. Nie tylko
    dla
    > nich zadanie okazało się trudne: w części poświęconej historii, w p 6.2.1
    > książki Sortowanie i wyszukiwanie Kunth podkreśla, że wprawdzie pierwszy
    > algorytm wyszukiwania binarnego ukazał się drukiem w 1946r, ale na pierwszą
    > jego publikację nie zawierającą błędów trzeba było czekać do 1962r"
    >
    przypuszczam ze to prawda ale nie widze by tu bylo coskolwiek
    dziwnego, moze ew dziwic tych ktorzy nie programują

    dla mnie normalka jest ze prawie kazde kilka wklepanych
    linijek zwraca mi blad, a raz na jakis czas (ale dosyc rzadko
    (stosunkowo, chyba nie codzien ale gdzies tak raz na pare dni
    moze (? - nie wiem bo nie prowadzilem statystyk czy czegos takiego))
    zdarza sie trudniejszy blad wymagajacy poszukiwania przyczyny)

    i tak nie to jest problemem w mojej robocie, problemy sa inne
    np:

    - koniecznosc poszukiwania informacji (np jak zrobic gaz na
    dyskretnej siatce)

    - to ze niektore rozwiazania nie wychodzą tak dobrze jak
    by bylo fajnie i ze nie ma na to jasno okreslonego przepisu

    :/




    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 3. Data: 2012-01-12 19:16:15
    Temat: Re: To prawda?
    Od: "identifikator: 20040501" <N...@g...pl>

    a mnie się zdaje, że niektóre błędy robi się celowo, żeby je później
    wychwycić w debugowaniu, np. początkowa wartość jakiejś zmiennej... ale
    faktem jest, że młodzi walą masę błędów...


  • 4. Data: 2012-01-12 21:44:35
    Temat: Re: To prawda?
    Od: n...@m...invalid

    W dniu 12.01.2012 r. 18:08, M.M. pisze:
    > Cytat z perełek oprogramowania, bez mojego komentarza:
    >
    > Większość ludzi sądzi, że mając w ręku przedstawiony opis, można napisać kod
    > bez trudu. Mylą się jednak. Jedynym sposobem, byś się o tym Szanowny
    > Czytelniku przekonał, jest odłożenie książki na bok i samodzielene napisanie
    > programu. Spróbuj.
    > Zadałem to ćwiczenie na wykładach dla zawodowych programistów. Mieli kilka
    > godzin na zamianę powyższego opisu na program w języku, który sobie wybrali;
    > wystarczał pseudo język wysokiego poziomu. Pod koniec określonego czasu prawie
    > wszyscy zgłosili, że mają poprawnie zapisane procedury. Przeznaczyliśmy 30
    > minut na sprawdzanie kodu, co programiści robili za pomocą zadanych testów.
    > Wyniki osiągane w różnych grupach z ponad setką programistów, były mniej
    > więcej takie same: dziewięciu na dziesięciu znalazło błędy w swych funkcjach
    > (a nie zawsze byłem przekonany o poprawności kodu, w którym błędów nie wykryto).
    > Byłem zdumiony: mimo dostatecznej ilości czasu, zaledwie 10% zawodowych
    > programistów zdołało poprawnie zapisać ten niewielki programik. Nie tylko dla
    > nich zadanie okazało się trudne: w części poświęconej historii, w p 6.2.1
    > książki Sortowanie i wyszukiwanie Kunth podkreśla, że wprawdzie pierwszy
    > algorytm wyszukiwania binarnego ukazał się drukiem w 1946r, ale na pierwszą
    > jego publikację nie zawierającą błędów trzeba było czekać do 1962r"
    >
    > Pozdrawiam
    Ciekawy głos. IMHO nazbyt często jest to ignorowane. Ludzie są
    doskonałym automatem niedeterministycznym dysponującym pamięcią
    asocjacyjną, wnioskowaniem logicznym i myśleniem abstrakcyjnym -- ale za
    cenę, że popełniają błędy. To był m.in. motywator do tego, by rozwijać
    w "pozytywistycznym okresie" AI programy do wnioskowania maszynowego,
    dowodzenia teoremów, a dziś stoi za statyczną weryfikacją programów lub,
    dajmy na to, projektowaniem deklaratywnym (aczkolwiek nie podam źródeł).
    Skrajnie nieliczna grupa ludzi (wręcz sawantów) potrafi przeprowadzać
    analizę warunków brzegowych i innych przez większość czasu zaangażowania
    umysłowego.
    Zresztą stanowi to jedną z podwalin OOP -- analityczne podejście do
    rozwiązywania problemów. Jak wiadomo, obdarzone tendencją do redundancji.
    Programiści powinni o tym nie zapominać.


  • 5. Data: 2012-01-12 23:16:14
    Temat: Re: To prawda?
    Od: A.L. <l...@a...com>

    On Thu, 12 Jan 2012 20:16:15 +0100, "identifikator: 20040501"
    <N...@g...pl> wrote:

    >a mnie się zdaje, że niektóre błędy robi się celowo, żeby je później
    >wychwycić w debugowaniu, np. początkowa wartość jakiejś zmiennej... ale
    >faktem jest, że młodzi walą masę błędów...

    Tak. Znam instytucje w ktorej programisci dostawali 20 dolarow premii
    za kazdy wykryty i poprawiony blad. Zlikwidowano to gdy programisci
    zawiazali "spoldzielnie" ktorej czlonkowie zaczeli zarabiac druga
    pensje

    A.L.


  • 6. Data: 2012-01-13 07:59:59
    Temat: Re: To prawda?
    Od: Paweł Kierski <n...@p...net>

    W dniu 2012-01-12 18:08, M.M. pisze:
    > Cytat z perełek oprogramowania, bez mojego komentarza:
    >
    > Większość ludzi sądzi, że mając w ręku przedstawiony opis, można napisać kod
    > bez trudu. Mylą się jednak. Jedynym sposobem, byś się o tym Szanowny
    > Czytelniku przekonał, jest odłożenie książki na bok i samodzielene napisanie
    > programu. Spróbuj.
    [...]

    Czy prawda? Weź kartkę i spróbuj napisać wyszukiwanie binarne. Sprawdź
    poprawność.

    Serio - zdarzało mi się dawać tego typu zadania kandydatom. Dla mnie
    celem nie było zobaczenie poprawnego rozwiązania, ale sposobu pisania
    i tego, czy kandydat ma świadomość, że w 15 minut będzie prawie
    niemożliwe jest rozwiązanie bez błędów, uwzględniające wszystkie
    szczególne przypadki.

    --
    Paweł Kierski
    n...@p...net


  • 7. Data: 2012-01-13 09:47:08
    Temat: Re: To prawda?
    Od: "M.M." <m...@N...gazeta.pl>

    Paweł Kierski <n...@p...net> napisał(a):

    > Czy prawda? Weź kartkę i spróbuj napisać wyszukiwanie binarne. Sprawdź
    > poprawność.
    >
    > Serio - zdarzało mi się dawać tego typu zadania kandydatom. Dla mnie
    > celem nie było zobaczenie poprawnego rozwiązania, ale sposobu pisania
    > i tego, czy kandydat ma świadomość, że w 15 minut będzie prawie
    > niemożliwe jest rozwiązanie bez błędów, uwzględniające wszystkie
    > szczególne przypadki.

    Trzy wersje procedury. Po 7 minutach miałem jakieś badziewie. Po 13 minutach
    wersję z błędem. Po 20 minutach miałem napisany prosty test i wersję
    z poprawionym błędem. Podczas pisania nie patrzyłem na żaden
    metakod ani schemat blokowy. Ostatnio ten algorytm musiałem napisać...
    dawno temu, więc z pamięci też go nie pisałem. Jakbym miał jeszcze z 10
    minut to bym rozwinął rekurencje ogonową. Faktyczne w 15 minut nie
    zdążyłem, ale zdaniem autora 9 zawodowych programistów na 10 nie
    zdążyła w kilka godzin - wydaje się dziwne. Ale może został w moim
    kodzie jakiś błąd?


    #include <cstdlib>
    #include <cstdio>

    // 7 minut
    int binary_search( const int vector[] , const int start , const int end ,
    const int wanted ) {
    const int size = end - start;
    if( size <= 0 ) return -1;
    if( size == 1 ) return vector[start] == wanted ? start : -1;
    const int divided = start + ( end - start ) / 2;
    const int new_start = vector[divided] <= wanted ? start : divided + 1;
    const int new_end = vector[divided] <= wanted ? divided : end;
    return binary_search( vector , new_start , new_end , wanted );
    }

    // 13 minut
    int binary_search( const int vector[] , const int start , const int end ,
    const int wanted ) {
    const int size = end - start;
    if( size < 0 ) abort();
    if( size == 0 ) return vector[start] == wanted ? start : -1;

    const int divided = start + ( end - start ) / 2;
    if( vector[divided] <= wanted )
    return binary_search( vector , start , divided , wanted );
    return binary_search( vector , divided+1 , end , wanted );
    }

    // 20 minut
    int binary_search( const int vector[] , const int start , const int end ,
    const int wanted ) {
    const int size = end - start;
    if( size < 0 ) abort();
    if( size == 0 ) return vector[start] == wanted ? start : -1;
    const int divided = start + size / 2;
    if( wanted <= vector[divided] )
    return binary_search( vector , start , divided , wanted );
    return binary_search( vector , divided+1 , end , wanted );
    }


    int main(int argc, char *argv[]) {
    const int test1[22] = { 0 , 1 , 5 , 8 , 10 , 11 , 100 , 101 , 111 , 230 ,
    1111 , 2222 , 3333 , 4001 , 4002 , 4003 ,5000 , 5500 , 5555 , 6000 , 6001 ,
    6002 };
    int sum = 0;
    for( int i=0 ; i<=6666 ; i++ ) {
    sum += binary_search( test1 , 0 , 21 , i ) != -1;
    }
    printf("sum: %d\n" , sum );
    return 0;
    }






    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 8. Data: 2012-01-13 10:26:17
    Temat: Re: To prawda?
    Od: Paweł Kierski <n...@p...net>

    W dniu 2012-01-13 10:47, M.M. pisze:
    > Paweł Kierski<n...@p...net> napisał(a):
    >
    >> Czy prawda? Weź kartkę i spróbuj napisać wyszukiwanie binarne. Sprawdź
    >> poprawność.
    >>
    >> Serio - zdarzało mi się dawać tego typu zadania kandydatom. Dla mnie
    >> celem nie było zobaczenie poprawnego rozwiązania, ale sposobu pisania
    >> i tego, czy kandydat ma świadomość, że w 15 minut będzie prawie
    >> niemożliwe jest rozwiązanie bez błędów, uwzględniające wszystkie
    >> szczególne przypadki.
    >
    > Trzy wersje procedury. Po 7 minutach miałem jakieś badziewie. Po 13 minutach
    > wersję z błędem. Po 20 minutach miałem napisany prosty test i wersję
    > z poprawionym błędem. Podczas pisania nie patrzyłem na żaden
    > metakod ani schemat blokowy. Ostatnio ten algorytm musiałem napisać...
    > dawno temu, więc z pamięci też go nie pisałem. Jakbym miał jeszcze z 10
    > minut to bym rozwinął rekurencje ogonową. Faktyczne w 15 minut nie
    > zdążyłem, ale zdaniem autora 9 zawodowych programistów na 10 nie
    > zdążyła w kilka godzin - wydaje się dziwne. Ale może został w moim
    > kodzie jakiś błąd?

    Kilka rzeczy - o ile pamiętam oryginalnie chodziło o wersję iteracyjną.
    Rekurencyjna jest prostsza faktycznie, w iteracyjnej dużo łatwiej
    o błedy. Po drugie - piszemy na kartce i testujemy na kartce 8-)
    Trzecie - książka mimo wszystko opisuje sytuację z przed ponad 20 lat
    (o ile nie więcej).

    Wg mnie zawsze jest to świetny test na pokorę i umiejętne oszacowanie
    pracochłonności implementacji. Oraz świetnie pokazuje różnicę między
    "u mnie (chyba) działa"
    (http://www.codinghorror.com/blog/2007/03/the-works-
    on-my-machine-certification-program.html)
    a "działa".

    --
    Paweł Kierski
    n...@p...net


  • 9. Data: 2012-01-13 12:29:44
    Temat: Re: To prawda?
    Od: Tomek Banach <b...@b...org>

    On 2012-01-13 10:47, M.M. wrote:
    > Ostatnio ten algorytm musiałem napisać...
    > dawno temu, więc z pamięci też go nie pisałem.

    Ale kiedys go pisales albo analizowales to moim zdaniem zmienia postac
    rzeczy.

    --
    Tomek


  • 10. Data: 2012-01-13 13:10:47
    Temat: Re: To prawda?
    Od: " M.M." <m...@N...gazeta.pl>

    Tomek Banach <b...@b...org> napisał(a):

    > On 2012-01-13 10:47, M.M. wrote:
    > > Ostatnio ten algorytm musiałem napisać...
    > > dawno temu, więc z pamięci też go nie pisałem.
    >
    > Ale kiedys go pisales albo analizowales to moim zdaniem zmienia postac
    > rzeczy.
    Wiadomo ze to pomaga, ale tamtym zawodowym programistom powinno pomagac
    mniej/wiecej tak samo jak mnie. Nie wierze ze 9ciu na 10ciu sie pomyli w
    tym algorytmie majac do dyspozycji kilka godzin czasu.
    Pozdrawiam




    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

strony : [ 1 ] . 2 . 3


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: