Saya kebetulan berdebat dengan seorang teman selama masa kuliah apakah matematika tingkat lanjut diperlukan untuk setiap programmer veteran. Dia biasa membantah keras hal itu. Dia mengatakan bahwa programmer hanya membutuhkan pengetahuan matematika dasar dari matematika SMA atau tahun baru kuliah, tidak lebih tidak kurang, dan hampir semua tugas pemrograman dapat dicapai bahkan tanpa perlu matematika tingkat lanjut. Dia berpendapat, bagaimanapun, bahwa algoritma adalah aset fundamental & harus dimiliki oleh programmer.
Pendirian saya adalah bahwa semua kemajuan ilmu komputer bergantung hampir sepenuhnya pada kemajuan matematika, dan oleh karena itu pengetahuan yang menyeluruh dalam matematika akan sangat membantu pemrogram ketika mereka bekerja dengan masalah yang menantang di dunia nyata.
Saya masih tidak bisa menentukan sisi mana dari argumen yang benar. Bisakah Anda memberi tahu kami pendirian Anda, dari pengalaman Anda sendiri?
Jawaban:
Untuk menjawab pertanyaan Anda seperti yang diajukan, saya harus mengatakan, "Tidak, matematika tidak diperlukan untuk pemrograman". Namun, seperti yang disarankan orang lain di utas ini, saya yakin ada korelasi antara memahami matematika dan kemampuan "berpikir secara algoritme". Artinya, mampu berpikir secara abstrak tentang kuantitas, proses, hubungan dan pembuktian.
Saya mulai pemrograman ketika saya berusia sekitar 9 tahun dan akan sangat berlebihan untuk mengatakan saya telah belajar banyak matematika pada tahap itu. Namun, dengan sedikit usaha saya dapat memahami variabel, untuk loop, pernyataan goto (maafkan saya, saya adalah Vic 20 BASIC dan saya belum membaca Dijkstra) dan geometri koordinat dasar untuk meletakkan grafik di layar .
Saya akhirnya melanjutkan untuk menyelesaikan gelar kehormatan di Matematika Murni dengan minor di Ilmu Komputer. Meskipun saya berfokus terutama pada analisis, saya juga mempelajari cukup banyak matematika diskrit, teori bilangan, logika, dan teori komputabilitas. Selain dapat menerapkan beberapa ide dari statistik, teori probabilitas, analisis vektor, dan aljabar linier ke pemrograman, ada sedikit matematika yang saya pelajari yang secara langsung dapat diterapkan ke pemrograman saya selama gelar sarjana saya dan pemrograman komersial dan penelitian yang saya lakukan setelah itu.
Namun, saya sangat percaya metode berpikir formal yang dituntut matematika - penalaran yang cermat, mencari contoh yang berlawanan, membangun fondasi aksiomatik, menemukan hubungan antar konsep - telah menjadi bantuan yang luar biasa ketika saya menangani proyek pemrograman yang besar dan kompleks.
Pertimbangkan cara para atlet berlatih untuk olahraga mereka. Misalnya, para pesepakbola pasti menghabiskan banyak waktu pelatihan mereka untuk keterampilan dasar sepak bola. Namun, untuk meningkatkan kebugaran umum, mereka mungkin juga menghabiskan waktu di gym dengan sepeda atau mesin dayung, angkat beban, dll.
Mempelajari matematika dapat diibaratkan sebagai latihan beban atau pelatihan silang untuk meningkatkan kekuatan mental dan stamina Anda untuk pemrograman. Sangat penting bagi Anda untuk melatih keterampilan pemrograman dasar Anda, tetapi mempelajari matematika adalah latihan mental yang luar biasa yang meningkatkan kemampuan analitik inti Anda.
sumber
Sementara matematika tingkat lanjut mungkin tidak diperlukan untuk pemrograman (kecuali Anda memprogram kemampuan matematika tingkat lanjut), proses berpikir pemrograman dan matematika sangat mirip. Anda mulai dengan dasar hal-hal yang diketahui (aksioma, teori yang telah terbukti sebelumnya) dan mencoba pergi ke tempat baru. Anda tidak dapat melewati langkah-langkah. Jika Anda melewatkan langkah-langkah, maka Anda akan diminta untuk mengisi bagian yang kosong. Ini adalah proses berpikir kritis yang membuat keduanya sangat mirip.
Juga, matematikawan dan pemrogram sama-sama berpikir kritis dalam abstrak. Hal-hal dunia nyata diwakili oleh objek dan variabel. Kemampuan menerjemahkan dari konkret ke abstrak juga menghubungkan kedua bidang tersebut.
Ada kemungkinan besar bahwa jika Anda ahli dalam satu hal, Anda mungkin juga ahli dalam hal yang lain.
sumber
ilmu komputer! = pemrograman
Ok serius, saya kenal programmer baik dan buruk yang jurusan Bahasa Inggris dan Psikologi dan ada juga yang jurusan Ilmu Komputer. Beberapa orang yang sangat terkenal yang saya kagumi sebagai developer tidak memiliki latar belakang CS. Larry Wall (Perl), misalnya, adalah seorang ahli bahasa. Di sisi lain, mengetahui sesuatu tentang domain yang sedang Anda kerjakan itu membantu karena dengan demikian Anda setidaknya dapat melihat apakah data Anda masuk akal dan membantu pelanggan / pengguna menelusuri apa yang sebenarnya mereka inginkan. Dan ya, ada masalah kompleksitas komputasi dan struktur data yang efisien serta ketepatan program. Itu adalah hal-hal yang Anda pelajari dalam Ilmu Komputer dan itu berguna untuk diketahui di hampir semua domain, tetapi itu tidak perlu atau cukup.
sumber
Saya rasa saya akan menjadi orang pertama yang mengatakan bahwa Anda memang membutuhkan matematika. Seperti yang dikatakan orang lain, matematika tidak terlalu penting untuk aspek perkembangan tertentu, tetapi dasar-dasar pemikiran kritis dan analisis terstruktur sangat penting.
Lebih dari itu, matematika penting dalam memahami banyak hal mendasar yang berhubungan dengan hal-hal seperti penjadwal, pengoptimalan, pengurutan, manajemen protokol, dan sejumlah aspek lain dari komputer. Meskipun matematika yang terlibat dari tingkat kalkulasi tidaklah rumit (sebagian besar adalah aljabar sekolah menengah atas), teori dan aplikasinya bisa sangat kompleks karena pemahaman yang kuat tentang matematika melalui kalkulus akan sangat bermanfaat.
Bisakah Anda bertahan tanpanya, tentu saja, dan Anda tidak boleh membiarkan pengetahuan matematika yang kurang menyeluruh menahan Anda, tetapi jika Anda memiliki kesempatan, atau kecenderungan saya akan belajar matematika sebanyak yang Anda bisa, kalkulus, teori numerik, linier aljabar, kombinatorika, aplikasi praktis, semuanya memiliki aplikasi praktis dan teoritis dalam berbagai ilmu komputer.
Saya mengenal orang-orang yang sangat sukses di kedua sisi pagar (mereka yang tidak terlalu fokus pada matematika, dan mereka yang bersekolah untuk fisika atau matematika), tetapi di kedua kelompok mereka menikmati masalah numerik dan belajar tentang algoritma dan teori matematika. .
sumber
Saya memiliki gelar matematika, tetapi saya tidak ingat pernah mewajibkan matematika itu satu kali dalam karier saya. Itu berguna dalam hal melatih pikiran saya untuk berpikir logis, tetapi saya belum menulis kode apa pun menggunakan dinamika fluida, teori kuantum atau Rantai Markov. (Saya menduga yang terakhir adalah yang paling mungkin muncul.)
Sebagian besar pengembang lini bisnis tidak membutuhkan matematika tingkat lanjut hampir sepanjang waktu. Terkadang mengetahui trigonometri dapat membantu, dan tentu saja mampu memahami matematika yang cukup untuk mengimplementasikan algoritma yang dijelaskan secara matematis bisa menjadi penting - tetapi lebih dari itu? Nah.
Jangan lupa bahwa sebagian besar programmer tidak mengembangkan ilmu komputer - mereka sedang membangun aplikasi. Saya tidak perlu tahu teknik tingkat lanjut untuk mengemudikan mobil modern, meskipun mobil itu hampir pasti telah ditingkatkan melalui rekayasa lanjutan.
sumber
Saya berpendapat bahwa memiliki logika lanjutan (diskrit) matematika sangat membantu. Itu bersama dengan teori himpunan. Saat berurusan dengan program komputer umum, disiplin ilmu ini dapat banyak membantu. Namun, banyak matematika lain yang saya ambil di universitas adalah kalkulus, yang sejauh yang saya bisa lihat, memiliki penggunaan yang sangat terbatas. Karena 90% (atau sesuatu seperti itu) pemrograman melakukan aplikasi bisnis dengan matematika yang sangat sederhana, saya akan mengatakan bahwa sebagian besar, Anda dapat bertahan dengan sedikit pengetahuan matematika. Namun, pemahaman yang baik tentang aljabar boolean, logika, matematika diskrit, dan teori himpunan benar-benar dapat membawa Anda ke level berikutnya.
sumber
Saya akan melawan arus di sini dan berkata "Ya"
Saya beralih dari Teknik Sipil ke pemrograman (Beton Sucks!). Latar belakang matematika saya terdiri dari hal-hal tahun pertama yang biasa, Kalkulus tahun kedua dan ketiga (Diff EQ, integrasi volume, Seri, Transformasi Fourier dan Laplace) dan kursus Analisis Numerik.
Saya menemukan bahwa matematika saya sangat kurang untuk pemrograman komputer. Ada seluruh bidang matematika dan logika Diskrit yang saya lewatkan, dan saya hanya bertahan karena perpustakaan buku teks yang luas, Wikipedia dan Wolfram. Algoritme yang paling canggih didasarkan pada matematika tingkat lanjut, dan saya tidak dapat mengembangkan algoritme lanjutan tanpa melakukan penelitian ekstensif (Pada dasarnya setara dengan pekerjaan setengah kursus.) Saya pasti tidak dapat menghasilkan algoritme BARU, karena saya tidak tidak memiliki dasar matematika sebagai pundak raksasa untuk berdiri.
sumber
Itu tergantung pada apa yang Anda lakukan. Jika kamu banyak melakukan pemrograman 3D tentunya pengetahuan tentang geometri 3D sangat diperlukan, setuju kan? ;-) Jika Anda ingin membuat format gambar baru seperti JPG atau format audio baru seperti MP3, Anda juga akan tersesat jika Anda tidak dapat memahami transformasi cosinus atau fourier, karena ini adalah dasar dari kompresi lossy. . Banyak masalah lain yang bisa diselesaikan dengan lebih baik jika Anda menguasai matematika dengan baik.
Ada juga banyak tugas pemrograman lain yang menurut Anda tidak membutuhkan banyak matematika.
sumber
Jika Anda merasa subjeknya cukup menarik untuk memposting ini, langsung saja dan mulailah belajar. Sisanya akan datang secara alami.
sumber
Ya, tidak perlu matematika tingkat lanjut - jika Anda membuat program komersial - perangkat lunak dari rak.
Namun ketika berhadapan dengan hal-hal hardcore seperti:
Beberapa pengetahuan matematika tingkat lanjut mungkin berguna. Dan bukan berarti mereka adalah masalah "di luar dunia ini".
Saya harus membuat perangkat lunak untuk mencoba "memprediksi" jumlah kertas yang diperlukan untuk sebuah kantor (dan sungguh sulit untuk menemukan cara terbaik untuk memperkirakan nilai).
Anda harus berhati-hati, karena mudah tersesat saat menggunakan hal-hal canggih - ada teman saya yang terpaksa menggunakan Turing untuk menyimpan status menu dinamis hanya untuk menampilkannya dengan benar - humm ... mungkin dia terlalu jauh dalam imajinasinya.
sumber
Jenis pemrograman apa?
Dalam pengalaman komersial saya, saya tidak memerlukan matematika tingkat lanjut, tetapi ini sangat bergantung pada bidang tempat Anda berada.
Grafik komputer membutuhkan banyak matematika tingkat lanjut. Banyak pemrograman komputer akademis membutuhkan matematika tingkat lanjut.
Jadi perkataan cenderung ada korelasi antara orang-orang yang pandai matematika dan orang-orang yang pandai pemrograman.
Saya harap jawaban plin-plan ini membantu.
sumber
Matematika dibutuhkan untuk pengembang di beberapa bidang tetapi hampir tidak berguna di bidang lain.
Jika Anda seorang pengembang game dan harus banyak bekerja dengan fisika - pemahaman tentang matematika sangat penting. Jika Anda bekerja dengan kontrol visual lanjutan - Anda tidak dapat berbuat banyak tanpa geometri. Jika Anda berencana untuk melakukan perhitungan keuangan - akan SANGAT membantu untuk memiliki pengetahuan yang kuat tentang statistik.
Di sisi lain selama 5 tahun terakhir saya hanya memiliki 2 atau 3 proyek di mana jumlah matematika diperlukan sama sekali. Dari jumlah tersebut hanya ada 1 kejadian ketika pencarian Google tidak membantu.
Pada akhirnya, bahkan kalkulasi finansial seringkali menjadi sesuatu yang dilakukan klien Anda untuk Anda dan memberi Anda rumus untuk diterapkan.
Jadi jika Anda berada dalam bisnis 'perangkat lunak terapan', kemungkinan besar Anda tidak akan pernah menggunakan gelar matematika Anda. Jika Anda berada di perangkat lunak akademik, matematika sangat penting.
sumber
Saya setuju dengan Chris. Saya juga akan mengatakan "Ya". Tetapi ini tergantung pada pasar Anda seperti yang dinyatakan di atas. Jika Anda hanya membuat beberapa aplikasi dasar "siap pakai" atau alat tulis untuk membantu pekerjaan Anda sehari-hari ... maka matematika tidak terlalu penting.
Solusi rekayasa perangkat lunak khusus membutuhkan banyak pemecahan masalah dan pemikiran kritis. Keterampilan yang paling pasti ditingkatkan saat latar belakang matematika hadir. Saya mempelajari Matematika dengan gelar Teknik Komputer dan saya menghargai semua latar belakang saya yang berorientasi pada matematika tentang mengapa saya berada di tempat saya saat ini.
Itu adalah 2 sen saya, saya tahu dari membaca di atas bahwa banyak yang tidak setuju. Saya mendorong semua untuk mempertimbangkan bahwa saya tidak mengatakan Anda tidak dapat memiliki keterampilan itu tanpa latar belakang matematika, saya hanya menyatakan bahwa keterampilan tersebut adalah efek samping dari memiliki latar belakang seperti itu dan dapat memengaruhi perangkat lunak secara positif.
sumber
Dalam pengalaman saya, matematika diperlukan dalam pemrograman, Anda tidak bisa lepas darinya. Seluruh pemrograman didasarkan pada matematika.
Masalahnya bukan hitam dan putih, tapi lebih berwarna. Pertanyaannya bukanlah apakah Anda membutuhkan matematika atau tidak, tetapi seberapa banyak. Tingkat matematika yang lebih tinggi akan memberi Anda lebih banyak alat dan membuka pikiran Anda ke jalur yang berbeda.
Misalnya, Anda dapat memprogram jika Anda hanya mengetahui penjumlahan dan pengurangan. Saat perkalian diperlukan, Anda harus melakukan banyak penambahan. Perkalian menyederhanakan penambahan berulang. Aljabar memungkinkan seseorang untuk menyederhanakan matematika sebelum menerapkannya ke dalam program. Aljabar Linear menyediakan alat untuk mengubah gambar. Aljabar Boolean menyediakan mekanisme untuk mereduksi semua
if
pernyataan tersebut.Dan jangan lupakan saudara kandung dari Matematika, Logika dan Filsafat. Logika akan membantu Anda membuat penggunaan
case
atauswitch
pernyataan secara efisien . Filsafat akan membantu Anda memahami pemikiran orang yang menulis kode yang sedang Anda modifikasi.Ya, Anda tidak perlu banyak matematika untuk menulis program. Beberapa program mungkin membutuhkan lebih banyak matematika daripada yang lain. Lebih banyak pengetahuan matematika akan memberi Anda keuntungan dibandingkan mereka yang memiliki pemahaman lebih rendah. Saat ini, orang membutuhkan setiap keuntungan yang bisa mereka peroleh untuk mendapatkan pekerjaan itu.
sumber
Saya telah memprogram selama 8 tahun secara profesional, dan sejak saya berusia 12 tahun sebagai hobi.
Matematika tidak diperlukan, logika diperlukan. Meskipun demikian, matematika sangat membantu, mengatakan bahwa itu tidak perlu sama dengan mengatakan bahwa untuk membunuh seseorang, senjata tidak diperlukan, Anda dapat menggunakan pisau. Memang benar, tapi senjata itu membuatnya jauh lebih mudah.
Ada beberapa minimal, yang harus Anda penuhi. Anda perlu mengetahui ekspresi dan notasi aljabar dasar, dan persamaan komputer yang umum. Misalnya, Anda perlu mengetahui apa itu eksponensial (3 ke 3 adalah 27), dan ekspresi komputer yang umum adalah 3 ^ 3. Notasi umum untuk aljabar memang berubah antarbahasa, tetapi banyak dari mereka menggunakan metodologi yang agak seragam. Orang lain (melihat Anda LISP) tidak. Anda juga perlu mengetahui urutan operasi.
Anda perlu memahami pemikiran algoritmik. Pertama ini, lalu ini, menghasilkan ini yang digunakan dalam perhitungan ini. Kemungkinan Anda memahami ini atau tidak, dan ini adalah rintangan yang cukup sulit untuk dilewati jika Anda tidak memahaminya; Saya telah menemukan bahwa ini adalah sesuatu yang Anda 'dapatkan', dan sebenarnya bukan sesuatu yang dapat Anda pelajari. Sebaliknya, sebagian orang tidak 'mengerti' seni. Mereka seharusnya tidak menjadi pelukis. Juga, ada siswa dalam kurikulum Ilmu Komputer yang tidak mengerti mengapa ini tidak berhasil: x = z + w; z = 3; y = 5; Bukan karena mereka tidak memahami penjumlahan, itu karena mereka tidak memahami persyaratan ekspresi yang tidak ambigu. Jika mereka memahaminya, komputer juga harus, bukan? Jika Anda tidak dapat melihat apa yang salah dengan ketiga baris di atas, maka jangan menjadi programmer.
Terakhir, Anda perlu mengetahui matematika apa pun yang ada di bawah domain pemrograman Anda. Software akuntansi dapat berhenti pada aljabar dasar. Jika Anda memprogram fisika, Anda perlu mengetahui fisika (secara longgar) dan matematika dalam geometri 3 dimensi (Euclidean). Jika Anda memprogram perangkat lunak arsitektur, Anda perlu mengetahui trigonometri.
Ini berjalan lebih jauh dari matematika; untuk domain apa pun Anda memprogram, Anda harus benar-benar memahami dasar-dasarnya. Jika Anda adalah perangkat lunak analisis bahasa pemrograman, Anda harus mengetahui probabilitas, statistik, teori tata bahasa (berbagai bahasa), dll.
Sering kali, domain tertentu membutuhkan, atau bisa mendapatkan keuntungan dari, pengetahuan yang menurut Anda tidak terkait. Misalnya, jika Anda memprogram perangkat lunak audio, Anda sebenarnya perlu mengetahui trigonometri untuk menangani bentuk gelombang.
Besaran mengubah banyak hal juga. Jika Anda menyortir kumpulan data keuangan yang terdiri dari 1000 item, itu bukan masalah besar. Namun, jika itu adalah 10 juta record, Anda akan mendapat banyak manfaat dari mengetahui matematika vektor sebenarnya, dan memiliki pemahaman yang mendalam tentang pengurutan pada tingkat biner (bagaimana sistem mengurutkan menurut abjad? Bagaimana ia mengetahui 'a' kurang dari 'b '?)
Anda akan menemukan bahwa sebagai seorang programmer, basis pengetahuan umum Anda akan meledak, karena setiap proyek akan membutuhkan lebih banyak pembelajaran di luar lingkup langsung pemrograman. Jika Anda mual atau malas belajar mandiri, dan tidak suka menghabiskan 10+ jam seminggu untuk melakukan 'pekerjaan rumah', jangan menjadi programmer.
Jika Anda suka latihan pikiran, jika Anda suka belajar, jika Anda dapat memikirkan hal-hal abstrak seperti matematika tanpa kalkulator atau desain tanpa sketsa, jika Anda memiliki selera yang luas dalam hidup dan hobi, jika Anda kritis terhadap diri sendiri dan dapat membuang ' ide favorit, jika Anda suka menyempurnakan sesuatu, maka jadilah seorang programmer. Jangan mendasarkan keputusan ini pada matematika, tetapi lebih pada kemampuan untuk berpikir logis dan belajar. Itulah yang penting; matematika hanyalah hasil sampingan.
sumber
Tentu saja itu tergantung pada jenis programmer yang Anda inginkan, atau lebih baik programmer seperti apa yang diinginkan oleh perusahaan Anda. Saya pikir kalkulus dan aljabar itu penting, statistik dan pemrograman linier memang alat yang bagus untuk dimiliki di tas Anda, mungkin analisis (turunan, integral, fungsi ...) dapat dilakukan tanpa. Tetapi jika Anda ingin mengetahui bagaimana segala sesuatunya bekerja sedalam-dalamnya (elektronik, misalnya, atau beberapa algoritme non-sepele) matematika "tingkat lanjut" adalah sesuatu yang sebaiknya Anda tidak pergi tanpa kemana-mana.
sumber
Sebagian besar pemrograman yang saya lakukan melibatkan simulasi fisika untuk penelitian termasuk hal-hal seperti elektromagnetisme, mekanika kuantum, dan mekanika struktural. Karena domain masalah memiliki matematika tingkat lanjut yang terkait dengan mereka, saya akan kesulitan menyelesaikannya tanpa menggunakan matematika tingkat lanjut.
Jadi jawaban atas pertanyaan Anda adalah - tergantung pada apa yang Anda coba lakukan.
sumber
Pengetahuan matematika tingkat lanjut sangat penting jika Anda akan menulis bahasa pemrograman baru. Atau Anda perlu menulis algoritme Anda sendiri.
Namun, untuk sebagian besar pemrograman sehari-hari - dari situs web hingga aplikasi pemrosesan asuransi - hanya matematika dasar yang diperlukan .
sumber
Seseorang dengan matematika yang solid (yang bukan hanya aritmatika) atau latar belakang logika akan mengatasi dengan baik algoritma, penggunaan variabel, penalaran bersyarat dan struktur data.
Matematika akan membantu Anda pada suatu titik, tetapi hanya pada suatu titik.
sumber
Saya tidak berpikir bahwa pengetahuan matematika tingkat lanjut adalah persyaratan untuk pemrogram yang baik, tetapi berdasarkan pengalaman pribadi saya berpikir bahwa pemrogram yang memiliki pemahaman yang lebih baik dalam matematika tingkat lanjut juga akan menjadi pemrogram yang lebih baik. Ini mungkin hanya karena pikiran yang lebih logis, atau pandangan yang lebih logis karena pengalaman mereka dalam memecahkan masalah matematika.
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 memerlukan aljabar vektor dan kalkulus kecuali Anda melakukan tugas-tugas seperti grafik 3D atau simulasi fisika, misalnya), tetapi kumpulan keterampilan yang mendasarinya identik, dan kurangnya kemampuan dalam satu domain akan diimbangi dengan kurangnya kemampuan yang sesuai di domain lain.
sumber
Matematika adalah kotak peralatan untuk membuat program. Saya merekomendasikan Pengantar Algoritma Cormen. Ini menyentuh hal-hal yang lebih "matematika".
sumber
Saya tidak berpikir bahwa matematika yang lebih tinggi adalah persyaratan untuk menjadi programmer yang baik - karena selalu tergantung pada apa yang Anda kodekan.
Tentu saja jika Anda berada dalam pemrograman grafis 3D, Anda memerlukan matriks dan lainnya. Sebagai penulis perangkat lunak bisnis, Anda mungkin memerlukan matematika statistik.
Tapi menjadi programmer profesional selama hampir 10 tahun (dan 10 tahun amatir lagi) "matematika yang lebih tinggi" bukanlah sesuatu yang saya butuhkan secara teratur. Dalam sekitar 99,8% dari semua kasus, itu hanya plus, minus, pembagian, dan perkalian dalam beberapa kombinasi cerdas - dalam banyak kasus ini tentang algoritma, bukan matematika.
sumber
Mempelajari matematika tingkat tinggi, bagi sebagian besar pemrogram, adalah penting karena hal itu membuat otak Anda tertekuk untuk berpikir secara logis, dengan cara langkah demi langkah untuk berpindah dari satu hal ke hal lain.
Namun, sangat sedikit pekerjaan pemrograman yang membutuhkan apa pun di atas matematika sekolah menengah. Saya pernah menggunakan aljabar linier sekali. Saya tidak pernah menggunakan kalkulus. Saya menggunakan aljabar setiap hari.
sumber
Pengetahuan matematika sering berguna bagi seorang programmer, seperti juga keterampilan desain grafis, kemampuan memecahkan teka-teki, etos kerja, dan sejumlah keterampilan dan sifat lainnya. Sangat sedikit programmer yang pandai dalam segala hal yang mungkin bisa dilakukan oleh seorang programmer. Saya tidak akan setuju dengan pernyataan apa pun dalam bentuk "Anda bukan pemrogram sungguhan kecuali Anda dapat { masukkan kemampuan pemrograman favorit di sini }".
Tapi saya akan waspada terhadap seorang programmer yang tidak bisa mengerjakan Matematika. Lebih dari orang yang tidak bisa menggambar.
sumber
Saya pikir itu sangat tergantung pada apa yang Anda coba lakukan, tetapi IMHO, teori CS dan OS lebih penting daripada matematika di sini, dan Anda benar-benar hanya membutuhkan matematika yang mereka libatkan.
Misalnya, ada banyak latar belakang CS teori penjadwalan dan pengoptimalan yang berdiri di belakang banyak penjadwal di OS modern. Itu adalah contoh dari sesuatu yang membutuhkan matematika, meskipun bukan sesuatu yang sangat rumit.
Tapi sejujurnya, untuk banyak hal, Anda tidak membutuhkan matematika. Yang Anda butuhkan adalah mempelajari kemampuan berpikir di basis 2 dan 16, seperti kemampuan mental OR / AND. Misalnya, jika Anda memiliki satu byte dan di dalam byte itu ada dua bidang 3-bit dan 2 bit yang terbuang, mengetahui bit mana yang berada di bidang mana yang aktif ketika nilai byte adalah seperti 11 akan membuat segalanya sedikit lebih cepat daripada harus menggunakan pena dan kertas.
sumber
Saya memulai pemrograman pada waktu yang sama ketika saya memasuki kelas pra-aljabar .. Jadi saya tidak akan mengatakan matematika adalah yang terpenting, meskipun itu dapat membantu dalam jenis pemrograman tertentu, terutama fungsional.
Saya belum mengambil Matematika Diskrit, tapi saya melihat banyak teori dengan pemrograman yang ditulis dalam notasi matematika yang diajarkan di kelas ini.
Selain itu, pastikan Anda tahu cara menghitung apa pun di basis apa pun, terutama basis 2, 8, dan 16.
Juga, satu kelas yang benar-benar membawa pulang beberapa konsep bagi saya adalah kelas pra-pemrograman ini. Kami diajari tentang persatuan, persimpangan, dan semua hal menyenangkan itu dan itu hampir paralel dengan matematika. Dan kami membahas logika boolean dengan sangat berat. Apa yang saya anggap paling berguna adalah ketika kita belajar bagaimana mengurangi pernyataan boolean yang kompleks. Ini sangat berguna:
dapat disederhanakan menjadi
Yang sebelumnya tidak saya pahami.
sumber
Nah, Anda menghasilkan sejumlah tanggapan, dan tidak, saya tidak membaca semuanya. Saya di tengah-tengah ini, tidak, Anda tentu tidak perlu matematika untuk menjadi seorang programmer. Assembler vs device driver di linux tidak lebih atau kurang rumit dari yang lain dan tidak membutuhkan matematika.
Anda sama sekali tidak perlu mengambil atau lulus kelas matematika untuk semua ini.
Saya setuju bahwa pola pikir pemecahan masalah untuk pemrograman sangat mirip dengan solusi matematika, dan sebagai hasilnya matematika mungkin datang dengan mudah. atau sebaliknya jika matematika itu sulit maka pemrograman mungkin sulit. Kelas atau gelar atau potongan kertas atau piala tidak diperlukan, pergi dan belajar sesuatu, tentu saja.
Sekarang jika Anda tidak dapat mengubah dari heksadesimal ke biner ke desimal dengan cepat baik di kepala Anda, di atas kertas, atau menggunakan kalkulator, Anda akan kesulitan. Jika Anda ingin masuk ke jaringan dan hal-hal lain yang melibatkan pengaturan waktu, driver kernel mana yang sering dilakukan tetapi tidak perlu. Anda akan berjuang. Saya mengetahui daftar yang sangat panjang dari orang-orang dengan gelar matematika dan / atau ilmu komputer, dan / atau gelar teknik yang kesulitan dengan penghitungan laju, bit per detik, byte per detik, berapa banyak memori yang Anda perlukan untuk melakukan sesuatu, dll. Untuk dalam beberapa hal hal itu dapat dianggap semacam bakat yang dimiliki beberapa orang dan yang lainnya harus diupayakan.
Intinya saya adalah saya percaya pada kekuatan kemauan, jika Anda ingin mempelajari hal-hal ini, Anda bisa dan mau, sesederhana itu. Anda tidak perlu mengambil kelas atau menghabiskan banyak uang, linux dan qemu misalnya dapat membuat Anda sibuk untuk beberapa waktu, bahasa asm yang berbeda, dll. Lingkungan yang dapat dihancurkan untuk pengembangan kernel, tertanam, dll. Anda tidak terbatas pada itu , tetapi saya tidak percaya bahwa Anda harus lari dan mengambil kelas apa pun jika Anda tidak mau. Jika Anda ingin mengambil beberapa kelas, beberapa kelas cs dan beberapa kelas matematika ..
sumber
Anda membutuhkan matematika. Pemrograman tidak lebih dari matematika. Setiap temuan fisika teoretis tidak menjadi implikasi praktis (dapat diterapkan), kecuali jika dijelaskan dalam istilah solusi matematika. Tak satu pun dari masalah tersebut dapat diselesaikan secara komputasi jika tidak dapat diinterpretasikan pada komputer, dan lebih khusus lagi pada bahasa pemrograman. Dengan demikian, bahasa yang berbeda dirancang untuk memecahkan masalah tertentu. Tetapi untuk tujuan umum dan bahasa pemrograman yang tersebar luas seperti java, c, c ++ banyak tugas pemrograman kami melibatkan solusi berulang (berkelanjutan) untuk masalah yang sama seperti mengekstrak nilai dari database, file teks, meletakkannya di windows (desktop, web), memanipulasi nilai yang sama, terkadang mengakses beberapa data dari perangkat serupa (tetapi diberi nama merek yang berbeda, port yang berbeda dan sakit kepala) dll yang tidak melibatkan lebih dari metode kesatuan,
sumber
IMO, Anda mungkin membutuhkan bakat untuk matematika, tanpa harus memiliki banyak pengetahuan di bidangnya. Jadi, hal-hal yang Anda butuhkan untuk menjadi ahli dalam matematika sama dengan hal-hal yang Anda butuhkan untuk menguasai pemrograman.
Tetapi secara umum, saya tidak dapat mengingat kapan terakhir kali saya menggunakan matematika tingkat lanjut apa pun dalam pemrograman sehari-hari, jadi tidak.
sumber