Dodaj do ulubionych

Znajomość matematyki a programowanie i bazy danych

IP: *.internetdsl.tpnet.pl 31.08.09, 19:01
Jakie umiejętności powinien posiadać projektant/programista
baz danych ?

Jestem jeszcze studentem i zastanawiam się nad wyborem specjalizacji.
Jednocześnie zastanawia mnie, w jak dużym stopniu potrzebna jest
znajomość matematyki w życiu zawodowym - np. programiście Javy i
programiście baz danych. Na studiach oczywiście było sporo
matematyki ale zauważam, że po zdaniu egzaminów po roku już nie
wiele pamiętam. Zastanawiam się czy mam od czasu do czasu wyciagać
sobie zbiór zadań i sobie matematyke przypominać czy ona aż tak
bardzo nie jest potrzebna. A jeśli już, to które działy i w jakich
zastosowaniach?

Obserwuj wątek
    • Gość: misieqwroclaw Re: Znajomość matematyki a programowanie i bazy d IP: 195.116.95.* 01.09.09, 12:02
      Jeżeli nie będziesz programował czegoś w grafice 3D to prawdopodobnie matma Ci
      się nie przyda. No może jeszcze w grafice 2D jakieś oskryptowanie do photoshopów
      - wykrywanie krawędzi itp. ale to już raczej jest przerobione więc nic nowego
      nie wymyślisz.

      Szeroko stosowane są falki, ale w Polsce pewnie tego nie uświadczysz w żadnej
      firmie - na uczelniach np. Wyższej Szkole Psychologii Społecznej w Warszawie
      mieli ofertę pracy dla informatyka ze znajomością falek, ale wymagali
      doświadczenia w zawodzie plus stosowania falek w praktyce (było to około dwa
      lata temu).

      Ja nie słyszałem o polskiej firmie, z siedzibą w Polsce, która by zatrudniała
      matematyków o specjalizacji informatycznej w celu wykorzystania ich umiejętności
      np. z metod numerycznych.

      Jak sam nie zaczniesz pisać zaawansowanego softu (który nikomu nie będzie
      potrzebny) to matematyki nie uświadczysz. A szkoda, bo trochę szarych komórek by
      się poćwiczyło.
    • ekspert.powermedia Re: Znajomość matematyki a programowanie i bazy d 02.09.09, 13:35
      Matematyka odegrała wielką rolę w stworzeniu relacyjnych baz danych. Dr Codd, który zapoczątkował badania w tym kierunku był z wykształcenia matematykiem. Automatyczne tworzenie nieskomplikowanych raportów i kwerend przy pomocy wizualnych narzędzi jest oczywiście możliwe bez wiedzy matematycznej, ale projektowanie skomplikowanych, wydajnych baz i optymalizacja zapytań wymaga dużej umysłowej dyscypliny, której gwarantem są dobre podstawy matematyczne.

      Pozdrawiam,
      Wiesław Cupała
      Specjalista ds. Rekrutacji
            • embercadero Re: Znajomość matematyki a programowanie i bazy d 07.09.09, 15:35
              Myślisz że jest aż tak źle że ejdż-ary pytają o sprawy techniczne? W wielu
              rozmowach kwalifikacyjnych brałem udział (z obu stron stołu) i przyznam że
              zawsze był ktoś techniczny z kim się rozmawiało o konkretach a pani headhunterka
              załatwiała wyłącznie pozostałe fragmenty dyskusji. Zostawienie jej samej w
              sprawach zatrudniania inżyniera mogłoby przyznam być ciekawym doświadczeniem.
              Myślę ze z gatunku zbliżonego do monty pythona :)

              Oczywiście no offence - na rozmowie obie osoby są równie potrzebne.
              • allerune Re: Znajomość matematyki a programowanie i bazy d 08.09.09, 10:56
                > Myślisz że jest aż tak źle że ejdż-ary pytają o sprawy techniczne?

                nie, myślę, że się wymądrzają na forum :-)

                Ale tak, zdarza się często, że niekompetentna osoba musi przepytać kompetentną.
                Swego czasu szef przyszedł do nas i powiedział, żebyśmy napisali mu 20 pytań z
                baz danych, żeby "zagiąć" gości na rozmowie kwalifikacyjnej. Sam coś kiedyś w
                tym robił... ale niewiele pamięta :)

                >Zostawienie jej samej w
                > sprawach zatrudniania inżyniera mogłoby przyznam być ciekawym doświadczeniem.
                > Myślę ze z gatunku zbliżonego do monty pythona :)

                a co powiesz chociażby o błędach merytorycznych w ogłoszeniach, czy wstępne
                telefony, w których rekrutujący objawiają, że są totalnymi lajkonikami?
      • Gość: Zele Re: Znajomość matematyki a programowanie i bazy d IP: 188.33.101.* 13.09.09, 20:35
        ekspert.powermedia napisała:

        Matematyka odegrała wielką rolę w stworzeniu relacyjnych baz danych. Dr Codd,
        który zapoczątkował badania w tym kierunku był z wykształcenia matematykiem.
        Automatyczne tworzenie nieskomplikowanych raportów i kwerend przy pomocy
        wizualnych narzędzi jest oczywiście możliwe bez wiedzy matematycznej, ale
        projektowanie skomplikowanych, wydajnych baz i optymalizacja zapytań wymaga
        dużej umysłowej dyscypliny, której gwarantem są dobre podstawy matematyczne.


        Cóż, może nie zabrzmiało to jakoś bardzo przekonująco, ale to prawda. Moja
        specjalizacja to właśnie programowanie baz danych. Rzeczywiście, konstrukcja SQL
        jest oparta o ciężkostrawną algorytmikę. Do wyboru indeksu potrzebna jest pewna
        wiedza na ten temat, ale w gruncie rzeczy najbardziej potrzebne elementy to
        logika, teoria zbiorów i algebra. Nie trzeba żadnej zaawansowanej wiedzy, raczej
        ich przyswojenie i wejście w krew.
    • hermilion Re: Znajomość matematyki a programowanie i bazy d 09.09.09, 13:05
      Zasadniczo potrzebne są zdolności matematyczne, w tym
      umiejętność logicznego myślenia, modelowania i wnioskowania.

      Co do samej wiedzy matematycznej to jest to kwestia dyskusyjna,
      jest kilka działek informatyki gdzie przydaje się ona wprost,
      ale działanie to opiera się na zasadzie znajomości branży a nie
      programowania.

      Trzeba sobie bowiem powiedzieć że sama znajomość programowania
      w dowolnym języku przestaje wystarczać (a na zachodzie już dawno
      nie wystarcza) do zarabiania naprawdę poważnych pieniędzy.

      Obecnie firmy płacą dobrze programistom, którzy znają się na
      jakimś konkretnym temacie - przez co nie muszą wydawać kasy
      na dokładne tłumaczenie podstawowych zagadnień.

      Przykład - firma tworząca oprogramowanie kosztorysowe
      budowlane będzie szukała programisty ze znajomością
      kosztorysowania - nawet jak specem w programowaniu nie
      będzie - po prostu dlatego że napisze program szybko i wg
      cząstkowej specyfikacji omijając podstawowe pułapki.

      To samo się tyczy wykorzystania wiedzy matematycznej - jest
      potrzebna tam gdzie branża tego wymaga.
    • Gość: adamroman Re: Znajomość matematyki a programowanie i bazy d IP: *.chello.pl 13.09.09, 11:40
      Szanowny Panie,

      Zachecam do przeczytania mojego mini-eseju na temat roli matematyki w zawodzie
      informatyka. Znajdzie go Pan pod adresem

      www.ii.uj.edu.pl/~roman/teksty/SensownoscStudiowaniaTeorii.pdf
      Pomijając już zawarty w eseju najważniejszy argument dotyczący przydatności
      matematyki w pracy informatyka, można wyobrazić sobie kilka tzw. "przykładów z
      życia", w których matematyka się przydaje.

      1) Statystyka. Ma Pan dwa algorytmy rutowania pakietów w sieci, badamy średni
      czas dotarcia wszystkich pakietów do celu. Który algorytm jest lepszy? Zwykle
      algorytmy te trudno poddają się analizie, zwłaszcza dla skomplikowanych sieci.
      Wtedy należy zrobić eksperyment - zamodelować naszą sieć (np. w Ptolemy lub
      innym narzędziu tego typu), dodać oba algorytmy i przeprowadzić serię
      eksperymentów z użyciem jednego i z użyciem drugiego (każdy przykład na obu
      algorytmach). W samym modelu musi Pan też uwzględnić czasy nadchodzenia
      pakietów, a zatem musi Pan wiedzieć co to jest rozkład wykładniczy, rozkład
      Poissona itd. Niezbędna jest więc wiedza z teorii prawdopodobieństwa, a
      statystyka pomoże nam w stwierdzeniu, czy różnice w czasie działania tych
      algorytmów są istotne, czy też mogą być wynikiem błędów losowych.

      2) Teoria optymalizacji. Jest Pan kierownikiem projektu i zaprojektował Pan
      wszystkie czynności zespołu za pomocą grafu precedensji, określając czasy
      trwania poszczególnych czynności. Trzeba wyznaczyć ścieżkę krytyczną, aby móc
      określić obszary projektu, na których szczególnie należy się skupić (a także z
      paru innych istotnych z punktu widzenia zarządzania powodów). Z pomocą
      przychodzą metody optymalizacji.

      3) Metody sztucznej inteligencji. Projektuje Pan strategiczną grę komputerową, w
      której gracz może grać przeciwko komputerowi. Jak zaimplementować algorytm
      postępowania dla komputera? Jeśli to jest gra wojenna, należy wprowadzić np.
      odpowiedni model przewagi (tu w ogóle wchodzi też teoria wojny), sprytne
      algorytmy heurystyczne, które muszą wykorzystywać rachunek prawdopodobieństwa,
      działając w warunkach niepełnej informacji itd. Nie obejdzie się bez matematyki
      oraz całej wielkiej teorii nauczania maszynowego i algorytmów sztucznej
      inteligencji.

      4) Projektuje Pan algorytm, w którym musi Pan użyć jakiejś struktury danych
      modelującej dany byt. Oczywiście korzysta Pan z gotowych rozwiązań (są przecież
      biblioteki takich struktur), ale zwykle istnieje kilka rozwiązań - którą
      strukturę wybrać, żeby działała najbardziej efektywnie pod kątem zastosowań tej
      struktury w Pańskim projekcie? Tu z pomocą przychodzi wiedza wyniesiona z
      algorytmów i struktur danych.

      5) Testowanie oprogramowania. Żeby stworzyć DOBRY zestaw przypadków testowych,
      który spełnia odpowiednie kryterium pokrycia (np. grafowego, logicznego,
      rozgałęzień itd.) można oczywiście robić to "na czuja", jak to zwykle
      niedouczeni testerzy mają w zwyczaju, a można zabrać się za to metodycznie,
      używając teorii grafów, logiki, a nawet algebry liniowej (sic!). A jeśli
      stosujemy tzw. pair-wise testing? O, tu to już wchodzi w ogóle cała
      kombinatoryka i matematyka dyskretna, kwadraty łacińskie i inne tego typu
      sprawy. Można też oczywiście stworzyć algorytm genetyczny do generacji dobrego
      zestawu przypadków testowych, ale tu też potrzebna jest przynajmniej podstawowa
      wiedza z rachunku prawdopodobieństwa.

      Pomijam już sytuacje, w których pracuje się w firmie rozwijając jakiś pakiet
      obliczeniowy, statystyczny, "sztuczno-inteligencki" itp. Wtedy to w ogóle wiedzę
      matematyczną trzeba mieć już na poziomie profesjonalnym (najlepiej mieć
      skończone studia matematyczne).
      • allerune Re: Znajomość matematyki a programowanie i bazy d 13.09.09, 13:39
        Ciekawe spojrzenie. Widzę tutaj jednak pewien problem.

        Całe pokolenia informatyków w Polsce są kształcone na zasadzie:

        "Dzień dobry, nazwa przedmiotu to (tu nazwa przedmiotu), zaczynamy wykład.
        Definicja 1..."

        Potem z definicji jest kolokwium, czasem są jakieś zadania, które wszyscy uczą
        się rozwiązywać na zasadzie szablonów. Ja większość takich przedmiotów sobie
        odpuszczałem nie widząc najmniejszego sensu uczenia się ich. Bierze się testy z
        paru ostatnich lat, uczy paru definicji, paru standardowych zadań, może się uda
        zaliczyć za pierwszym razem.

        Gdyby ktoś mi powiedział, że w realnym świecie jest problem X, Y i Z i za pomocą
        wiedzy zawartej w danym przedmiocie będę w stanie go rozwiązać. Co więcej,
        gdybym dostał projekt każący mi rozwiązać jakiś problem i niejako przy okazji,
        musiałbym się nauczyć teorii, uczyłbym się tego z przyjemnością. Znałbym teraz
        teorię grafów, statystyka czy sztuczna inteligencja nie byłyby mglistym
        wspomnieniem (bardziej pamiętam lektury przerabiane w liceum).

        Ze znajomymi informatykamy mamy pewną teorię. Matematyka na uczelniach w Polsce
        jest pewnym sitem, czymś w rodzaju testu na inteligencję. Jeśli go zdałeś-jesteś
        godzien zostania mgr informatyki...

        ...nie trzeba być jednak mgr informatyki, aby być dobrym informatykiem,
        matematyka więc także nie jest tutaj niezbędna, chociaż zgodzę się, bywa przydatna
        • paktom Re: Znajomość matematyki a programowanie i bazy d 15.09.09, 20:19
          allerune napisał:

          > Potem z definicji jest kolokwium, czasem są jakieś zadania, które wszyscy uczą
          > się rozwiązywać na zasadzie szablonów. Ja większość takich przedmiotów sobie
          > odpuszczałem nie widząc najmniejszego sensu uczenia się ich. Bierze się testy z
          > paru ostatnich lat, uczy paru definicji, paru standardowych zadań, może się uda
          > zaliczyć za pierwszym razem.
          >
          > Gdyby ktoś mi powiedział, że w realnym świecie jest problem X, Y i Z i za pomoc
          > ą
          > wiedzy zawartej w danym przedmiocie będę w stanie go rozwiązać. Co więcej,
          > gdybym dostał projekt każący mi rozwiązać jakiś problem i niejako przy okazji,
          > musiałbym się nauczyć teorii, uczyłbym się tego z przyjemnością.
          Tu jest właśnie różnica między uniwerkiem który kończyłeś a polibudą. Na
          politechnice są zajęcia laboratoryjne i projekty, których jak widać na uniwerku
          nie mieliście.

          > Znałbym teraz
          > teorię grafów, statystyka czy sztuczna inteligencja nie byłyby mglistym
          > wspomnieniem (bardziej pamiętam lektury przerabiane w liceum).
          >
          > Ze znajomymi informatykamy mamy pewną teorię. Matematyka na uczelniach w Polsce
          > jest pewnym sitem, czymś w rodzaju testu na inteligencję. Jeśli go zdałeś-jeste
          > ś
          > godzien zostania mgr informatyki...
          >
          > ...nie trzeba być jednak mgr informatyki, aby być dobrym informatykiem,
          > matematyka więc także nie jest tutaj niezbędna, chociaż zgodzę się, bywa przyda
          > tna
          Matematyka to podstawa, przede wszystkim dyskretna, także algebra liniowa w
          mniejszym stopniu analiza matematyczna. Ale jak jesteś słaby z matematyki znaczy
          brak tobie umiejętności analitycznego myślenia i żaden z ciebie informatyk.
      • Gość: knx Re: Znajomość matematyki a programowanie i bazy d IP: *.bkl-bng-011.adsl.virginmedia.net 14.09.09, 00:02
        Fajny post. Duzo prawdy w nim jest aczkolwiek, przyklady 1-3 sa lekko
        naciagane bo sa to problemy bardziej inzynierskie niz
        programistyczne. Do tego sie uzywa specjalistycznego oprogramowania.
        Jednak sens zostal moim zdaniem oddany.
        Punkt 4 to sedno tematu. To jest rzecz absolutnie fundamentalna i
        odroznia programistow tzw kreatywnych od - jak ich nazywam -
        "programistow Javy" (1) tzn takich, ktorych praca sprowadza sie do
        wypelniania metod klas, ktore ktos im zaprojektowal.
        Co do przydatnosci matematyki posluze sie swoim przykladem. Pare lat
        temu wiedza ze log(x * y) = log(x) + log(y) pozwolila mi zaoszczedzic
        dla jednego z mych ex-pracodawcow kilka milionow dolcow, ktore to
        bylby musial zaplacic jako kary umowne za dostarczenie oprogramowania
        nie spelniajacego wymagan "predkosciowych".

        1) Nie mam nic do Javy to nawet calkiem fajny jezyk.
        2) W zadaniu z labiryntem natychmiast pomyslem o grafie, ale nie
        algorytmach DSF czy BSF, ale o algorytmie Dijkstry. Moge byc z siebe
        dumny czy to zbyt banalny problem?

Popularne wątki

Nie pamiętasz hasła

lub ?

 

Nie masz jeszcze konta? Zarejestruj się

Nakarm Pajacyka