Apakah ada buku kanonik tentang matematika untuk programmer? [Tutup]

52

Saya seorang programmer otodidak. Sejujurnya saya tidak pandai matematika. Apa saran yang dapat Anda berikan untuk meningkatkan keterampilan Matematika saya sehingga saya tidak akan merasa tidak aman di sekitar sesama programmer saya? Apa langkah atau pedoman yang dapat Anda rekomendasikan untuk meningkatkan keterampilan matematika saya?

Apakah ada buku di luar sana yang standar de-facto untuk menggambarkan praktik terbaik, metodologi desain, dan informasi bermanfaat lainnya tentang matematika untuk programmer? Bagaimana dengan buku itu yang membuatnya istimewa?

adietan63
sumber
8
Apakah Anda tahu geometri? aljabar? trigonometri? aljabar linier? kalkulus? Seberapa jauh Anda?
Marcelo
3
@ adietan63: Saran hanya akan menjadi spekulasi kecuali Anda lebih spesifik tentang pengetahuan matematika Anda saat ini.
David Thornley
1
Saya akan menggunakan Python dengan PyGame. Jika Anda ingin masuk ke 3D tanpa terlalu banyak kesulitan, maka Panda3D oleh Carnegie Mellon dengan Disney Studios sangat mudah dipelajari.
thorsten müller
1
@FrustratedWithFormsDesigner | Apakah java cocok untuk pemrosesan grafis dan gamming atau c ++?
adietan63
5
Bisakah Anda memberi tahu kami lebih banyak tentang bagaimana sesama programmer Anda menggunakan matematika? Saya akan memberikan saran yang sangat berbeda jika Anda bekerja untuk sebuah perusahaan keuangan vs. sebuah toko pemrograman. (Jika itu membuat Anda merasa lebih aman untuk melemparkan kata-kata seperti "ruang Hilbert" dan "heteroskedastisitas" di sekitar kantor, tentu saja pelajari beberapa aljabar linier dan statistik canggih. Hanya jangan berharap untuk mengesankan pengembang hoi polloi.)
rajah9

Jawaban:

24

Hmm, dari apa yang Anda katakan sepertinya Anda ingin memulai dengan sangat mendasar. Tidak ada hal buruk tentang itu, saya melakukan hal yang sama. Matematika saya sebagian besar sekolah menengah dan banyak yang dilupakan.

Mulailah dengan Khan Academy , buka bagian latihan dan lihat seberapa jauh Anda bisa mendapatkan. Ini akan memberi Anda ide yang baik tentang apa yang dapat Anda lakukan dan di mana harus mulai belajar.

Jangan repot-repot menonton video. Setidaknya bagi saya video hanyalah cara lambat untuk belajar dan Khan sangat membosankan. Ada banyak sumber daya lain untuk belajar matematika dasar. Seperti beberapa WikiBooks atau ck-12

Pertanyaannya dibahas di Math.StackExchange cukup sering dan mencari 'sumber daya gratis' atau 'buku gratis' akan membawa Anda banyak informasi dan materi. Hal yang sama berlaku untuk istilah pencarian seperti 'mulai' atau 'pemula'. Atau ajukan pertanyaan Anda sendiri di sana. Itu berfungsi juga di sub / r / matematika di reddit. Di sana Anda akan menemukan lebih banyak subreddit, misalnya untuk belajar matematika.

Berlatih banyak. Tidak cukup hanya memahami konsep dan kemudian melanjutkan ke yang berikutnya. Anda harus merasa nyaman untuk menerapkannya. Anda tidak akan memahami persentase jika Anda tidak nyaman dengan pembagian dan perkalian (sebagai contoh). Itu juga berlaku untuk konsep yang lebih tinggi. Itu sebabnya bagiku bagian latihan di Khan jauh lebih berharga daripada videonya.

Seperti halnya pemrograman, tetap berhubungan dengan komunitas akan membuat Anda tetap termotivasi. Cukup masuk ke beberapa forum sesekali dan baca apa yang dibicarakan orang.

thorsten müller
sumber
Terima kasih sobat! Kanan Anda. Saya pikir saya harus mulai dari yang paling mendasar untuk memahami bidang matematika yang luas.
adietan63
+100 KhanAcademy sangat bagus untuk memperkuat fondasi matematika. Tidak ada yang salah dengan mulai dari dasar-dasarnya. Pembelajaran mandiri ini menghilangkan 'faktor penghinaan' karena tidak mengetahui beberapa dasar matematika sederhana. Sistem penilaian melakukan pekerjaan yang baik mengidentifikasi kelemahan dan dengan cepat bergerak melampaui kelemahan.
Evan Plaice
16

