Wątek zablokowany 2015-02-28 12:28 przez msm.

Programowanie a matematyka, fizyka.

0

Witam, zanim ktoś z Was wypiszę, że było takich milion tematów/bez matematyki nie ucz się programowania to wymienię swój mały problem...

Nie mogę podjąć decyzji... Chodzi o programowanie a matematykę oraz fizykę.
Oto mój problem: uczę się programowania już ok. 3 miesiące u pana Mirosława Zelenta na youtube, zrozumiałem praktycznie wszystko, obejrzałem wszystkie odcinki potrafię napisać jakieś kółka i krzyżyki/notatniki/kalkulatory okienkowe/instalatory etc. Obiektowe programowanie także dość dobrze zrozumiałem, aczkolwiek gdy chciałem napisać jakąś "mini gierkę" typu pac-man po prostu nie wiedziałem, jak mam "powiedzieć" komputerowi aby po naciśnięciu np. "a" obiekt poruszył się w lewo...
Z samym warunkiem nie mam problemu, chodzi bardziej o to, że nie rozumiem timerów etc.
Ostatnio zainstalowałem silnik Unity3D tam jest prawie tak samo... Nie rozumiem trochę triggerów etc, jedyne co zrozumiałem w unity3D to transform.

Szło mi dość nieźle, potrafię napisać praktycznie wszystko jeżeli chodzi o coś, gdzie nie potrzeba timerów czy zmieniania pozycji obiektu.
Z matematyki takim durniem nie jestem, pamiętam, że w gimnazjum miałem 3 nie raz 4, aczkolwiek nie rozumiem geometrii, z fizyką jest trochę inna bajka...

Jak myślicie, co teraz uczynić? - Proszę o pomoc...
Pozdrawiam!

1

Pisz. Praktykuj.

0

Mówi się, że matematyka jest dobra, bo i w niej i w programowaniu musisz myśleć nieschematycznie (chyba ze piszesz maturę) i ściśle.
To oczywiście nie oznacza, że programując musisz umieć matematykę, ani umiejąc matematykę umieć programować.

Ja ostatnio bardzo dużo nauczylem sie nowych rzeczy z matematykii, baardzo dużo przy tym siedzę, ale żeby to jakiś wpływ na moje skile programistyczne miało to nie sądzę.. Może na jakimś wysokim poziomie dla programisty gier może być to przydatne.

Jednak myślę, że wynik tego, że czegoś nie potrafisz zrobić to za mało doświadczenia. Próbuj, pisz, próbuj.. this is how skills are gained

edit
offtop: mother of god, mój 500 post :)

0

Fizyka do programowania nie jest konieczna (gdzieś tam ma zastosowania, ale w większości nie będziesz jej potrzebował). Matematyka do wielu zastosowań i do większości pracy też nie, ale jednak tutaj uważam, że należy umieć na pewnym poziomie. Matematyka się przydaje (a co bardziej myślenie bardziej matematyczne) chociażby w algorytmice, sztucznej inteligencji i generalnie w dziedzinach bardziej teoretycznych. Tutaj już może się przydać do pracy (niektórym bardziej, niektórym mniej, jak mi dobrze pójdzie to sam się mogę dostać do pracy gdzie będę korzystał z teorii), jakkolwiek można się obejść bez tego. Nie wiem ile masz lat, ale matematykę zawsze można ćwiczyć lub przynajmniej starać się wyrobić intuicję matematyczną.

0

Matematyka jest najważniejsza. Wpierw się naucz układów równań, macierzy, zbiorów, prawdopodobieństwa i kombinatoryki, pochodnych, całek zanim się zabierzesz za informatykę. Skąd miałoby się takie coś wziąć niby jak int a[2,2];? Ta tablica dwumiarowa jest odpowiednikiem macierzy kwadratowej? A taki zapis - int a[2][2]; - to jest odpowiednik tego zapisu \left[\begin{array}{ccc}1&2\end{array}\right]\left[\begin{array}{ccc}1&2\end{array}\right] w matematyce. Skąd miało by się wziąć pseudolosowanie w C++? A właśnie z prawdopodobieństwa i kombinatoryki.

JumpSmerf napisał(a):

