Co programista powinien umieć z matematyki?

0

Co powinienem umieć z matematyki, jeśli interesują mnie podstawy informatyki typu algorytmy i struktury danych, podstawy kryptografii, najważniejsza wiedza z zakresu sieci komputerowych, system binarny i tym podobne?

W jaki sposób i czego z matematyki powinienem uczyć się? Czy dobrym podejściem będzie przerobienie podręcznika do liceum z matematyki?

Nigdy z matematyki nie byłem orłem i nie zamierzam studiować matematyki.

1

Rób zadanka i na bieżąco douczaj się rzeczy, których Ci brakuje/których nie rozumiesz.

Wpisałem w google: algorytmy i struktury danych pdf
Pierwszy wynik: https://pb.edu.pl/oficyna-wydawnicza/wp-content/uploads/sites/4/2020/12/Algorytmy-i-struktury-danych.-Cwiczenia.pdf

Tutaj też masz trochę informacji o różnych algorytmach na potrzeby konkursów: https://algorytmy.oki.org.pl/

Programista z matematyki powinien wiedzieć tyle, co wymagają od niego codzienne zadania.
np. kiedy pracujemy nad grami komputerowymi, to przydaje się trygonometria.
A klepaczowi stronek trygonometria do niczego się nie przyda, chyba że opracowuje jakieś efekty graficzne w WebGL.

Nie ucz się na zapas, skoro nie chcesz "studiować". Ucz się na bieżące potrzeby.

1

Jest pewne niezrozumienie, ogólnie matmą da się opisać wszystko, programowanie to da się opisać całkowicie matematycznie bo operacje microassemblera to zwykłe boolean równania, oczywiście jakbyś chciał coś skomplikowanego tak opisać to po pierwsze zrobisz to jest to możliwe, ale to będzie z 4-10 stron A4 czcionką o zwykłej wielkości.

Czy Programista powinien matme umieć?
Ja tam nie studiowałem, a tak szczerze to matma jest jedyną rzeczą jaka mnie uszczęśliwia.
Umiem policzyć wszystko, gradient descent, particle swarm, metropolish hasting, monte carlo tree.
Czy warto się tego uczyć?

To zależy, ja nigdy pracy nie miałem, ale wiedza jest ciekawa.

Jak obliczyć kształt prawdopodobieństwa? da się to wysamplować różnymi technikami.

Nikt się nie rodzi matematykiem, po prostu życie rzuca ci problemy jakieś wyzwania robisz je i się uczysz matmy.
Matma to po prostu analityka całą, programowanie to pod dziedzina matematyki, czyli jak się uczysz programowania to też matematyki.

Ja uwielbiam matematykę, a nigdy nie studiowałem matmy, chciałbym kiedyś być nazwany matematykiem.
Mój umysł pamięta wszystkie wzory fizyczne i matematyczne jakbym był do tego stworzony, a nie pamiętam imion.

0

Mnie interesuje devops i webdev więc chyba mogę sobie darować matematykę wyższą

1

interesują mnie podstawy informatyki typu algorytmy i struktury danych

Podręcznik do algorytmów zawiera wszystko co trzeba, choćby słynny https://ksiegarnia.pwn.pl/Wprowadzenie-do-algorytmow,68706413,p.html
Dodatkowo teoria grafów i kombinatoryka dla bardziej zaawansowanych algorytmów (poziom magisterski).
Nie ma dobrej książki o grafach po polsku, są tylko wprowadzenia, ja polecam po angielsku: https://diestel-graph-theory.com/ bo jest za darmo online choć w ujowej rozdzielczości, jest też na libgen w dobrej rozdzielczości i jest w końcu na amazon.pl choć kosztuje sporo (130pln) jak na 400 stronicową książkę matematyczną.
Co do kombinatoryki to słynna https://ksiegarnia.pwn.pl/Matematyka-konkretna,68736474,p.html załatwi sprawę.

Wszystkie książki są na poziomie akademickim, jak ktoś chciałby jest studiować w liceum to może mieć pewne problemy.

, podstawy kryptografii

Teoria liczb. Każdy dobry podręcznik kryptografii będzie miał wprowadzenie jak działają takie algorytmy.
Teoria liczb jest najtrudniejszą bodajże działką matematyki, odradzam zagłębianie się w temat bez wcześniejszego obycia matematycznego (co najmniej algebra liniowa wymagana).

, najważniejsza wiedza z zakresu sieci komputerowych, system binarny i tym podobne?

Tutaj sprawy są tak proste że żadna matematyka nie jest potrzebna poza tą elementarną.

Grafika komputerowa to najwdzięczniejszy obszar w którym matematyka łączy się z informatyką. Dowolny podręcznik wprowadzający do algebry liniowej i macierzy zda egzamin.
Silnik grafiki 3D to projekt który można wykonać w liceum. Na poziomie podstawowym mamy macierze rzutowania, translacji, obrotu itp. Prawa oświetlenie, renderowanie tekstur, z-buffer.
Wszystko proste.
Polecę to co mam w biblioteczce czyli https://www.amazon.com/Ray-Tracing-Ground-Kevin-Suffern/dp/1568812728 choć to o ray tracingu a nie stricte renderowaniu 3D. Niemniej podstawy są takie same macierze, wektory normalne i dużo liczenia.

Jak już jesteśmy przy grach to bardziej ambitny projekt to własny silnik fizyki, ale w tym temacie nie mam żadnego doświadczenia.

Osobiście zaczynał bym od teorii grafów i kombinatoryki, bo są proste, bez nadmiaru abstrakcji (np. masz 10 kamieni, 1 jest lżejszy od pozostałych, jak go odkryć dokonując najmniejszej liczby ważeń na wadze szalkowej) i występują na wszelkich olimpiadach i konkursach. Z kolei jak się pójdzie w teorię grup i abstrakcyjną algebrę to bardzo szybko zapał matematyczny się kończy, teoria jest sucha i zbyt abstrakcyjna dla większości ludzi.

PS. Zapomniałem jeszcze o teorii obliczeń (maszyny turinga, gramatyki, złożoność obliczeniowa) polecam świetny podręcznik https://lubimyczytac.pl/ksiazka/164179/wprowadzenie-do-teorii-automatow-jezykow-i-obliczen (również u mnie na półce, sprawdzona pozycja i całkiem prosta).

0

Tak jak pisałem, nie kręci mnie robienie gier tylko pisanie stron www i devops

5

Liczyć pieniądze

0

System binarny w małym palcu, osie OX, OY, funkcje trygonometryczne do rysowania figur 3D. Reszta to wyobraźnia.

0

algebrę

0

Statystykę i kombinatorykę jeszcze polecam ogarnąć

2

Wszystko to co jest potrzebne do wydevelopowania aplikacji którą akurat pisze.

2

Programista powinien umieć dodawać, odejmować, mnożyć i ew. dzielić, żeby go w sklepie nie orżnęli na kasie. Czasami przydaje się dodawanie jak musisz policzyć jakiś margines w CSS ale i bez tego można żyć.

1

Ja jestem programistą po matematyce, widzę zerowe zastosowanie matematyki (poza policzeniem ile zaraportować na task, skoro dzień pracy to 8h, a daily to 15 min) w codziennej pracy (typowa springowa kobyła w korpo).

0

pobaw się w sieci nauronowe

0

@Miang: myślałem o tym, z tym że nie wiedziałem czy się pobawić się w budowanie od podstaw sieci w jakimś Rust/Python/Java, czy wykorzystać istniejące narzędzia typu PyTorch/Keras/FastAI aż w końcu olalem temat xD

1
benoni12 napisał(a):

Ja jestem programistą po matematyce, widzę zerowe zastosowanie matematyki (poza policzeniem ile zaraportować na task, skoro dzień pracy to 8h, a daily to 15 min) w codziennej pracy (typowa springowa kobyła w korpo).

W czym programujesz? No, bo jak poszedłeś w webdev to nie dziw się, że 90% roboty jest jak dla bootcampowca.
Ja na rekrutacjach nieraz miałem odpytke z matmy, głównie z algebry liniowej jak aplikowałem na stanowiska związane z grafiką.

0
Czitels napisał(a):
benoni12 napisał(a):

Ja jestem programistą po matematyce, widzę zerowe zastosowanie matematyki (poza policzeniem ile zaraportować na task, skoro dzień pracy to 8h, a daily to 15 min) w codziennej pracy (typowa springowa kobyła w korpo).

W czym programujesz? No, bo jak poszedłeś w webdev to nie dziw się, że 90% roboty jest jak dla bootcampowca.
Ja na rekrutacjach nieraz miałem odpytke z matmy, głównie z algebry liniowej jak aplikowałem na stanowiska związane z grafiką.

Webdev/desktop w javie, próbowałem gdzieś uderzać gdzie jest właśnie jakaś grafika, finanse czy krypto ale nawet do rozmowy z HR nie dochodzę

0
benoni12 napisał(a):
Czitels napisał(a):
benoni12 napisał(a):

Ja jestem programistą po matematyce, widzę zerowe zastosowanie matematyki (poza policzeniem ile zaraportować na task, skoro dzień pracy to 8h, a daily to 15 min) w codziennej pracy (typowa springowa kobyła w korpo).

W czym programujesz? No, bo jak poszedłeś w webdev to nie dziw się, że 90% roboty jest jak dla bootcampowca.
Ja na rekrutacjach nieraz miałem odpytke z matmy, głównie z algebry liniowej jak aplikowałem na stanowiska związane z grafiką.

Webdev/desktop w javie, próbowałem gdzieś uderzać gdzie jest właśnie jakaś grafika, finanse czy krypto ale nawet do rozmowy z HR nie dochodzę

Ja klepie w c++ a tutaj są realizowane takie projekty z reguły i miałem takie pytania na rekrut. Niemniej jednak jak nie chcesz trafić do utrzymaniówki to musisz celować w mniejsze firmy/startupy a takich nie ma obecnie (oraz miec odpowiedniego expa), szczególnie w PL gdzie jest mało innowacji. W Javie jakaś matma to jest używana może w Quantitive (? nie wiem, widzialem tylko ogloszenia) i na uczelniach/centrach badawczych(np CERN).

W Pythonie się matematyczne rzeczy robi, ale nikt nie zatrudnia "python developera" tylko specjalistę w jakimś naukowym temacie. Np Deep Learning Enginneer i po prostu używasz pythona jako narzedzie do eksperymentowania.

0

Odpowiedź: Nie ważne co programista powinien umieć z matematyki. Za to ważne jak nauka tych wszystkich złożonych i w większości niepotrzebnych mu w przyszłości rzeczy, wytrenuje jego sieć neuronową, której używać będzie na co dzień w kreatywnej pracy.

0

Musi znać różnicę miedzy: albo, lub, i

1
whiteman808 napisał(a):

Mnie interesuje devops i webdev więc chyba mogę sobie darować matematykę wyższą

W DevOps ciężko o jakiekolwiek algorytmy. W sensie, można się czepiać, że są algorytmy loadbalancingu, algorytmy least-waste w upakowaniu kontenerów w k8s, Terraform to jedna wielka implementacja grafu skierowanego i łażenie po tym grafie, nawet cwane bo równolegle. Ale to warto wiedzieć że coś takiego jest i w sumie tyle.

0

Da się ogarnąć matematykę na poziomie wymaganym np. w sieciach neuronowych czy przy tworzeniu gier samodzielnie analizując i przerabiając teorię, twierdzenia, dowody oraz zadania z podręczników matematycznych?

1

Programista z matematyki powinien znać prawa de Morgana, tabliczkę mnożenia, umieć dzielić, zamieniać systemy liczbowe, ogarniać reprezentację binarną z uzupełnieniem do dwóch, umieć potęgować. Jeśli pracuje przy silnikach fizycznych, grafice 3D, narzędziach typu CAD to ogarniać algebrę liniową, potencjalnie to i owo z matematyki dyskretnej, co nieco analizy matematycznej. etc. Raczej co powinien umieć będzie oczywiste jeśli spojrzy się na to przy czym pracuje lub chce pracować.

1

Rozumiec co to sa bledy numeryczne i wiedziec ze float sie srednio nadaje do liczenia pieniedzy.

A poza tym to chyba w wiekszosci zwyklych korpo prac matematyka na poziomie podstawowki wystarczy :P (przynajmniej jako OPS)

1

Programista powinien wiedzieć że frontendowcy to są zera

2
WhiteLightning napisał(a):

Rozumiec co to sa bledy numeryczne i wiedziec ze float sie srednio nadaje do liczenia pieniedzy.

Najgorsze, że:
a) to prawda
b) żeby to ogarnąć (błedy numeryczne) to trzeba całkiem dużo już tej matematyki przerobić

0

Hejka, ja nie programista. Matmy sporo douczam się na boku bo się przydaje w moim zawodzie, + pewna bardziej zaawansowana literatura techniczna jest dużo czytelniejsza. Przy czym douczam się konkretnej gałęzi matematyki bo to obszerna dziedzina. Zazwyczaj programiście matma nie jest do niczego potrzebna. Natomiast zapomnij, że się tego na zaś douczysz jak będzie trzeba, albo poświęcisz na to kupe czasu wcześniej, a przy nietypowym problemie pewnie i tak będziesz kilka dni kombinował albo uderzysz w ścianę.

0
jarekr000000 napisał(a):

a) to prawda
b) żeby to ogarnąć (błedy numeryczne) to trzeba całkiem dużo już tej matematyki przerobić

Co z tego że prawda skoro inflacja i system rezerw cząstkowych wszystko przykryje? Po prostu trzeba sobie ustalić przedział ufności.

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