Matematika Konkret: Yayasan Ilmu Komputer (Edisi ke-2) akan menjadi pilihan saya untuk buku Matematika yang bagus yang mencakup berbagai bidang Matematika dan memiliki humor untuk buku yang mungkin berguna.

JB King
sumber
Saya juga membacanya. Buku yang bagus.
Ando
2
+1 karena itu buku yang sangat bagus. Meskipun tidak yakin apakah itu sesuatu untuk seseorang yang mendefinisikan dirinya sebagai "tidak pandai dalam matematika".
vartec
Akan lebih bagus, jika daripada hanya menggunakan kata 'jelas' Knuth membuat beberapa bagian lebih jelas. Tetapi dengan kerja keras semua hal dapat dipahami, jika seseorang memiliki latar belakang matematika yang kuat dari sekolah.
gruszczy
8
Berhati-hatilah, buku ini jelas bukan untuk pemula.
MAK
2
Caranya adalah dengan benar-benar membacanya. Saya terus mendapati diri saya ingin membaca sketsa seperti manual atau situs web. Itu tidak berhasil. Kata atau konsep tidak dijelaskan? Anda akan menemukannya jika Anda mundur cukup jauh. Lambat bagi saya (kalkulus tidak pernah selesai - tetapi lebih karena menjadi pemalas daripada buruk dalam matematika), tetapi rekomendasi IMO yang baik. Mereka menjelaskan semuanya dengan baik. Bersabarlah dan luangkan waktu Anda.
Erik Reppen
10

Catatan Online Paul dari Lamar University hadir dalam format PDF. Ini sangat bagus untuk referensi cepat dan ada contoh di setiap halaman. Jika saya ingin menyegarkan diri pada suatu topik atau memahami sesuatu, saya cenderung untuk kembali ke situs ini.

Ini adalah set:

Aljabar (Matematika 1314): Catatan Lengkap
Daftar isi

  • Pendahuluan - Properti Eksponen, Eksponen Rasional, Eksponen Negatif, Radikal, Polinomial, Anjak Piutang, Ekspresi Rasional, Bilangan Kompleks
  • Memecahkan Persamaan dan Ketidaksetaraan - Persamaan Linear, Persamaan Kuadrat, Melengkapi Kuadrat, Rumus Kuadratik, Aplikasi Persamaan Linear dan Kuadratik, Dapat Direduksi menjadi Bentuk Kuadratik, Persamaan dengan Radikal, Ketimpangan Linear, Polinomial & Ketidaksetaraan Rasional, Persamaan Nilai Mutlak & Ketidaksetaraan.
  • Graphing and Functions - Graphing Lines, Circles, dan Piecewise Functions, Function Function, Notation Function, Function Composition, Inverse Functions.
  • Grafik Umum - Parabola, Elips, Hiperbola, Nilai Absolut, Akar Kuadrat, Fungsi Konstan, Fungsi Rasional, Pergeseran, Refleksi, Simetri.
  • Fungsi Polinomial - Membagi Polinomial, Nol / Akar Polinomial, Menemukan Nol Polinomial, Graphing Polinomial, Fraksi Parsial.
  • Fungsi Eksponensial dan Logaritma - Fungsi Eksponensial, Fungsi Logaritma, Memecahkan Fungsi Eksponensial, Memecahkan Fungsi Logaritma, Aplikasi.
  • Sistem Persamaan - Metode Substitusi, Metode Eliminasi, Augmented Matrix, Sistem Nonlinier.

Kalkulus I (Matematika 2413): dipisahkan menjadi

  1. Daftar isi
  2. Catatan
  3. Praktekkan Masalah
  4. Solusi untuk Praktek Masalah
  5. Masalah Penugasan

    • Ulasan Aljabar / Trig - Fungsi dan Persamaan Trig, Fungsi dan Persamaan Eksponensial, Fungsi dan Persamaan Logaritma.
    • Batas - Konsep, Definisi, Komputasi, Batas Satu Sisi, Kontinuitas, Batas yang Melibatkan Infinity, Peraturan L'Hospital
    • Derivatif - Definisi, Interpretasi, Rumus Derivatif, Aturan Daya, Aturan Produk, Aturan Quotient, Aturan Rantai, Derivatif Orde Tinggi, Diferensiasi Tersirat, Diferensiasi Logaritma, Fungsi Derivatif Fungsi Trig, Fungsi Eksponensial, Fungsi Logaritma, Fungsi Trig .
    • Aplikasi Derivatif - Tarif Terkait, Poin Kritis, Nilai Minimum dan Maksimum, Fungsi Peningkatan / Penurunan, Poin Infleksi, Konkavitas, Optimasi
    • Integrasi - Definisi, Integral Tak Terbatas, Integral Pasti, Aturan Substitusi, Mengevaluasi Integral Pasti, Teorema Dasar Kalkulus
    • Aplikasi Integral - Nilai Fungsi Rata-Rata, Area Antara Kurva, Solids of Revolution, Work.