Fizyka do programowania nie jest konieczna

  • a korzystasz ze smartfona, tableta, komputera, radia, telewizji? Jeśli tak to ktoś musiał zrobić te tranzystory, rezystory, przełączniki, diody i odpowiednio je dopasować. Skąd wiesz, że zasilacz 12 V od kompa się podłącza do gniazdka? Tak o? Nie, bo tam jest transformator, jest mostek prostowniczy, są kondensatory, stabilizatory napięcia i stamtąd idzie prąd do twojego komputera. Skąd masz internet, radio i telewizję? Właśnie dzięki antenie, w której jest wytwarzane pole elektromagnetyczne o określonej długości fali i częstotliwości. Czy potrafiłbyś obliczyć długość fali dla sieci Wi-Fi, radia AM, FM, czy fal średnich? Bez fizyki nie powstałaby informatyka - ot taka prawda.

Fizyka, matematyka i informatyka to są nierozłączne działy.

0

A ja uważam, że na początek programowania matma nie jest potrzebna. Można przecież napisać aplikację/grę nie znając macierzy/całek/grafów. W przypadku bardziej zaawansowanych aplikacji owszem, ale na początek po co ma lecieć kilka lat w przód z matmą skoro może nauczyć się programować a później douczyć się matmy i algorytmów?

1
  • a korzystasz ze smartfona, tableta, komputera, radia, telewizji? Jeśli tak to ktoś musiał zrobić te tranzystory, rezystory, przełączniki, diody i odpowiednio je dopasować. Skąd wiesz, że zasilacz 12 V od kompa się podłącza do gniazdka? Tak o? Nie, bo tam jest transformator, jest mostek prostowniczy, są kondensatory, stabilizatory napięcia i stamtąd idzie prąd do twojego komputera. Skąd masz internet, radio i telewizję? Właśnie dzięki antenie, w której jest wytwarzane pole elektromagnetyczne o określonej długości fali i częstotliwości. Czy potrafiłbyś obliczyć długość fali dla sieci Wi-Fi, radia AM, FM, czy fal średnich? Bez fizyki nie powstałaby informatyka - ot taka prawda.

Może i by nie powstała, ale to nie znaczy, że nie możesz być programistą oprogramowania bez fizyki. To co piszesz to jest elektronika i naprawdę większości nie jest to potrzebne do pisania większości softu (chyba, że mówimy o jakichś specyficznych działkach). Pisałem tu w kontekście pracy, bo do tego dąży większość osób, większość moich znajomych nie ma pojęcia o elektronice (bo są z uniwersytetu) i problemów z tym przy szukaniu nie mieli, nie musieli się też tego douczać. Teoretycznie może i fajnie było by być matematykiem, fizykiem, elektronikiem i informatykiem w jednym, ale zapytajmy się po co? Skupmy się na swoich działkach (jeśli Ty programujesz coś do czego jest konieczna elektronika, to ok, ale jak ktoś jest słaby z fizyki, to pewnie w żadną z nich nie pójdzie, a ma nadal niewiele mniejszy wybór).

Matematyka jest najważniejsza. Wpierw się naucz układów równań, macierzy, zbiorów, prawdopodobieństwa i kombinatoryki, pochodnych, całek zanim się zabierzesz za informatykę.

Matematyka jest ważna, no ale nie mogę. Poważnie? Pochodnych i całek? Nieźle, czyli gimnazjalista nie powinien się uczyć programować, bo musi się najpierw całkować nauczyć. A jak mu nie wyjdzie, to nie będzie z niego programista. Większość się prędzej zniechęci. Nawet praktycznie całą standardową algorytmikę można dobrze rozumieć bez pochodnych i całek, gdzie niewiele ich występuje.

0

matematyka i fizyka jest dla pionierow

pozniej jak cos jest urynkowione i jest zawod programista to nie trzeba jej znac

takie mam wyobrazenie

bylo takie powiedzenie lingwista dobry programista a nie matematyk czy fizyk

jak ktos dobrze pisze z angelskiego fluent to ma zadatki na dobrego programiste

kolejne wyobrazenie

0

Nie mówię, że nie da się programować bez całek, pochodnych, mechaniki relatywistycznej itp. Da się jak najbardziej. Do programowania wystarczy znajomość operacji modulo, konwersji systemów liczbowych i znaku sumowania. Przez dłuższy czas się nie uczyłem matmy i fizyki, i żałuję tego. Do napisania gry komputerowej wystarczy w zupełności znajomość operacji modulo, konwersji systemów liczbowych, wektorów, współrzędnych, pędu, siły dośrodkowej itp. Jak widać jak się chce stworzyć porządną grę to wypadałoby wiedzieć co to jest ruch, pęd, siła, energia, praca, moc, grawitacja itp. bo inaczej wyjdzie nam takie badziewie jak Minecraft, który jest nierealny i nie ma w nim praw fizyki. Przynajmniej na poziomie Newtona trzeba znać fizykę jeżeli chce się być grafikiem komputerowym. Jeżeli chce się być informatykiem-elektronikiem to warto znać fizykę na poziomie elektromagnetyzmu i mechaniki klasycznej oraz rachunek całkowy, różniczkowy i liczby zespolone. Poza tym elektronika jest działem elektromagnetyzmu, tak jak i elektryka oraz magnetyzm a z kolei elektromagnetyzm jest działem fizyki.

