eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingDlaczego w branży rozrywkowej najsłabiej płacą?[OT] Re: Dlaczego w branży rozrywkowej najsłabiej płacą?
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!.POSTED!not-for-mail
    From: Edek <e...@g...com>
    Newsgroups: pl.comp.programming
    Subject: [OT] Re: Dlaczego w branży rozrywkowej najsłabiej płacą?
    Date: Mon, 10 Oct 2011 20:08:00 +0200
    Organization: ATMAN - ATM S.A.
    Lines: 126
    Message-ID: <j6vcb7$cl5$2@node2.news.atman.pl>
    References: <5...@n...onet.pl> <j3ktcd$2o7$1@news.onet.pl>
    <j3m5f0$du5$1@inews.gazeta.pl> <j3nii2$l4$1@inews.gazeta.pl>
    <1...@a...googlegroups.com>
    <j3o64b$ak$1@inews.gazeta.pl> <j3oon0$pnk$1@inews.gazeta.pl>
    <j3qff0$8df$1@inews.gazeta.pl>
    <4...@c...googlegroups.com>
    <j4286s$jg9$1@inews.gazeta.pl> <j532hg$sr8$1@inews.gazeta.pl>
    <j59mgi$9rv$1@inews.gazeta.pl> <j5g378$ooq$1@inews.gazeta.pl>
    <j5s9mu$c1e$1@inews.gazeta.pl> <j60dl2$or5$1@inews.gazeta.pl>
    <j6f0tl$f35$1@inews.gazeta.pl>
    <f...@j...googlegroups.com>
    <j6hra9$6qj$1@inews.gazeta.pl>
    <4...@t...googlegroups.com>
    <j6l5sd$5u$1@inews.gazeta.pl> <j6m0pc$pp6$1@inews.gazeta.pl>
    <j6sqj7$skh$1@inews.gazeta.pl> <j6tqei$hr2$1@inews.gazeta.pl>
    NNTP-Posting-Host: 213.195.143.220
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: node2.news.atman.pl 1318270119 12965 213.195.143.220 (10 Oct 2011 18:08:39
    GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Mon, 10 Oct 2011 18:08:39 +0000 (UTC)
    User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428
    Linux/3.1.0-15 Thunderbird/3.1.0
    In-Reply-To: <j6tqei$hr2$1@inews.gazeta.pl>
    Xref: news-archive.icm.edu.pl pl.comp.programming:192706
    [ ukryj nagłówki ]

    On 10/10/2011 05:57 AM, Andrzej Jarzabek wrote:
    > On 09/10/2011 19:52, Wojciech Jaczewski wrote:
    >> Andrzej Jarzabek wrote:
    >>
    >>> Nie omówić. Wypytać. Oczywiście będzie to obarczone jakimś tam błędem,
    >>> ale raczej niewielkim.
    >>
    >> Zaintrygowała mnie ta odpowiedź.
    >>
    >> Uważam, że mi od jakiegoś czasu udaje się tworzyć nie-wywalające się
    >> programy - oczywiście przy pierwszych uruchomieniach czasem się i wywalą,
    >> ale po poprawieniu działają już dobrze. Dużo trudniej jest doprowadzić do
    >> tego, aby każdy szczegół działał zgodnie z wymaganiami, niż do tego aby
    >> program się nie wywalał.
    >
    > Zgodzę się, że to jest trudniejszy problem, ale to nie jest tylko
    > kwestia umiejętności programisty. Zresztą samo "wywalanie się" to był
    > skrót myślowy, możemy sobie rozszerzyć czy dodefionować pojęcie na
    > nieprawidłowe działanie programu wynikające z błędu programistycznego, w
    > przeciwieństwie do błędnego czy niedostatecznego sformułowania lub nie
    > do końca zrozumienia wymagań.

    Skrajne podejście do sprawy: pisanie kodu to spełnienie wszystkich
    ograniczeń, z czego jednym z ograniczeń są wymagania. To eksperyment
    myślowy, ale też prawda.

    >
    >> Jednak jedyne co mógłbym powiedzieć o "technice", jak to robię jest:
    >> robić
    >> najprościej jak się da i realizować wyłącznie tę funkcjonalność, która
    >> jest
    >> wymagana. Taka odpowiedź miałaby jednak taką wadę, że do takiej
    >> odpowiedzi
    >> każdy, niezależnie od doświadczenia i umiejętności, mógłby przygotować
    >> się w
    >> minutę, a jednocześnie: to co jeden uważa za program prosty, dla drugiego
    >> może być programem bałaganiarskim.
    >
    > No ale jeśli kandydat powie coś takiego na rozmowie, to oczywistym jest
    > kolejne pytanie, co konkretnie robi, żeby jego kod był prosty. Zeby
    > podał jakieś konkretne przykłady ze swojej praktyki na przykład, albo
    > odpowiedział na pytanie - jeśli funkcja ma realizować skomplikowaną
    > działalność, jak ją napisać, żeby była prosta. Dwie do pięciu minut na
    > odpowiedź dużo ci powie.

    Dodam:
    Podziwiam ludzi, którzy mówią o prostocie i zawsze się zastanawiam,
    czy rozumieją. Każdy problem ma wiele błędnych ale prostych rozwiązań,
    w wielu dziedzinach przybliżony wynik nie spełnia wymagań. W zasadzie
    zgodnie z zasadą prostoty nie powinien istnieć skomplikowany kod,
    a z empirycznych, moich przynajmniej, doświadczeń ze światem kod
    skomplikowany istnieje i ma się dobrze, a co najważniejsze działa
    i swięcie wierzę w to, że autorzy co jak co ale uprościli go ile
    się da i dalej się nie da.

    Dla mnie każdy, kto zaczyna od tekstu keep it simple jest lekko
    podejrzany. Co nie znaczy, że do wielu zadań się nie nadaje i że
    ja sam komplikuję sprawy bez powodu.

    >
    >> Jeśli możesz, to przedstaw, jakie wg Ciebie techniki się wykorzystuje
    >> podczas robienia nie-wywalających się programów (wystarczy mi odnośnik do
    >> jakiegoś tekstu). Powinny spełniać następujące kryteria:
    >> - pomagać w osiągnięciu celu
    >> - być czasochłonne w nauczeniu się (bo gdyby dało się jej nauczyć w
    >> dzień-
    >> dwa, to nie byłoby sensu selekcjonować kandydatów wg kryterium znajomości
    >> tej techniki).
    >> - ma być trudno o nich opowiadać, jeśli samemu nie umie się ich
    >> wykorzystać.
    >
    > Jest sporo takich technik, i o ile jest kilka w miarę uniwersalnych
    > (abstrakcja, czytelność, w tym ograniczenie długości funkcji, code
    > reuse, unit testing), to sporo jest zależnych od technologii (MT, OO,
    > exception safety, konkretny język programowania). Co do tekstu, no to
    > jest sporo książek traktujących o tych tematach, od ogólnych typu "Code
    > Complete" Steve'a McConnella, "Refactoring" Martina Fowlera et al. Jeśli
    > chodzi o C++ to np. "Effective C++" Scotta Meyersa itd.

    ...ale i tak wszystkie to gówno, jeżeli ktoś tylko przeczytał te
    książki. Znam sporo osób, które przynajmniej jedną z powyższych
    zasad dość świadomie olewają, a to co piszą jest łatwe w rozszerzaniu,
    debugowaniu, utrzymaniu itd. Jest coś ze słowa "Art" w Programming,
    chyba nie chodzi o kreatywność.

    Techiniki, jest ich dużo: exception safety,
    w tym nie zostawianie otwartych plików, sprawdzanie różnych
    rzeczy w kodzie (inwarianty, proste null checki), jeżeli nie
    ma garbage collection to unikanie leaków, jeżeli jest też,
    testy, czytelność kodu, enkapsulacja, dzielenie problemu na mniejsze,
    dbałość o odpowiednie sygnalizowanie błędów (nie BSOD ani "Exception:
    Error Occured"), złożoność algorytmiczna (żeby test z 10 elementami
    nie zajął 1/1000 tego co ze 100 elementami), komentowanie kodu,
    nie robienie różnego rodzaju głupot (wbrew pozorom pewien problem
    czasami, nie mówię o błędach), wzorce projektowe, o ile ktoś wie
    jak ich używać (swoją drogą w C++ mówi się raczej o idioms),
    RTFM jeżeli używa się funkcji systemowych i/lub bibliotek,
    jak ktoś się bierze się za wątki, to musi mieć wyobraźnię
    i znać zasady, umiejętność korzystania z języka w tym
    z kompilatora i innych narzędzi, również
    w celu unikania błędów - każdy język ma swoją specyfikę, na
    przykład jeżeli chodzi o nie zainicjalizowane zmienne, type
    safety, ostrzeżenia kompilatora, na czym można polegać,
    a na czym nie itd. itp., nie wiem czy cześciej nie jest problemem
    to, że ludzie padają na sprawach banalnych, niż na braku znajomości
    wyrafinowanych reguł, a o drobiazgi "wolno" pytać.

    Do tego każda dziedzina, w tym język, ma swoją specyfikę,
    o którą można zapytać.

    >
    > W ogóle to można jeszcze zwrócić uwagę na istotny aspekt całej sprawy: w
    > pisaniu programów, które się nie wywalają, samo to, że napiszesz program
    > i on się nie wywala to jest tylko wierzchołek góry lodowej. Bardzo
    > istotne jest również to, żeby program napisany przez ciebie nie wywalił
    > się jak inny programista zacznie wprowadzać w nim zmiany, być może długo
    > po tym i być może nie mając do ciebie dostępu i nie mogąc cię spytać
    > dlaczego jest tak a nie inaczej. Oczywiście nie da się napisać programu
    > tak, żeby inny programista nie mógł wprowadzić do niego błędów, ale też
    > prawdopodobieństwo wprowadzenia później błędów jest mocno uzależnione od
    > jakości pierwotnego kodu. Niby jest to oczywiste, ale myślę, że niejeden
    > profesor kenobi by się przejechał na tym punkcie jak nic.

    W konkursach nie to jest najważniejsze ;)

    Edek

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

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: