Czy jest kanoniczna książka o matematyce dla programistów? [Zamknięte]

52

Jestem programistą-samoukiem. Naprawdę nie jestem dobry z matematyki. Jaką radę możesz udzielić, aby poprawić moje umiejętności matematyczne, abym nie był tak niepewny wobec innych programistów? Jakie kroki lub wytyczne możesz zalecić, aby poprawić moje umiejętności matematyczne?

Czy istnieje książka, która jest de facto standardem opisującym najlepsze praktyki, metodologie projektowania i inne pomocne informacje dla matematyki dla programistów? Co z tą książką czyni ją wyjątkową?

adietan63
źródło
8
Czy znasz geometrię? algebra? trygonometria? algebra liniowa? rachunek różniczkowy? Jak daleko jesteś?
Marcelo,
3
@ adietan63: Sugestie będą jedynie spekulacjami, chyba że dokładniej określisz swoją obecną wiedzę matematyczną.
David Thornley,
1
Chciałbym użyć Pythona z PyGame. Jeśli chcesz dostać się do 3D bez większych problemów, Panda3D autorstwa Carnegie Mellon z Disney Studios jest bardzo łatwa do nauczenia się.
thorsten müller
1
@FrustratedWithFormsDesigner | Czy Java jest odpowiednia do przetwarzania grafiki i gier, czy jej c ++?
adietan63
5
Czy mógłbyś powiedzieć nam coś więcej o tym, jak inni programiści używają matematyki? Daję zupełnie inną radę, jeśli pracujesz dla firmy finansowej w porównaniu do sklepu programistycznego. (Jeśli dzięki temu poczujesz się bezpieczniej, podrzucając w biurze takie słowa, jak „przestrzeń Hilberta” i „heteroskedastyczność”, na pewno poznaj algebrę liniową i zaawansowane statystyki. Po prostu nie spodziewaj się, że zrobisz wrażenie na programistach hoi polloi.)
rajah9

Odpowiedzi:

24

Hmm, z tego, co mówisz, wydaje się, że chcesz zacząć od podstaw. Nic złego w tym, zrobiłem to samo. Moja matematyka była głównie na poziomie szkoły średniej i wiele z niej zostało zapomnianych.

Zacznij od Khan Academy , przejdź do sekcji ćwiczeń i sprawdź, jak daleko możesz się posunąć. To da ci dobry pomysł, co możesz zrobić i od czego zacząć naukę.

Nie zawracaj sobie głowy oglądaniem filmów. Przynajmniej dla mnie filmy to tylko powolny sposób na naukę, a filmy Khana są wyjątkowo nudne. Istnieje wiele innych zasobów do nauki podstawowych matematyki. Jak niektóre WikiBooks lub ck-12

Pytanie jest omawiane na Math.StackExchange wystarczająco często, a poszukiwanie „bezpłatnych zasobów” lub „bezpłatnych książek” przyniesie wiele informacji i materiałów. To samo dotyczy wyszukiwanych haseł, takich jak „start” lub „początkujący”. Lub zadaj tam własne pytanie. Działa to również w podsekcji / r / matematyki na reddit. Tam znajdziesz więcej subreddits, np. Do nauki matematyki.

Dużo ćwiczyć. Nie wystarczy po prostu zrozumieć koncepcję, a następnie przejść do następnego. Musisz się czuć swobodnie, aby go zastosować. Nie zrozumiesz wartości procentowych, jeśli nie podoba ci się podział i mnożenie (jako przykład). Dotyczy to również wyższych koncepcji. Dlatego dla mnie sekcja ćwiczeń w Khan jest znacznie cenniejsza niż filmy.

Podobnie jak w przypadku programowania, utrzymywanie kontaktu ze społecznością zapewni ci motywację. Po prostu od czasu do czasu loguj się na forum i czytaj, o czym mówią ludzie.

Thorsten Müller
źródło
Dzięki! Masz rację. Myślę, że muszę zacząć od podstaw, aby zrozumieć szeroki zakres matematyki.
adietan63
+100 KhanAcademy doskonale nadaje się do wzmacniania podstaw matematycznych. Nie ma nic złego w rozpoczynaniu od podstaw. Uczenie się we własnym tempie usuwa „czynnik upokorzenia” polegający na nieznajomości niektórych prostych podstaw matematycznych. System oceny wykonuje dobrą robotę, identyfikując słabości i szybko wychodząc poza słabości.
Evan Plaice
16

Konkretna matematyka: podstawa informatyki (wydanie drugie) byłaby moim wyborem na dobrą książkę o matematyce obejmującą różne obszary matematyki wraz z odrobiną humoru do książki, która może być przydatna.

JB King
źródło
Ja też to przeczytałem. Dobra książka.
Ando,
2
+1, ponieważ jest to bardzo dobra książka. Nie jestem jednak pewien, czy jest to coś dla kogoś, kto określa się jako „nie dobry z matematyki”.
vartec
Byłoby wspaniale, gdyby zamiast zwykłego użycia słowa „oczywisty” Knuth uczynił niektóre części bardziej oczywistymi. Ale przy ciężkiej pracy wszystko można zrozumieć, jeśli ktoś ma solidne podstawy matematyczne ze szkoły.
gruszczy
8
Ostrzegam, ta książka zdecydowanie nie jest dla początkujących.
MAK
2
Sztuka polega na tym, żeby ją przeczytać. Ciągle chciałem przejrzeć go jak instrukcję lub stronę internetową. To nie działa. Wyjaśnienie słowa lub pojęcia? Znajdziesz go, jeśli cofniesz się wystarczająco daleko. Powoli dla mnie (nigdy nie skończył rachunku różniczkowego - ale bardziej za bycie leniwszym niż złym z matematyki), ale dobrą rekomendacją IMO. Wyjaśniają wszystko dobrze. Po prostu bądź cierpliwy i nie spiesz się.
Erik Reppen
10

Internetowe notatki Paula z Uniwersytetu Lamar są w formacie PDF. Jest bardzo dobry do szybkiego odwoływania się, a na każdej stronie znajdują się przykłady. Jeśli kiedykolwiek chciałem odświeżyć się na jakiś temat lub coś pojąć, zwykle wracam na tę stronę.

Oto zestaw:

Algebra (Mat. 1314): Pełna lista notatek
Spis treści

  • Eliminacje - właściwości wykładnika, wykładniki wymierne, wykładniki ujemne, rodniki, wielomiany, faktoring, wyrażenia wymierne, liczby zespolone
  • Rozwiązywanie równań i nierówności.
  • Wykresy i funkcje - Wykresy linii, okręgów i funkcji częściowych, Definicja funkcji, Notacja funkcji, Skład funkcji, Funkcje odwrotne.
  • Wspólne wykresy - parabol, elips, hiperbol, wartość bezwzględna, pierwiastek kwadratowy, funkcja stałej, funkcje wymierne, przesunięcia, odbicia, symetria.
  • Funkcje wielomianowe - Dzielenie wielomianów, zera / pierwiastki wielomianów, Znajdowanie zera wielomianów, Wykresy wielomiany, Ułamki częściowe.
  • Funkcje wykładnicze i logarytmiczne - funkcje wykładnicze, funkcje logarytmiczne, rozwiązywanie funkcji wykładniczych, rozwiązywanie funkcji logarytmicznych, aplikacje.
  • Układy równań - metoda podstawienia, metoda eliminacji, macierz rozszerzona, układy nieliniowe.

Rachunek I (Mat. 2413): podzielony na

  1. Spis treści
  2. Notatki
  3. Ćwicz problemy
  4. Rozwiązania problemów praktycznych
  5. Problemy z przypisaniem

    • Algebra / Trig Review - Funkcje i równania Trig, Funkcje i równania wykładnicze, Funkcje i równania logarytmiczne.
    • Granice - pojęcia, definicja, obliczenia, granice jednostronne, ciągłość, granice związane z nieskończonością, reguła L'Hospitals
    • Pochodne - Definicja, interpretacje, wzory pochodne, reguła mocy, reguła produktu, reguła ilorazowa, reguła łańcuchowa, pochodne wyższego rzędu, implikowane różnicowanie, różnicowanie logarytmiczne, pochodne funkcji wyzwalania, funkcje wykładnicze, funkcje logarytmiczne, funkcje odwrotnego wyzwalania i funkcje hiperboliczne .
    • Zastosowania instrumentów pochodnych - powiązane stawki, punkty krytyczne, wartości minimalne i maksymalne, funkcje zwiększania / zmniejszania, punkty zapalne, wklęsłość, optymalizacja
    • Całkowanie - definicja, całki nieoznaczone, całki określone, reguła podstawiania, ocena całek określonych, podstawowe twierdzenie rachunku całkowego
    • Zastosowania całek - średnia wartość funkcji, powierzchnia między krzywymi, bryły obrotu, praca.

Rachunek II (Mat. 2414) Pełne notatki

Rachunek III (Mat. 2415) Pełne notatki

Algebra liniowa (matematyka 2318)

Równania różniczkowe (Mat. 3301) Pełne uwagi

Możesz sprawdzić witrynę pod kątem reszty list tematów.

phwd
źródło
1
Nie mogę uwierzyć, że nie ma więcej głosów. Paweł jest bogiem.
n0pe
8

Zdaję sobie sprawę, że to nie jest książka, ale myślę, że może to być dobry sposób na poszerzenie twojego myślenia o matematyce. Spróbuj rozwiązać problemy z Project Euler .

Na przykład pierwszy to :

Jeśli podamy wszystkie liczby naturalne poniżej 10, które są wielokrotnościami 3 lub 5, otrzymamy 3, 5, 6 i 9. Suma tych wielokrotności wynosi 23.

Znajdź sumę wszystkich wielokrotności 3 lub 5 poniżej 1000.

Peter K.
źródło
Pytania z projektu Euler są z pewnością oparte na matematyce, ale miałem z nimi problem, że stały się tak zaawansowane, że jedynym sposobem, w jaki mogłem je rozwiązać, były algorytmy brutalnej siły (chyba że oszukiwałem). Mówią, że powinieneś być w stanie znaleźć eleganckie rozwiązanie, które działa na mniej niż 60 sekund na wszystkie pytania.
Mike
4
@Mike, nie sądzę, że badanie podobnych problemów i próbowanie zrozumienia podstawowych koncepcji wystarczająco dobrze, aby zaatakować problem, to oszustwo. Uczysz się więcej, „oszukując” w ten sposób, a nie robiąc tyle badań.
Doug T.
1
Zrobiłem wiele z nich, co poprawiło moje umiejętności programowania. Jeśli chodzi o samą matematykę, najczęściej uczysz się wielu schludnych sztuczek, ale nie dodajesz wiele do podstawowej wiedzy, takiej jak rachunek różniczkowy lub algebra. Ale to dodaje motywacji do matematyki.
thorsten müller
1
@thorsten: moja żona (matematyk w rodzinie) uważa, że ​​matematyka to TYLKO kilka zgrabnych sztuczek. :-)
Peter K.
1
Zazwyczaj przechodzę przez problemy Eulera, że ​​najpierw próbuję brutalnej siły i ją optymalizuję. Samo to nauczyło wielu faktów matematycznych, których nigdy nie znałem. Późniejsze czytanie forów rozwiązań zapewnia jeszcze więcej matematycznych spostrzeżeń.
System Down
8

Zawsze polecam dyskretną matematykę Kennetha Rosena i jej zastosowania . Obejmuje wiele różnych tematów (jak każda dobra książka Discrete Math) z dobrą równowagą teorii i zastosowania. Ma również wiele interesujących pasków bocznych dla matematyków i informatyków, którzy stworzyli omawiane pojęcia.

Bill jaszczurka
źródło
Dzięki! ale jakie są warunki wstępne przed studiowaniem dyskretnej matematyki itp.
adietan63,
1
@ adietan63: Algebra to wszystko, co powiedziałbym, że jest wymagane . Mój uniwersytet pozwala nam wziąć dyskretną matematykę przed Rachunkiem różniczkowym lub Statystycznym, ale z pewnością nie zaszkodzi przyjmować je jako pierwsze.
Bill the Lizard
@ adietan63: Możesz także zapoznać się z niektórymi książkami matematycznymi Head First, jeśli potrzebujesz odświeżenia, lub obejrzeć bezpłatne wykłady wideo online.
Bill the Lizard
@Bill Dziękujemy! Może czuję presję podczas uczenia się tego, ponieważ chcę nauczyć się wielu rzeczy w programowaniu w krótkim czasie. Może wezmę to pojedynczo. Myślę, że jest to część procesu uczenia się. dzięki jeszcze raz!
adietan63
7
Nie ma za co. Ponadto poczucie „chcę nauczyć się wielu rzeczy w programowaniu w krótkim czasie” nigdy tak naprawdę nie zniknie. :)
Bill the Lizard
4

Podczas gdy czytanie 1000 odrębnych książek matematycznych jest dobrym rozwiązaniem, może nie być optymalną ścieżką, jeśli czas jest ograniczeniem. Jeśli chcesz posmakować, ile matematyki powinieneś mieć, nie wchodząc w głąb, zapoznaj się z dodatkiem A do wprowadzenia książki o algorytmach (cormen) : http://www.acmsolver.org/books/ Wprowadzenie% 20to% 20 Algorytmy,% 202.% 20Ed% 20-% 20 Thomas% 20H.% 20Cormen.pdf

Przeczytałem dodatek i dzięki temu lepiej zrozumiałem, jakie tematy matematyczne powinienem bardziej przejrzeć. Gdy wiesz, czego się spodziewać, spójrz na:

http://www.amazon.com/Journey-into-Mathematics-Introduction-Proofs/dp/0486453065/ref=sr_1_15?ie=UTF8&qid=1308591694&sr=8-15 wprowadź opis zdjęcia tutaj

Moim zdaniem nauka dowodzenia (szczególnie przez indukcję) jest podstawą zrozumienia algorytmów analizy . Niestety większość algorytmów, a nawet kursów matematyki CS, nie koncentruje się zbytnio na dowodach. już zakładają, że jesteś w tym kompetentny, więc nie wykraczają poza kilka stron. Książka Podróż do matematyki jest bardzo mała i łatwa do odczytania. Wykorzystuje problemy CS i ich aspekt matematyczny. Inne dobre tematy do nauczenia to arytmetyka macierzy , prawdopodobieństwo , liczenie i teoria grafów .

Pozostałe dwa popularne duże podręczniki: Dyskretna matematyka i jej zastosowanie z EPP (mój ulubiony) i drugi z Rosen.

http://www.amazon.com/Discrete-Mathematics-Applications-Susanna-Epp/dp/0534359450/ref=sr_1_4?ie=UTF8&qid=1308591784&sr=8-4

http://www.amazon.com/Discrete-Mathematics-Applications-Kenneth-Rosen/dp/0073229725/ref=sr_1_1?ie=UTF8&qid=1308591784&sr=8-1

Nie miałem przyjemności czytać podręcznika zatytułowanego „ Konkretna matematyka ”, ale zawsze słyszałem o tym dobre rzeczy.

Armando
źródło
1

Szczerze mówiąc, możesz być doskonale odpowiednim programistą w wielu dziedzinach bez zasadniczo bardzo silnej wiedzy matematycznej. Możesz nie być bardzo zdolny, jeśli chodzi o silniki gier lub optymalizację routingu sieciowego, ale prawdę mówiąc, wiele aplikacji biznesowych jest dość prosta. Chciałbym jednak zachęcić was do podtrzymania nadziei przy życiu i jeszcze nie rezygnacji z matematyki.

Istnieje różnica między matematyką, którą bierzesz na niższym poziomie, a matematyką na wyższym poziomie. Zupełnie inną rzeczą jest stwierdzenie, że jesteś zły na rachunku różniczkowym (ja byłem - nie zdałem kalkulatora I za pierwszym razem, gdy go wziąłem) niż stwierdzenie, że jesteś zły na teorii grafów. W miarę postępów w matematyce nie skupiamy się na prostym rozwiązywaniu problemów, które są szczerze mówiąc nudne i powtarzalne, i które równie dobrze można wykonać za pomocą kalkulatora graficznego. Zamiast tego nacisk kładziony jest na umiejętność logicznego myślenia: tworzenie dowodów jest szczerze podobne do oprogramowania do pisania.

Najlepsza klasa matematyczna, jaką kiedykolwiek miałem, była tym, co uważałem za moją pierwszą „prawdziwą” klasę matematyki: w zasadzie wprowadzenie do klasy dowodów, która obejmowała szereg obszarów od teorii grafów do teorii liczb. Tekst, który wykorzystaliśmy był świetny ( Myślenie matematyczne: rozwiązywanie problemów i dowody autorstwa D'Angelo i Westa ). Może się przydać po prostu przejrzenie tej książki, aby uzyskać pomysły na atak dowodów.

Ogólnie, czy naprawdę potrzebowałem matematyki na studiach? Nie, prawdopodobnie nie. Ale posiadanie jakiegoś formalnego zaplecza dało mi lepsze umiejętności krytycznego myślenia, lepszą wyobraźnię (zazwyczaj istnieje wiele sposobów rozwiązania problemu, czasem dobrze, czasem źle, ale unikalny pomysł może być pomocny) i pewność w rozwiązywaniu problemów.

Edward Thomson
źródło
| Dzięki! Myślę, że nawet jeśli Math nie mogę ci pomóc przez cały czas. Może jego obecność pomoże ci w krytycznym myśleniu i poprawi twoje umiejętności analityczne?
adietan63,
Szczerze mówiąc, myślę, że podoba ci się słowo „szczerze”.
bukzor
1

Słuchaj, jestem dobry z matematyki, ale tak naprawdę wcale go nie używam do programowania i programuję całkiem sporo. Moja rada po prostu przyzwyczai się do tego, że nie wiem wystarczająco dużo i każę komuś zrobić matematykę.

Jest tak wiele rzeczy do poznania, że ​​nie można oczekiwać, że w ogóle będą dobre, ale matematyka w szczególności nie jest zbyt przydatna.

Oczywiście możesz tego potrzebować, ponieważ twoje programy są czymś naukowym, w przeciwnym razie wykorzystaj ten czas, aby nauczyć się czegoś bardziej przydatnego.

Ando
źródło
2
Nie zgadzam się, dobre umiejętności programowania są związane z dobrymi umiejętnościami matematycznymi.
Marcelo,
1
Cóż, uważam, że można się nie zgodzić. Myślę, że brak zgody jest słuszny, ale jeśli to sprawia, że ​​czujesz się upoważniony do głosowania za moim wkładem, jest to bardzo ryzykowne.
Ando,
Przywileje - głosowanie wyłączone - wymaga 125 reputacji; już zdobyłeś ten przywilej.
Marcelo,
1
Głosowałem, ponieważ zgadzam się, że nie potrzebujesz matematyki, aby zostać dobrym programistą w wielu obszarach. Chociaż mocno się nie zgadzam, że matematyka nie jest zbyt przydatna. Nawet jeśli nie potrzebujesz matematyki w codziennej pracy, wiele zyskujesz, ucząc się pewnych aspektów matematyki i jeśli tylko tyle rozumiesz notacji wielkiej-O.
thorsten müller,
1

Interesujące mogą być notatki z niektórych kursów (dla początkujących) z sekcji „Logika i obliczenia” ESSLLI (na przykład nadchodzący program na 2011 r. Lub program na 2010 r. , Szukaj więcej). Daje to wrażenie na temat aktualnych osiągnięć teoretycznych w dziedzinie związanej z programowaniem. Następnie możesz zdecydować się na głębsze zbadanie podstaw w pewnym polu podrzędnym dotkniętym na tych kursach.

(W przeciwnym razie trudno odpowiedzieć na twoje pytanie, istnieje tak wiele różnych „matematyki”, które mogą być naprawdę niepotrzebne lub zainteresowane. Jednym z powodów, dla których kursy ESSLLI mogą być dla nas interesujące, jest to, że odzwierciedlają niektóre aktualne badań, więc chodzi o rozwiązywanie niektórych zagadek; a próba rozwiązania określonej zagadki jest ważnym elementem w procesie prawdziwego zrozumienia teorii, zrozumienia, co jest za nią interesujące).

imz - Ivan Zakharyaschev
źródło
1

Jeśli właściwie studiujesz matematykę CS, to patrzysz na takie rzeczy jak logika matematyczna i teoria mnogości. Oto niektóre dość matematyczne matematyki, które je wspierają. Dlatego jeśli twój podstawowy poziom matematyki jest nieco ryzykowny, najlepiej zacznij od podstaw, zanim przejdziesz do obszarów bardziej związanych z CS.

Dlatego proponuję zacząć od matematyki inżynierskiej KA Strouda . Dobrze napisane, łatwe do naśladowania i obejmujące podstawy, a także bardziej zaawansowane rzeczy.

CdMnky
źródło
1

Zacznij od podstaw, a następnie przejdź do specjalizacji: Rozkosz matematyka i Jak ją rozwiązać, to dwie świetne książki na początek. Rozkosz matematyka podchodzi do podstawowych zagadnień matematycznych (np. Geometrii, algebry, rachunku różniczkowego itp.) W sposób przyjazny dla człowieka i zabawny. Nie czytałem jeszcze, jak to rozwiązać, ale koncentruje się na tym, jak atakować problemy matematyczne poprzez rozumowanie.

sakisk
źródło