Kalkulus II (Matematika 2414) Catatan Lengkap

Kalkulus III (Matematika 2415) Catatan Lengkap

Aljabar Linier (Matematika 2318) Catatan Lengkap

Persamaan Diferensial (Matematika 3301) Catatan Lengkap

Anda dapat memeriksa situs untuk sisa daftar topik.

phwd
sumber
1
Tidak percaya ini tidak memiliki lebih banyak suara. Paulus adalah dewa.
n0pe
8

Saya menyadari ini bukan buku, tapi saya pikir ini mungkin cara yang baik untuk memperluas pemikiran Anda tentang matematika. Cobalah bekerja melalui masalah Project Euler .

Misalnya, yang pertama adalah :

Jika kita mencantumkan semua bilangan asli di bawah 10 yang merupakan kelipatan 3 atau 5, kita mendapatkan 3, 5, 6 dan 9. Jumlah kelipatan ini adalah 23.

Temukan jumlah semua kelipatan 3 atau 5 di bawah 1000.

Peter K.
sumber
Pertanyaan Project Euler pasti berdasarkan matematika tetapi masalah yang saya miliki dengan mereka adalah mereka menjadi sangat cepat sehingga satu-satunya cara saya bisa menyelesaikannya adalah dengan algoritma brute force (kecuali saya curang). Mereka mengatakan bahwa Anda harus dapat menemukan solusi elegan yang berjalan di bawah 60 detik untuk semua pertanyaan.
Mike
4
@ Mike, saya tidak berpikir meneliti masalah yang sama dan mencoba memahami konsep yang mendasarinya dengan cukup baik untuk menyerang masalah itu curang. Anda belajar lebih banyak dengan "menipu" dengan cara ini maka tidak melakukan semua penelitian itu.
Doug T.
1
Saya melakukan banyak dari mereka dan itu meningkatkan keterampilan pemrograman saya. Meskipun berkaitan dengan matematika itu sendiri Anda sebagian besar belajar banyak trik rapi tetapi tidak menambah banyak pengetahuan dasar seperti Kalkulus atau Aljabar. Tetapi itu menambah Anda motivasi melakukan matematika.
thorsten müller
1
@ Thorsten: istri saya (ahli matematika di keluarga) berpikir bahwa matematika HANYA sekelompok trik yang rapi. :-)
Peter K.
1
Cara saya biasanya melewati masalah Euler adalah bahwa pertama saya biasanya mencoba kekuatan kasar, dan mengoptimalkannya. Itu saja telah mengajarkan banyak fakta matematika yang tidak pernah saya ketahui. Setelah membaca forum solusi, biasanya jaring wawasan matematika bahkan lebih.
Sistem Down
8

Saya selalu merekomendasikan Matematika Terpisah dari Kenneth Rosen dan Penerapannya . Ini mencakup banyak topik yang berbeda (seperti buku Discrete Math yang bagus) dengan keseimbangan teori dan aplikasi yang baik. Ini juga memiliki banyak sidebars menarik pada ahli matematika dan ilmuwan komputer yang berasal konsep tertutup.

Bill the Lizard
sumber
Terima kasih! tetapi apa Prasyarat sebelum belajar Matematika diskrit dll.
adietan63
1
@ adietan63: Aljabar adalah semua yang saya katakan wajib . Universitas saya mengizinkan kami mengambil Matematika Diskrit sebelum Kalkulus atau Statistik, tetapi tentu saja tidak akan sulit untuk mengambilnya terlebih dahulu.
Bill the Lizard
@ adietan63: Anda mungkin juga ingin memeriksa beberapa buku matematika Kepala Pertama jika Anda memerlukan penyegaran, atau menonton beberapa kuliah video online gratis.
Bill the Lizard
@ Bill Terima kasih! Mungkin saya merasa tertekan dalam mempelajari hal ini karena saya ingin belajar banyak hal dalam pemrograman dalam waktu singkat. Mungkin saya akan mengambilnya satu per satu. Saya pikir ini adalah bagian dari proses pembelajaran. Terima kasih lagi!
adietan63
7
Sama-sama. Juga, perasaan "Saya ingin belajar banyak hal dalam pemrograman dalam waktu singkat" tidak pernah benar-benar hilang. :)
Bill the Lizard
4