0

Język angielski jest narzędziem służącym do komunikacji między ludźmi tak jak i język polski, język niemiecki czy język francuski. Znajomość języka angielskiego owszem przydaje się przy programowaniu bo wszystko jest po angielsku ale główną rolę tu pełni matematyka i fizyka.

Najpierw zanim powstała fizyka była matematyka znana w czasach starożytnych. Potem powstała fizyka zapoczątkowana przez Isaaca Newtona w 1687 r. i dzięki niemu do dziś mamy sprawdzoną mechanikę klasyczną, która się opiera na matematyce i nie jest skomplikowana. Potem Albert Einstein zapoczątkował mechanikę relatywistyczną w 1905 r., w której jest dokładny opis tego, co się dzieje w świecie kosmicznym i atomowym. Następnie Max Planck w 1918 r. zapoczątkował istnienie mechaniki kwantowej, która świetnie opisuje to, co się dzieje w skali subatomowej (być może w skali wszechświata też). Potem w 1967 r. rozpoczęły się prace nad siecią ARPA-NET i tak powstała cała informatyka.

10
hubot napisał(a):

Język angielski jest narzędziem służącym do komunikacji między ludźmi tak jak i język polski, język niemiecki czy język francuski. Znajomość języka angielskiego owszem przydaje się przy programowaniu bo wszystko jest po angielsku ale główną rolę tu pełni matematyka i fizyka.

mistrzu, usiądź sobie bo będę brutalny, jak Wisniowiecki nabije Twoje wyobrażenie o programowaniu na pal.

90% osób tutaj, jak pracuje to klepie appki dla korporacji albo firm, które po matematykę sięgają głównie w tedy kiedy trzeba wystawić klientowi fakturę - a po tą wyższą kiedy trzeba rozmawiać z urzędem skarbowym, ale tym nie zajmuje się Janek, który pisze w dżawie, pehajpie, pytongu albo siszarpie.

Pytasz się, jak to po co fizyka, przeca we kablach leci prund, a prund to fizyka, że kable, anteny, wifi, magnetyzm, autyzm i w ogóle diabeł... i że jak to zrozumieć - no ok, a samochodem jeździsz ? a lejesz tam benzynę ? a sam sobie ją w kuchni k!@a wzorami chemicznymi jakoś przygotujesz ? bo jak to tak ? jak chcesz jeździć inaczej samochodem ?

hubot napisał(a):

Matematyka jest najważniejsza. Wpierw się naucz układów równań, macierzy, zbiorów, prawdopodobieństwa i kombinatoryki, pochodnych, całek zanim się zabierzesz za informatykę. Skąd miałoby się takie coś wziąć niby jak

naprawdę to napisałeś ? byłeś trzeźwy ?

Podasz mi tu 5 przykładów, w których szeregowy pracownik, senior jaki robiący aplikację, powiesi się, podetnie sobie żyły bo nie uczył się matematyki i teraz nie da rady rozwiązać jakiegoś use-case'u?

EDIT:/ podaj mi jeden.

Tak wyłączmy działy R&D i jakieś CERNY(czy jak to się tam nazywa)

P.S @hubot dodaj jeszcze do swoich umiejętności kilka skrótów jak TDD, AGILE, R - będziesz miał jeszcze więcej fajnie wyglądających nazw...

3

@hubot pojęcia nie masz o czym piszesz. Pracowałeś kiedys jako programista? Nie? To nie pisz tu, tonem znawcy :D, o rzeczach o których nie masz pojęcia.

1

Oto mój problem: uczę się programowania już ok. 3 miesiące u pana Mirosława Zelenta na youtube, zrozumiałem praktycznie wszystko, obejrzałem wszystkie odcinki potrafię napisać jakieś kółka i krzyżyki/notatniki/kalkulatory okienkowe/instalatory etc. Obiektowe programowanie także dość dobrze zrozumiałem, aczkolwiek gdy chciałem napisać jakąś "mini gierkę" typu pac-man po prostu nie wiedziałem, jak mam "powiedzieć" komputerowi aby po naciśnięciu np. "a" obiekt poruszył się w lewo...

