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?
Jawaban:
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.
sumber
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.
sumber
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
Kalkulus I (Matematika 2413): dipisahkan menjadi
Masalah Penugasan
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.
sumber
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 :
sumber
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.
sumber
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
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.
sumber
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.
sumber
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.
sumber
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.)
sumber
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.
sumber
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.
sumber