Walaupun membaca 1000 buku matematika diskrit adalah solusi yang baik, mungkin itu bukan jalan yang optimal jika waktu adalah kendala. Jika Anda ingin mengetahui seberapa banyak matematika yang harus Anda miliki tanpa terlalu mendalam, lihat di lampiran A dari pengantar buku Algoritma (cormen) : http://www.acmsolver.org/books/ Pendahuluan% 20 hingga% 20 Algoritma,% 202dan% 20Temukan% 20-% 20Tomas% 20H.% 20Cormen.pdf

Saya membaca lampiran dan itu memberi saya pemahaman yang lebih baik tentang topik matematika apa yang harus saya ulas lebih banyak. Setelah Anda tahu apa yang diharapkan, lihat:

http://www.amazon.com/Journey-into-Mathematics-Introduction-Proofs/dp/0486453065/ref=sr_1_15?ie=UTF8&qid=1308591694&sr=8-15 masukkan deskripsi gambar di sini

Menurut pendapat saya, belajar bagaimana membuktikan (terutama dengan induksi) adalah landasan untuk memahami algoritma analisis . Sayangnya, sebagian besar algoritma dan bahkan kursus matematika CS tidak terlalu fokus pada pembuktian. mereka sudah menganggap bahwa Anda kompeten di dalamnya, sehingga mereka tidak melampaui beberapa halaman. Perjalanan ke buku matematika sangat kecil dan mudah dibaca. Ia menggunakan masalah CS dan aspek matematikanya juga. Topik bagus lainnya untuk dipelajari adalah aritmatika matriks , probabilitas , penghitungan , dan teori graf juga.

Dua buku teks besar populer lainnya: Matematika Diskrit dan aplikasinya dari EPP (favorit saya) dan yang lainnya dari 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

Saya belum mendapatkan kesenangan membaca buku teks berjudul " Matematika Beton " tetapi saya selalu mendengar hal-hal baik tentang itu.

Armando
sumber
1

Terus terang, Anda bisa menjadi programmer yang sangat memadai dalam banyak bidang tanpa pengetahuan matematika yang sangat kuat. Anda mungkin tidak terlalu mampu dalam hal mesin gim atau optimisasi perutean jaringan, tetapi sejujurnya, banyak aplikasi bisnis cukup sederhana. Namun, saya akan mendorong Anda untuk tetap berharap dan belum menyerah pada matematika.

Ada perbedaan besar antara matematika yang Anda ambil di level yang lebih rendah dan matematika yang Anda ambil di level yang lebih tinggi. Adalah hal yang sangat berbeda untuk mengatakan bahwa Anda buruk dalam Kalkulus (saya - saya gagal Calc I pertama kali saya mengambilnya) daripada mengatakan bahwa Anda buruk dalam Teori Grafik. Ketika Anda maju melalui matematika, fokusnya bukan pada pemecahan masalah sederhana yang terus terang cukup membosankan dan berulang-ulang dan mungkin juga dilakukan oleh kalkulator grafik Anda. Alih-alih, fokusnya adalah pada keterampilan berpikir logis: membuat bukti terus terang sangat mirip dengan menulis perangkat lunak.