to brzmi jakbyś miał:

  • za mało praktyki (czyli musisz pisać programy/gry/aplikacje, samo nie przyjdzie. Problemów nie nauczysz się oglądając tutoriale na youtube, to tylko wprowadzenie - a i tak musisz sam spędzić długie godziny, miesiące czy lata na programowaniu, żeby nauczyć się rozwiązywać problemy)

  • za mało tzw. szerszego spojrzenia (polecam rozrysować najpierw dany problem długopisem na kartce, zanim zaczniesz programować. Dobrą metodą też może być czasem zwykłe wygooglanie danego problemu na jakimś stackoverflow, poczytanie paru artykułów, poszukanie w necie jakichś programów przykładowych, które robią to, co chcesz osiągnąć i spróbowanie zrozumienia ich działania patrząc w kod)

Z matematyki takim durniem nie jestem, pamiętam, że w gimnazjum miałem 3 nie raz 4

trójka albo czwórka z matmy w gimnazjum przy takim poziomie nauczania to raczej nie jest specjalny wyczyn...

jak mam "powiedzieć" komputerowi aby po naciśnięciu np. "a" obiekt poruszył się w lewo...

poruszanie w lewo to po prostu

obiekt.x = obiekt.x - 1

w prawo:

obiekt.x = obiekt.x + 1

nie zawsze musi być 1 oczywiście. Jeśli masz większą szybkość poruszania się może to być 5 czy 50 (dobrze jest wydzielić gdzieś tę wartość do osobnej zmiennej).

0

nie ma co tak kombinowac z tymi poruszaniami obiektow :) to trzeba bylo robic w latach 90 tych

ja chcialbym sie nauczyc RAD z bazami danych teraz albo nowoczesne tworzenie stron www

ale chyba bedzie mi ciezko gdyz bawilem sie delphi3 w latach 90 tych i html w latach 90 tych

dodam ze jako nieliczny mialem na osiedlu komputer ze skanerem recznym i drukarka laserowa :)

1

Wymagana znajomość wyższej matematyki czy fizyki zależy od rodzaju aplikacji, którą piszesz, oraz poziomu abstrakcji w jakiej ją piszesz. Na przykład jeżeli aplikacją jest silnik do gry i piszesz go od zera, to dobra znajomość algebry liniowej i wielu zagadnień fizycznych będzie koniecznością (choć też nie stricte absolutną, gdyż można wykorzystać zewnętrzne biblioteki matematyczne/fizyczne).
Jednak do samej umiejętności programowania nie potrzebujesz więcej niż podstaw matematyki.

0
hubot napisał(a):

Przynajmniej na poziomie Newtona trzeba znać fizykę jeżeli chce się być grafikiem komputerowym.

To teraz poleciałeś po bandzie... Mniemam że kompletnie nie masz pojęcia o czym piszesz.

1

Witam.... mhhhhh.....
tak wiec korzystajac z rad nieslychanie obeznanego uzytkownika hubota rzucam prace. Uswiadomil mi, ze na programiste sie nie nadaje. I zaczynam studia: matma, fizyka, angielski, elektronika, historia (zeby Newtona nie pomylic z Niewtymtonie).
Prosilbym o rady co do kolejnosci. Bo nie wiem czy od matmy zaczynac.. Albo to po fizyce...
Aaaa i napisze do dawnego procodawcy ze wszystko co u niego dawno temu zrobilem jako grafik jest do bani, bo nie sprawdzilem czy na pixle nie dziala jakas sila... Bo moze mu sie zdjecia ruchem jednostajnym poruszaja (z tym Newtonem to juz pojechal).

0

Ale w sumie wypadałoby wiedzieć coś o całce oznaczonej Riemanna jeżeli chce się tworzyć systemy bezpieczeństwa, sieci komputerowe lub sztuczną inteligencję i znać wzór \sigma n=\sum\limits_{i=1}<sup>{n} \xi_i</sup>{(n)} \Delta_i^{(n)}, gdzie \xi to punkt środkowy odcinka a \Delta to długość odcinka na osi funkcji ograniczonej. Też warto wiedzieć jeżeli chce się być profesjonalnym informatykiem lub elektronikiem, że definicja całki jest \int f(x) \mbox{d}x=F'(x) oraz coś o liczbach zespolonych.

EDIT: Animowane gify się poruszają ruchem jednostajnym prostoliniowym czy w HTML4 animacje tekstu <marquee>, więc wypadałoby znać do HTML-a fizykę na poziomie Newtona.

0
azalut napisał(a):

Mówi się, że matematyka jest dobra, bo i w niej i w programowaniu musisz myśleć nieschematycznie (chyba ze piszesz maturę) i ściśle.
To oczywiście nie oznacza, że programując musisz umieć matematykę, ani umiejąc matematykę umieć programować.

