Tampaknya kebijaksanaan konvensional menunjukkan bahwa programmer yang baik juga pandai matematika. Atau keduanya terkait secara intrinsik. Banyak buku pemrograman yang saya baca memberikan banyak contoh yang merupakan solusi untuk masalah matematika, atau entah bagaimana terkait dengan matematika seolah-olah contoh-contoh ini adalah apa yang masuk akal bagi kebanyakan orang.
Jadi pertanyaan yang ingin saya sampaikan adalah: apakah Anda harus pandai matematika untuk menjadi programmer yang baik ?
Jawaban:
Saya pikir itu tergantung pada jenis pemrograman yang ingin Anda lakukan. Sejauh menjadi programmer di dunia bisnis, saya akan mengatakan bahwa jawabannya adalah tidak. Anda bisa menjadi programmer hebat tanpa mengetahui matematika tingkat lanjut. Ketika Anda akhirnya harus berhadapan dengan matematika, rumus biasanya didefinisikan dalam persyaratan bisnis sehingga hanya menjadi masalah menerapkannya dalam kode.
Di sisi lain, Jika Anda ingin menjadi programmer tingkat rendah atau mengatakan buat mesin grafis 3D, matematika akan memainkan peran besar.
sumber
Saya menentang arus dan mengatakan ya, Anda perlu pola pikir matematika . Kebanyakan orang berpikir matematika sebagai melakukan rumus aritmatika atau menghafal. Ini seperti menanyakan apakah Anda membutuhkan ejaan yang sempurna atau kosa kata yang luar biasa untuk menjadi penulis yang baik.
Menulis adalah tentang komunikasi, dan matematika / pemrograman adalah tentang proses berpikir yang jernih dan logis (dengan cara yang Anda tidak dapat membuat kesalahan; persamaan tidak seimbang, atau program tidak mengkompilasi). Secara khusus, pemikiran logis itu bermanifestasi dalam:
Jadi, saya akan mengatakan Anda memerlukan pola pikir matematika , mampu membangun & memanipulasi model mental dari apa yang program Anda lakukan, daripada kumpulan fakta & teorema. Bidang-bidang tertentu seperti grafik atau database akan memiliki fakta-fakta tertentu yang Anda butuhkan juga, tetapi bagi saya itu bukan esensi dari menjadi "pandai matematika".
sumber
Ada banyak bidang pemrograman yang berbeda dan banyak dari mereka tidak memerlukan standar pengetahuan matematika yang sangat tinggi. Anda tidak akan pernah bisa menulis mesin 3D, tetapi Anda pasti akan dapat mengembangkan aplikasi bisnis dan web. Mari kita hadapi itu - operasi matematika yang paling umum di sebagian besar program komputer adalah menambah angka satu per satu.
Saya akan dengan senang hati mengakui bahwa saya tidak pernah menyukai matematika atau pandai dalam bidang matematika (saya benar-benar lulus dengan gelar Sastra Inggris!) Dan telah bekerja sebagai pengembang profesional selama lebih dari 12 tahun sekarang. Saya mengembangkan sebagian besar aplikasi web, yang jarang membutuhkan banyak matematika. Yang lebih penting adalah kemampuan berpikir secara logis, mampu memecah masalah menjadi beberapa bagian dan memiliki pemahaman yang luas tentang berbagai teknologi dan kerangka kerja yang terlibat.
Sebagai seorang programmer Anda lebih mungkin harus mengimplementasikan algoritma yang sudah ada daripada merancang yang sama sekali baru . Perlu berolahraga, katakanlah, bunga majemuk? Anda tidak perlu mencari tahu sendiri, cukup cari formula dan terapkan. Sebagian besar masalah telah diselesaikan, Anda hanya perlu tahu bagaimana menerapkan solusi dalam bahasa pilihan Anda. Itu tidak berarti bahwa menjadi ahli matematika tidak akan menguntungkan ; hanya saja itu tidak sepenuhnya penting .
Ketika saya masih di sekolah di pertengahan 80-an ketika komputer rumah di mana tidak terlalu umum saya sering menulis program untuk menyelesaikan pekerjaan rumah matematika saya. Saya sering tidak bisa melakukannya di kepala saya, tetapi saya bisa menerapkan formula apa pun yang diperlukan sebagai rutin perangkat lunak. Anda tidak perlu menjadi Pythagoras lain untuk mengerjakan sisi terpanjang dari segitiga siku-siku, Anda hanya perlu bisa membuat kode
a² + b² = h²
dalam bahasa pilihan Anda.sumber
Anda tidak harus pandai matematika. Namun, Anda harus pandai logika, dan pemecahan masalah. Namun orang-orang yang pandai logika dan pemecahan masalah biasanya juga pandai matematika. Saya akan mengatakan bahwa itu sangat tergantung pada jenis matematika. Anda bisa menjadi mengerikan di kalkulus (seperti saya), dan masih menjadi programmer yang baik (seperti saya). Tetapi jika Anda memiliki masalah dengan Matematika Diskrit dan Teori Set, Anda mungkin akan menemukan banyak aspek pemrograman yang cukup sulit.
sumber
Saya pikir penting untuk melihat secara dekat mengapa Anda tidak menyukai matematika.
Ketidaksukaan terhadap disiplin akademis biasanya adalah sesuatu yang terjadi di sekolah, dan mungkin disebabkan oleh konflik dengan guru, kurangnya kepercayaan pada kemampuan Anda sendiri dalam suatu mata pelajaran, atau tekanan kelompok sebaya.
Pemrograman! = Matematika. Bahkan tidak "terasa" seperti matematika, bagi saya (dan saya menikmati matematika, meskipun tidak melakukannya dengan baik menjelang akhir studi formal saya di dalamnya). Banyak keterampilan yang mungkin Anda gunakan dalam matematika berguna, perlu bahkan dalam pemrograman, tetapi banyak programmer yang belajar sendiri untuk sebagian besar. Tidak menyukai matematika di sekolah sama sekali tidak berpengaruh pada kemampuan atau kenikmatan pemrograman Anda.
sumber
Matematika dan pemrograman sangat erat hubungannya karena matematika adalah bahasa universal antara manusia dan komputer. Anda tidak perlu tahu banyak matematika untuk pemrograman tingkat tinggi karena banyak yang ada di belakang layar, tetapi itu akan membantu dalam pemahaman untuk banyak konsep pemrograman yang lebih maju. Jika Anda berencana untuk melakukan lebih banyak pemrograman tingkat rendah (sistem atau perangkat pemrograman), maka Anda perlu mengetahui lebih banyak matematika.
sumber
Yang bagus ? Sangat tidak mungkin. Sebagian besar pola desain setidaknya memiliki dasar dalam konsep matematika. Hal-hal yang penting untuk pemrograman, seperti variabel, loop, prosedur, dan objek, adalah analog dengan konsep-konsep dalam bidang matematika seperti aljabar, kalkulus, dan teori himpunan.
Pertimbangkan juga bahwa ilmu komputer adalah bagian dari matematika: algoritma dan logika formal, yang menjadi dasar semua pemrograman, pada dasarnya adalah matematika .
Jika Anda membenci matematika, Anda akan membenci pemrograman.
sumber
Hampir setiap orang menjawab: "apakah Anda perlu tahu matematika untuk menjadi programmer yang baik?" Jawaban yang benar untuk ini adalah: "Tidak, tidak juga, tetapi itu membantu," seperti yang telah dikatakan banyak orang.
Tetapi interpretasi saya atas pertanyaannya adalah "adakah korelasi kuat antara kemampuan matematika dan kemampuan pemrograman?" Jawaban yang benar untuk ini adalah: "Ya, ada." Jika Anda berjuang melalui aljabar, geometri, dan kalkulus, maka Anda mungkin tidak pandai menangani abstraksi dan / atau berpikir secara logis. Jika Anda buruk dalam matematika, Anda mungkin tidak akan pernah menjadi programmer yang hebat. (Bukannya kamu tidak boleh mencoba.)
sumber
Tergantung pada apa yang Anda pemrograman. Mesin permainan 3D, misalnya, akan sangat sulit (jika bukan tidak mungkin) dilakukan dengan tingkat koherensi apa pun tanpa pengetahuan tentang konsep matematika yang sesuai.
sumber
"Suka" dan "kompeten" adalah hal yang sama sekali berbeda - jadi selama Anda menghitung dengan benar maka saya tidak dapat melihat alasan mengapa Anda harus menyukai matematika.
Tetapi mari kita perjelas dengan jelas di sini - pemrograman memiliki dasar yang kuat dalam matematika dan cepat atau lambat hampir semua perkembangan non-sepele akan melibatkan perhitungan - Anda tidak dapat bersembunyi dari ini.
Pemrograman apa pun melibatkan logika (dasar dalam matematika), sebagian besar pemrograman modern mungkin melibatkan hal-hal (seperti SQL) yang melibatkan teori himpunan (bahkan jika itu tidak jelas) dan jika tidak maka mungkin itu kasus Anda ranah (seperti pemrograman game) yang bahkan secara eksplisit berbasis matematika (rendering - matematika, AI -> probabilitas dan keacakan - matematika ...) dan seterusnya.
Hasilnya di atas adalah bahwa Anda harus merasa nyaman dengan angka - Anda tentu harus mengerti mengapa "Ada 10 jenis orang di dunia, mereka yang mengerti biner dan mereka yang tidak" lucu. Tapi Anda mungkin dimaafkan "2 + 2 = 5 ... untuk nilai yang sangat besar dari 2".
sumber
Konsep dasar matematika adalah sebagai berikut, merancang, memahami, mengimplementasikan, dan menggunakan algoritma. Jika Anda tidak dapat mengerjakan matematika maka itu karena Anda tidak dapat melakukan hal-hal ini, dan jika Anda tidak dapat melakukan hal-hal ini maka Anda tidak dapat menjadi programmer yang efektif.
Tugas pemrograman umum mungkin tidak memerlukan pengetahuan matematika khusus (misalnya Anda mungkin tidak akan memerlukan aljabar vektor dan kalkulus kecuali jika Anda melakukan tugas-tugas seperti grafik 3D atau simulasi fisika, misalnya), tetapi skill dasar yang mendasari identik, dan kurangnya kemampuan di satu domain akan dicocokkan dengan kurangnya kemampuan yang sesuai di domain lain.
sumber
Sejujurnya, saya adalah seorang siswa matematika yang mengerikan di sekolah. Aljabar benar-benar di luar saya pada saat itu, dan saya pikir saya tidak pernah mendapat yang lebih tinggi daripada D di dalamnya.
Namun, beberapa tahun kemudian, setelah bekerja sebagai pengembang perangkat lunak profesional, saya kembali ke perguruan tinggi dan mengambil kursus aljabar. Yang mengejutkan saya, itu adalah kelas termudah yang saya miliki, dan saya mendapat nilai A di dalamnya.
Sebenarnya, pemrograman mengajarkan saya aljabar, karena hampir semuanya hanyalah ekspresi aljabar.
Jadi tidak, Anda tidak perlu memulainya. Ini membantu, tetapi tidak diperlukan. Hal yang indah tentang pengembangan perangkat lunak sebagai sarana untuk mengajarkan matematika adalah bahwa kompiler, debugger, dan program pelaksana adalah cara yang bagus untuk memverifikasi bahwa Anda sudah mendapatkan jawaban yang benar. Dalam hal ini, debugging khususnya adalah keuntungan besar untuk belajar, karena Anda dapat menelusuri kode dan menonton setiap langkah evaluasi algoritma Anda.
sumber
Ini agak tergantung pada apa yang sebenarnya Anda lakukan, meskipun pasti tidak ada salahnya.
Misalnya, seseorang yang mengambil jurusan Ilmu Komputer harus melalui banyak matematika untuk mendapatkan gelar mereka. CS umumnya banyak berfokus pada algoritma dan kebenarannya, dibuktikan melalui bukti gaya matematika tingkat tinggi. Banyak program CS Universitie yang begitu dekat dengan program matematika mereka sehingga jurusan ganda hanya berjarak beberapa mata kuliah saja. Bahkan sebagai jurusan Rekayasa Perangkat Lunak, saya sendiri, hanya 2 mata kuliah dari jurusan Matematika.
Namun, yang dikatakan, banyak bukti, struktur data, metode pencarian, dan hal-hal kebenaran algoritma yang saya pelajari belum benar-benar digunakan secara langsung sejak saya selesai sekolah. Tetapi akan sulit bagi saya untuk mengatakan bahwa itu setidaknya tidak memberi saya fondasi yang baik dan pemahaman yang lebih baik tentang apa yang saya lakukan pada level rendah.
Karena tidak peduli bagaimana Anda melihatnya, pada level terendah, semua yang Anda lakukan bermuara pada matematika.
sumber
Bisakah Anda menjadi pengembang perangkat lunak yang baik tanpa matematika? Ya saya pikir begitu. Bisakah Anda menjadi semacam programmer heroik yang sering dibicarakan orang? Saya pikir tidak.
Masalahnya adalah, sebagian besar, jika tidak semua, programmer heroik (pikirkan Dennis Ritchie), memiliki latar belakang ilmu komputer atau matematika. Untuk menjadi programmer yang benar-benar hebat, Anda perlu memahami algoritma pada tingkat yang lebih dari sekadar dangkal, yang berarti Anda terpaksa mempelajari ilmu komputer formal. Dan ilmu komputer hanyalah matematika terapan.
Demikian pula, pemahaman tentang kalkulus lambda akan sangat berharga bagi arsitek OS atau perancang bahasa.
sumber
Saya telah melihat topik ini diperdebatkan berulang-ulang. Saya telah bekerja dengan orang-orang yang memiliki gelar dalam matematika yang mengira mereka bisa progam dan dalam satu atau dua tahun berganti karier. Salah satu programmer terbaik yang pernah saya senangi bekerja adalah memiliki gelar Ph.D di bidang Biokimia dan tidak pernah mengambil kelas pemrograman / CS formal di sekolah tetapi belajar sendiri dan memulai perusahaan perangkat lunak yang sukses!
Pada akhirnya, apa yang membuat programmer yang baik dan hebat adalah seseorang yang mampu memahami logika, alur kerja, dapat belajar dengan contoh dan mau meneliti untuk solusi. Juga, Anda HARUS BELAJAR BISNIS untuk aplikasi Anda. Saya benci programmer yang pround mereka tidak mengerti akuntansi, belum menulis aplikasi akun. Mereka selalu membuat asumsi yang salah dan benar-benar memperlambat perkembangan.
Anda akan menemukan, tidak peduli sekolah apa yang Anda tuju, Anda akan belajar lebih banyak dalam satu tahun di luar sekolah daripada yang Anda lakukan dalam 4 tahun sekolah. Sekolah mengajarkan Anda cara belajar dengan keterampilan dasar - tetapi pengalaman dunia nyata jauh lebih berharga dari waktu ke waktu.
Pengalaman adalah guru terbaik dan ketika Anda harus menerapkan matematika dalam pengembangan perangkat lunak, selama Anda belajar bisnis - Anda akan baik-baik saja. Juga, ingat, seperti yang dikatakan oleh posting sebelumnya, kecuali jika Anda mencoba untuk bekerja pada mesin grafis 3D atau sistem koordinat grafis seperti aplikasi GIS, matematika yang Anda pelajari hingga sekolah menengah adalah semua yang benar-benar Anda butuhkan.
Saya telah bekerja pada sistem Akuntansi dan Penagihan - dan saya tidak pernah harus mencari Log (x), SIN, COS, dll untuk menangani buku besar atau mengizinkan entri data. Aging Journal bukan "matematika tinggi" tetapi penting untuk mengevaluasi masalah AP.
Kalau dipikir-pikir, saya belum pernah bertemu akuntan dengan kalkulator ilmiah di meja mereka!
sumber
Jawaban singkatnya adalah tidak. Saya pikir ini sedikit mitos tetapi dipropagasi karena masalah matematika biasanya cocok untuk diselesaikan oleh komputer.
Jadi di universitas, orang akan mendapatkan masalah matematika yang perlu mereka selesaikan dalam mata pelajaran compsci tetapi yang biasanya Anda temukan adalah bahwa matematika sebenarnya lebih sulit untuk dipecahkan daripada kode yang diperlukan untuk mengimplementasikan solusi.
Setelah Anda masuk ke dunia nyata, Anda akan semakin menemukan bahwa masalahnya sebagian besar diselesaikan untuk Anda, tugas Anda hanyalah mengimplementasikannya dalam kode.
sumber
Anda harus belajar matematika, atau membuat matematika sendiri. Bagaimanapun, penting untuk menjadi baik dalam beberapa bentuk atau lainnya.
Selama Anda dapat bekerja dengan nilai-nilai dan memahami apa yang mereka lakukan, mengapa dan apa yang dapat Anda membuat mereka lakukan, maka matematika tradisional tidak selalu diperlukan. Kadang-kadang bahkan menghalangi.
Ada cara-cara alternatif untuk memvisualisasikan nilai byte selain angka, tetapi mereka pasti yang paling dipikirkan setelah metode. Itu akan layak untuk menulis sebuah program yang berpikir semua nilai sebagai warna misalnya.
Pemrograman saat ini mendapatkan banyak nilainya dari kemampuan untuk mewakili 1 dan 0 sebagai jenis data yang berbeda. Meskipun sebenarnya angka 1 dan 0 itu sama sekali bukan angka, tetapi perubahan panjang gelombang listrik, matematika tidak banyak berperan sebagai fisika, ... namun , ... sangat penting dalam memahami banyak hal tentang apa programmer lain katakan dan kode.
Masih mungkin untuk menjadi programmer yang baik tanpa matematika, namun sulit.
sumber
Saya baru saja menyelesaikan kursus intro untuk matematika diskrit, dan saya menemukan bahwa saya sudah tahu hampir semua hal tentang logika predikat berkat pemrograman; semua yang baru adalah sintaksis - itu pada dasarnya hanya bekerja dengan boolean.
Singkatnya: mungkin Anda tidak harus belajar matematika secara eksplisit , tetapi hanya dengan menjadi seorang programmer Anda mungkin telah belajar matematika tanpa disadari. Artinya, dengan menjadi "programmer yang baik", Anda juga benar-benar menjadi ahli matematika (sampai batas tertentu).
The Curry-Howard Correspondence menggambarkan apa yang saya maksud: pada dasarnya, ia menyatakan bahwa bukti matematika dan program komputer tertentu "isomorfik", yaitu, mereka adalah cara yang berbeda dari menulis hal yang sama. Tentu saja, ini sebenarnya lebih kompleks dari ini, tapi saya bukan ahli matematika, jadi ini adalah penjelasan terbaik yang bisa saya berikan. Semoga itu tidak terlalu jauh dari sasaran.
Singkatnya, tidak hanya banyak bidang dalam CS dan pemrograman yang melibatkan banyak matematika, tetapi bahkan gagasan pemrograman dasar (misalnya boolean) pada dasarnya adalah matematika yang menyamar.
sumber
Ini adalah pertanyaan yang sangat sulit dijawab dan kemungkinan akan menimbulkan banyak perdebatan.
Salah satu alasan mengapa pertanyaan ini begitu sulit adalah karena sebagian tergantung pada jenis pekerjaan yang Anda lakukan. Tidak ada banyak matematika yang terlibat dengan sebagian besar aplikasi bisnis, sehingga Anda dapat bertahan dengan pemahaman yang kuat tentang aljabar dan matematika bisnis. Namun, aplikasi yang lebih maju membutuhkan matematika yang lebih maju dan Anda mulai membutuhkan pemahaman yang kuat tentang kalkulus, aljabar linier, dan sejenisnya.
Namun, itu hanya salah satu bagian dari persamaan dalam bahwa Anda masih memerlukan gelar matematika untuk praktik pemrograman itu sendiri. Tak perlu dikatakan bahwa Anda harus merasa nyaman dengan logika untuk hanya dapat menulis program dasar dan juga aljabar dasar. Melihat sedikit lebih dari sekedar mendapatkan program dasar bekerja meskipun Anda harus memiliki pemahaman tentang aspek-aspek tertentu dari matematika diskrit untuk dapat menentukan apa yang membuat algoritma yang baik untuk digunakan untuk masalah yang diberikan.
Untuk kembali ke inti pertanyaan. Saya pribadi tidak berpikir Anda harus menjadi ahli matematika untuk menjadi programmer yang baik; Namun, saya pikir Anda perlu nyaman dengan matematika untuk bisa menjadi programmer generalis yang baik.
sumber
Iya tentu saja.
Bahkan menjalankan program bisnis pabrik memerlukan beberapa keterampilan dalam matematika.
Menjalankan program bisnis pabrik memerlukan keterampilan basis data. Menjadi pemrogram basis data yang baik membutuhkan pemahaman tentang cara kerja basis data, dan algoritma apa yang digunakan oleh prosesor kueri saat menerjemahkan permintaan Anda. Tanpa pemahaman tentang batas dan turunannya (atau bahkan pemahaman dasar bahwa garis y = x memotong garis y = x ^ 2 dua kali), tidak layak untuk secara akurat membandingkan rencana kueri gabungan hash-match batin dengan gabungan loop bersarang rencana permintaan.
Juga, seorang programmer yang baik dapat bekerja di hampir semua domain, asalkan mereka belajar sedikit: game, simulasi, pengembangan tertanam, kompiler, sistem operasi, barang-barang web, database, dll. Mampu melakukan semua hal (atau lebih akurat untuk dapat dengan cepat belajar bagaimana melakukan semua hal itu) membutuhkan jumlah latar belakang matematika yang layak.
Saya akan mengatakan bahwa seseorang seharusnya memiliki pengalaman pada suatu saat dengan hal berikut:
sumber
Matematika lebih dari sekadar rumus. Memahami beberapa prinsip matematika tentang teori himpunan sangat berguna untuk memahami konsep kompleks pada sistem tipe, seperti halnya memahami kompleksitas merupakan hal terpenting dalam penggunaan struktur data yang efisien.
Teori grafik juga sangat berguna, karena banyak masalah pemrograman dapat dimodelkan dengan grafik. Saya sangat heran, ketika saya sedang mengembangkan aplikasi bisnis, untuk mengetahui bahwa teorema jalur terpendek memberikan solusi yang elegan untuk masalah berduri yang saya miliki!
sumber
Saya selalu menganggap pemrograman untuk menjadi apa-apa tapi matematika.
Itu tidak terlihat seperti aljabar sekolah menengah.
sumber
Matematika adalah ruang pemrograman sebelumnya.
Mampu bekerja dengan lapisan demi lapisan abstraksi, model, "obyektifikasi" fungsi, transformasi dan konsep temporal, matematika adalah tempat pelatihan yang sempurna untuk semua itu.
Dimungkinkan untuk mengembangkan pola pikir yang tepat untuk pemrograman tanpa matematika tetapi itu jauh lebih sulit.
Namun, di samping bidang spesialis, hanya memahami matematika itu penting, mengetahui nama segalanya dan bagaimana teorema yang diberikan dapat dibuktikan tidak. Jadi, bahkan jika Anda memiliki nilai bagus dalam matematika karena Anda mempelajari semuanya tanpa benar-benar memahami, Anda masih akan berjuang dengan pemrograman.
sumber
Pengetahuan matematika baik untuk beberapa aplikasi (seperti game, kecerdasan buatan, grafik komputer, dll), tetapi matematika mengajarkan Anda sesuatu yang lebih dari sekadar rumus atau persamaan kompleks.
Belajar matematika sama seperti belajar bahasa pemrograman baru. Padahal, pemrograman matematika terapan. Ketika Anda belajar bahasa baru, Anda belajar banyak hal yang menjadikan Anda seorang programmer yang lebih baik. Ini tidak berbeda dengan matematika, tetapi jika Anda benar-benar menguasai matematika, Anda akan menjadi programmer yang lebih baik selamanya, bahkan Anda tidak menggunakan matematika lanjutan dalam pekerjaan Anda.
Alasannya sederhana: matematika mengajarkan Anda untuk melihat dunia dengan mata yang lain. Ini mengajarkan Anda untuk memecahkan masalah dengan berbagai pendekatan tanpa harus pemrograman. Cara berpikir yang baru ini tentu menuntun Anda ke cara yang lebih baik untuk melakukan pekerjaan Anda.
Pemrograman adalah seni. Matematika adalah seni. Jika Anda menggabungkan keduanya, Anda akan menjadi artis yang lebih baik.
sumber
Tidak.
Sama seperti kebanyakan disiplin ilmu, memiliki pemahaman yang baik tentang konsep matematika akan sangat membantu, terutama ketika mengevaluasi hal-hal seperti efisiensi. Tetapi untuk sebagian besar tugas pemrograman, kemampuan matematika Anda hanya relevan jika masalah yang Anda selesaikan terkait dengan matematika.
Komputer sangat baik dalam melakukan matematika, sehingga masuk akal bahwa komputer awal digunakan secara luas untuk melakukan 'pekerjaan kasar' yang terkait dengan banyak pekerjaan matematika yang rumit. Banyak software masih tidak memecahkan masalah matematika yang kompleks, dalam hal bahwa menjadi pintar dalam bidang matematika akan membantu Anda menulis program yang lebih baik, tapi itu tidak apa yang membuat Anda seorang programmer yang baik.
sumber
Biasanya, tidak dalam arti bahwa Anda perlu tahu, katakanlah, kalkulus atau persamaan trigonometri untuk melakukan sebagian besar pekerjaan. Jika Anda melakukan pemrograman grafis / permainan berat, maka ya. Sebuah hack matematika yang terkenal untuk Quake adalah contoh yang baik dari ini. Namun, pemikiran bahwa Anda harus masuk ketika berhadapan dengan matematika tingkat tinggi tentu berlaku untuk pemrograman; dengan pemrograman, Anda mengembangkan struktur logika Anda sendiri, fungsi Anda sendiri, "bukti" Anda sendiri.
Satu-satunya waktu saya menjalankan matematika dalam pekerjaan saya (alur kerja perusahaan internal dan aplikasi) adalah ketika saya melakukan beberapa aplikasi pelaporan yang membutuhkan pengetahuan tentang statistik, tetapi itu hanya karena itu langsung berlaku untuk persyaratan.
sumber
Saya akan mengatakan belum tentu. Disiplin pemrograman tertentu (crypto, grafik, mesin fisika dll) pasti akan memiliki keuntungan yang jelas untuk kemiringan matematis, tapi saya tidak berpikir pemahaman yang baik tentang persamaan diferensial akan sangat berguna untuk pemrograman web misalnya.
Logika Boolean mungkin merupakan persyaratan untuk menjadi programmer yang baik, tetapi tidak akan mengejutkan saya jika banyak orang yang tidak mencapai nilai bagus dalam matematika sekolah menengah ternyata pandai pemrograman.
sumber
Saya akan mengatakan Anda pasti tidak perlu pandai matematika untuk menjadi programmer yang baik.
Pekerjaan pertama saya sebagai seorang programmer adalah melakukan grafik 3D untuk B-52 dan perencanaan misi Cruise Missile. Itu adalah aplikasi intensif matematika, tetapi saya benar-benar hanya membutuhkan akses ke orang-orang yang baik / hebat dalam matematika. Saya tidak perlu tahu rumus untuk menghitung jarak lingkaran besar antara dua titik. Saya memang perlu tahu cara mengonversi rumus agar berfungsi dalam bahasa pemrograman. Sama dengan simulasi penerbangan. Boeing melakukan semua perhitungan yang harus kami terapkan.
Pengalaman itu juga membantu saya memahami siapa yang akan menjadi programmer yang baik dan siapa yang tidak. Pekerjaan itu membuat pilot dan navigator mengambil tur tugas sebagai programmer dan untuk membantu programmer memahami kebutuhan misi. Anda biasanya bisa mengetahui dalam beberapa minggu apa pilot dan navigator akan bagus dalam hal itu. Jurusan Matematika biasanya langsung memprogram.
Jadi saya akan mengatakan menjadi pandai matematika membuat Anda cenderung pandai pemrograman, tapi saya tahu banyak programmer yang tidak begitu baik dalam matematika.
sumber
Saya tidak suka matematika dan saya selalu mendapat nilai matematika rendah. Saya tidak ingin mengatakan bahwa saya seorang programmer yang baik, tetapi saya berada di industri perangkat lunak selama 10 tahun dengan sukses besar.
sumber
Tidak, tidak-tidak, tidak, ya dan tidak!
Tidak, karena sering kali Anda membutuhkannya.
Mengapa itu tidak berhasil?
dapatkah itu ditulis ulang dengan cara yang lebih abstrak?
Apakah 968 ms lebih atau kurang dari 0,7 detik? Berapa MB yang Anda butuhkan, berapa Ghz yang dimiliki mesin, akankah satu byte cukup - matematika adalah bagian dari pekerjaan sehari-hari. Terkadang matematika eksplisit dan lebih tinggi.
Secara implisit matematika selalu lebih rendah.
Matematika adalah bidang yang luas, dari menghitung, ke matriks, hingga geometri, logika, statistik, teori kategori, teori grafik. Jadi, jika Anda yakin Anda pemrograman tanpa menggunakan matematika - mungkin Anda salah.
Jika Anda melihat masalah pada halaman Project Euler , Anda akan menemukan teka-teki, di mana saya tidak punya ide, bagaimana matematika digunakan untuk menyelesaikannya. (Bukan berarti saya bisa menyelesaikannya tanpa matematika.) Perhatikan bahwa ukuran masalah biasanya sebesar itu, sehingga Anda tidak dapat menyelesaikannya dengan kekerasan.
Namun - karena saya tidak dapat menyelesaikan banyak masalah (sekitar 2/3 saat ini), apakah itu berarti saya tidak suka matematika?
Jika Anda tidak belajar matematika, Anda mungkin tidak akan tahu, di mana Anda dapat menemukan matematika kehidupan sehari-hari Anda, termasuk pemrograman.
Bahkan jika Anda hanya mengkhususkan diri dalam memindahkan komponen GUI di layar agar terlihat bagus, Anda melakukan matematika dengan cara tertentu.
sumber