Kelas matematika terbaik yang pernah saya miliki adalah apa yang saya anggap sebagai kelas matematika "nyata" pertama saya: pada dasarnya pengantar kelas bukti yang mencakup berbagai bidang mulai dari Teori Grafik ke Teori Angka. Teks yang kami gunakan sangat bagus ( Pemikiran Matematis: Pemecahan Masalah dan Bukti oleh D'Angelo dan Barat .) Anda mungkin merasa berguna hanya dengan membaca buku itu untuk mendapatkan beberapa ide tentang bukti serangan.

Secara keseluruhan, apakah saya benar - benar membutuhkan matematika yang saya ambil di perguruan tinggi? Tidak, mungkin juga tidak. Tetapi memiliki latar belakang formal memberi saya keterampilan berpikir kritis yang lebih baik, imajinasi yang lebih baik (biasanya ada banyak cara untuk memecahkan masalah, kadang-kadang baik, kadang-kadang buruk, tetapi ide yang unik dapat membantu) dan kepercayaan diri dalam pemecahan masalah.

Edward Thomson
sumber
| Terima kasih sobat! Saya pikir bahkan jika Matematika tidak dapat membantu Anda sepanjang waktu. Mungkin kehadirannya akan membantu Anda dalam berpikir kritis dan meningkatkan keterampilan analitis Anda?
adietan63
Terus terang, saya pikir Anda suka kata "terus terang."
bukzor
1

Lihat, saya pandai matematika, tapi saya benar-benar tidak menggunakannya sama sekali untuk pemrograman, dan saya melakukan program cukup banyak. Saran saya hanya untuk membiasakan diri tidak cukup tahu dan meminta seseorang melakukan perhitungan matematika untuk Anda.

Ada banyak hal yang perlu diketahui, Anda tidak bisa berharap menjadi baik pada semuanya, tetapi matematika khususnya, itu tidak terlalu berguna.

Tentu saja, Anda mungkin memerlukannya karena program Anda adalah sesuatu yang ilmiah, jika tidak gunakan waktu itu untuk mempelajari sesuatu yang lebih berguna.

Ando
sumber
2
Tidak setuju, keterampilan pemrograman yang baik terkait dengan keterampilan matematika yang baik.
Marcelo
1
Yah, saya rasa Anda tidak bisa setuju. Saya pikir perbedaan pendapat itu benar, tetapi jika itu membuat Anda merasa berwenang untuk menurunkan kontribusi saya, itu sangat berisiko.
Ando
Hak istimewa - menolak - membutuhkan 125 reputasi; Anda telah mendapatkan hak istimewa ini.
Marcelo
1
Terpilih karena saya setuju, bahwa Anda tidak perlu matematika untuk menjadi programmer yang baik di banyak bidang. Meskipun saya sangat tidak setuju bahwa matematika tidak terlalu berguna. Sekalipun Anda tidak membutuhkan matematika dalam pekerjaan sehari-hari, Anda mendapat banyak manfaat dari mempelajari aspek-aspek matematika tertentu dan jika hanya memahami notasi-O yang besar.
thorsten müller
1

Melihat catatan kursus dari beberapa kursus (pemula) dari bagian "Logika & Komputasi" ESSLLI (sebagai contoh, program 2011 mendatang atau program 2010 , cari lebih banyak) dapat menarik. Ini akan memberi Anda kesan tentang perkembangan teoritis saat ini di bidang yang terkait dengan pemrograman. Kemudian Anda dapat memutuskan untuk mempelajari lebih dalam tentang fondasi di subbidang tertentu yang disentuh dalam kursus-kursus tersebut.

(Kalau tidak, sulit untuk menjawab pertanyaan Anda, ada begitu banyak "matematika" yang berbeda, yang Anda mungkin tidak benar-benar butuhkan atau tertarik. Salah satu alasan mengapa kursus ESSLLI dapat menjadi menarik bagi kami adalah karena mereka mencerminkan beberapa saat ini penelitian, jadi mereka adalah tentang memecahkan teka-teki tertentu; dan mencoba memecahkan teka-teki tertentu merupakan komponen penting dalam proses pemahaman nyata suatu teori, memahami apa hal yang menarik di baliknya.)

imz - Ivan Zakharyaschev
sumber
1

Jika Anda mempelajari matematika CS dengan benar maka Anda melihat hal-hal seperti logika matematika dan teori himpunan. Ini adalah beberapa matematika yang cukup terlibat mendukung mereka. Oleh karena itu, jika tingkat dasar matematika Anda sedikit mengikat, maka sebaiknya Anda mulai dengan dasar-dasarnya, sebelum pindah ke bidang yang lebih terkait dengan CS.

Oleh karena itu saya menyarankan agar Anda mulai dengan KA Stroud's Mathematics Engineering . Ditulis dengan baik, mudah diikuti dan mencakup hal-hal dasar serta lebih canggih.

CdMnky
sumber
1

Mulailah dengan dasar-dasar dan kemudian pindah ke spesialisasi: Delight dan Bagaimana menyelesaikannya adalah dua buku yang bagus untuk memulai. Delight matematikawan mendekati topik matematika dasar (mis. Geometri, aljabar, kalkulus, dll.) Dengan cara yang ramah manusia dan lucu. Saya belum membaca Bagaimana mengatasinya, tetapi berfokus pada cara menyerang masalah matematika dengan alasan.

sakisk
sumber