Ja ostatnio bardzo dużo nauczylem sie nowych rzeczy z matematykii, baardzo dużo przy tym siedzę, ale żeby to jakiś wpływ na moje skile programistyczne miało to nie sądzę.. Może na jakimś wysokim poziomie dla programisty gier może być to przydatne.

Tak - to dobrze oprogramuj modele 3d bez operacji macierzowych. Napisz system wielowątkowy i skomplikowany i udowodnij, że nie będzie miał deadlockow. Oszacuj zużycie zasobów przy założeniu, że do systemu będzie się dobijać ok 25 tysięcy osób w ciągu godziny (na tym polegli programiści systemu dla PKW), o takich rzeczach jak zrozumienie czym są liczby zmiennoprzecinkowe. Jakie niebezpieczeństwa stwarza ich używanie w danych sytuacjach ect nawet nie ma co wspominać. I tak to wszystko związane jest z programowaniem. Ba nawet więcej, ale tu wymienianie byłoby zbyt długie. Więc zacznijmy od tego, że jeśli programistą nie nazywasz osoby programującej pralkę, która chce zrobić pranie, to wiedza z matematyki jest niezbędna.

3

@hubot ale czemu Riemmana a nie Lebesgue'a? Co to, teoria Miary juz jest za ciężka czy jest mniej przydatna? :D
@kaczus programiści PKW polegli na tym że naklepali gówniany kod a nie że czegoś niedoszacowali. Obliczenia macierzowe w 3d napisze jeden gość, zamknie w bibliotece a potem milionu koderów będą tego uzywać mając jedynie ogólne pojęcie o tym co się dzieje pod spodem. Udowodnić że nie będzie deadlocków za pomocą metod formalnych (sieci Petriego?) da sie tylko dla prostych systemów. Jak będzie wielowątkowy i skomplikowany to guzik zrobisz, dlatego stosuje sie metdoy heurystyczne.
Poza tym czym innym jest matematyka komputerowa (metody numeryczne, reprezentacja liczb, teoria złożoności obliczeniowej czy matematyka dyskretna) a czym innym jest analiza czy równania różniczkowe!

0

Jeśli faktycznie ma aspergera, to nie jest trollem, tylko takiej osobie bardzo ciężko zmienić swoje postrzeganie/pogląd. Zluzujcie.

0
kaczus napisał(a):

Tak - to dobrze oprogramuj modele 3d bez operacji macierzowych. Napisz system wielowątkowy i skomplikowany i udowodnij, że nie będzie miał deadlockow.

Co system wielowątkowy ma wspólnego z matematyką ? Rozumiem że w książkach matematycznych opisuje się dobre praktyki tworzenia wielowątkowych aplikacji (np: jakieś Latche ? ) hmm ciekawe.

0

To, że jest potrzebna znajomość superpozycji żeby go zaprogramować. Przykładowo programujesz w Javie pochodną po f(x) i pochodną po g(x). Jak się okazuje suma dwóch rozwiązań tego równania różniczkowego jest rozwiązaniem równania. Ot cała istota wielowątkowości. Co ciekawe sprawdzenie stanu aplikacji (pomiar) zmienia jej stan. Jeżeli masz aplikację jakąś, ona jest w jakimś stanie (np. zajęta przetwarzaniem danych) to pomiar stanu aplikacji powoduje, że wyniki mogą być zupełnie inne niż są w rzeczywistości. Aplikacja liczy np. statystyki ankiet, sprawdzasz co ona robi i wpływasz na jej wyniki w ten sposób.

0

Nie neguję potrzeby znajomości matematyki, wręcz przeciwnie. Ale to już jest troll...

0

Na "casualowym" poziomie (zawodowy programista, który jednak nie piszę softu naukowego lub wykorzystującego domenową wiedzę z matmy) Jest potrzebna, ale nie w formie jakiejkolwiek wiedzy z niej (teorii, aksjomatów, tych wszystkich pojęć z nazwiskami, których uczą na studiach), a nawyku/umiejętności wyrażania myśli za pomocą sformalizowanego kodu symboli i operowania na abstrakcjach. I tak wydaje mi się, że może okazać się, że dobrymi poetami mogliby być np. poeci, gdyby nauczyli się z jakichś powodów programować, bo to mniej więcej to samo (kod języka i myślenie abstrakcyjne).

0

@hubot mam nieodparte wrażenie że nigdy nic nie zrobiłeś z tych rzeczy o których piszesz. Sam sobie zaprzeczasz w każdym zdaniu

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