Saya menemukan sebuah situs web yang mengatakan bahwa kalkulus dan aljabar linier diperlukan untuk Pemrograman Sistem.
Pemrograman Sistem, sejauh yang saya tahu, adalah tentang osdev, driver, utilitas, dan sebagainya. Saya hanya tidak tahu bagaimana kalkulus dan aljabar linier dapat membantu dalam hal itu. Saya tahu bahwa kalkulus memiliki beberapa aplikasi dalam sains, tetapi dalam bidang pemrograman khusus ini saya tidak dapat membayangkan betapa kalkulus bisa begitu penting.
Informasi ada di situs ini: http://www.wikihow.com/Become-a-Programmer
Sunting: Beberapa jawaban di sini menjelaskan tentang kompleksitas dan optimisasi algoritma. Ketika saya mengajukan pertanyaan ini, saya mencoba untuk lebih spesifik tentang bidang Pemrograman Sistem. Kompleksitas algoritma dan pengoptimalan dapat diterapkan ke area pemrograman apa pun, tidak hanya Pemrograman Sistem. Mungkin itulah sebabnya saya tidak dapat memikirkan hal itu pada saat pertanyaan itu.
sumber
Jawaban:
Saya akan membayangkan itu tidak terlalu penting jika Anda menulis utilitas non GUI di atas sistem operasi modern tanpa bekerja pada internalnya. Ini mungkin cerita yang berbeda jika Anda berupaya mengubah sistem operasi modern atau mengembangkan yang baru.
Jika Anda bekerja dengan perangkat keras video atau sistem windowing logam kosong, Anda akan memerlukan pengetahuan tentang aljabar linier untuk memperbarui grafik secara efisien. Saya belum melihat diri saya, tetapi saya yakin Anda dapat menemukan contoh dalam kode sumber untuk X, KDE dan Gnome.
Jika Anda bekerja dengan perangkat keras mengenai pemrosesan sinyal digital maka kalkulus akan sangat penting. Saya membayangkan ada beberapa perangkat yang melakukan pengangkatan berat dengan CPU sistem daripada mikroprosesor lokal dan ini sering antarmuka ke sistem listrik analog.
Juga kalkulus memainkan peran penting dalam analisis kinerja selain hanya aljabar linier ketika mencoba menyesuaikan kurva dengan data.
sumber
Komentar SomeKittens benar dalam soal uang: Anda perlu kalkulus dan aljabar linier karena kursus-kursus itu mengubah cara Anda berpikir dan cara Anda memahami dunia. Aljabar linier adalah tentang pemetaan dari satu domain ke domain lainnya; kalkulus mencakup cara berperilaku. Mereka sendiri adalah alat yang ampuh, tetapi teknik yang Anda pelajari ketika mempelajari bidang itu juga menjadi bagian dari gambaran mental Anda tentang dunia.
Anda juga memerlukan kursus-kursus itu karena orang-orang akan mengharapkan Anda untuk dapat berpikir dalam istilah-istilah itu. Saya tidak sering melihat kolega saya mengambil turunan polinomial pada papan putih mereka, tetapi saya sering melihat sketsa fungsi dengan garis singgung digambar di beberapa titik menarik, atau area di bawah kurva berbayang. Kami tidak cukup peduli dengan nilai aktual sehingga tidak perlu menghitungnya, tetapi memahami tentang bagaimana nilai berubah sangat penting, dan itu adalah bagian dari percakapan sehari-hari.
Setiap gelar ilmu komputer sarjana akan memerlukan kalkulus, aljabar linier, statistik, logika, dan kursus matematika lainnya bukan karena programmer perlu menerapkan teknik secara langsung secara teratur (meskipun mereka mungkin, tergantung pada apa yang mereka lakukan), tetapi karena Anda memerlukan itu pengetahuan untuk memahami materi yang datang kemudian.
sumber
Saya akan melanjutkan dan mengatakan bahwa saya tidak berpikir kalkulus atau aljabar linier cenderung penting untuk pemrograman sistem.
Saya tentu berpikir kalkulus dan aljabar linier layak dipelajari secara umum - Saya seorang pria matematika! Dan, seperti jawaban lain tunjukkan, ada beberapa relevansi tidak langsung, karena analisis kinerja dan desain algoritma dapat menggunakan matematika tingkat lanjut. Namun, saya tidak berpikir pemrograman sistem lebih tergantung pada jenis-jenis matematika daripada kebanyakan bidang lain yang umumnya tidak dianggap sebagai matematika.
sumber
Saya menduga itu benar di tepinya. Pemrogram sistem harus jauh lebih memperhatikan kinerja dan keandalan, sehingga analisis algoritma mungkin penting, dan kalkulus kadang-kadang diperlukan untuk bukti analisis Big-Oh. Subjek seperti teori antrian dan optimasi diskrit (optimasi matematis bukan optimasi kode) juga dapat berperan. Namun saya pikir itu sebagian besar akan berlaku untuk orang yang bekerja di tepi pendarahan sistem operasi dan protokol jaringan, tidak begitu banyak orang yang bekerja pada driver USB 3.0.
sumber
Definisi Anda tentang Pemrograman Sistem cukup sesuai dengan jawaban di Wikipedia.
Jika Anda berpikir tentang apa yang disediakannya - yaitu. antarmuka perangkat lunak ke dalam perangkat keras, maka mulai masuk akal mengapa kalkulus dan aljabar linier adalah keterampilan praktis yang harus dimiliki.
Mengabstraksi bahwa antarmuka level rendah mengharuskan Anda untuk memahami bagaimana perangkat beroperasi. Perangkat elektronik masih terikat oleh hukum fisika. Kalkulus dan aljabar linier menyediakan sarana untuk memodelkan perilaku perangkat. Memodelkan perangkat memungkinkan Anda memberikan layanan ke dalam fungsinya.
Yang telah dikatakan, kedua bidang itu bukanlah segalanya untuk Pemrograman Sistem. Saya tahu beberapa EE yang tidak melakukannya dengan baik dengan kalkulus dan aljabar linier tetapi masih bisa menjelaskan apa yang dilakukan perangkat dengan cukup ringkas.
sumber
Aplikasi web umum dan / atau pemrograman administratif tidak melibatkan banyak aplikasi aljabar linier atau kalkulus, tetapi banyak bidang spesialis melakukannya. Jika Anda berurusan dengan geometri, Anda terikat dengan aljabar linier. Sebagian besar pemrograman fisika juga membahas aljabar dan kalkulus. Serta hampir semua yang berkaitan dengan manipulasi gelombang, seperti suara dan pemrograman radio. Secara umum lebih penting untuk memahami matematika diskrit yang, antara lain, berkaitan dengan teori himpunan, teori grafik dan logika formal (boolean) yang berguna dalam banyak aplikasi seperti manajemen informasi, basis data dan tempat-tempat lain di mana data dan / atau logika digabungkan . Dalam hal pemrograman Sistem saya tidak melihat banyak aplikasi.
sumber
Seperti yang telah disebutkan orang lain, setiap kursus matematika di universitas dapat mempertajam keterampilan memecahkan masalah dan penalaran deduktif Anda. Ini penting bagi hampir semua orang.
Tetapi kadang-kadang mengetahui beberapa aljabar linier dapat membantu, terutama untuk beberapa ide bisnis yang cukup bagus .
sumber
Dengan kalkulus itu sangat mudah, segera setelah seseorang melihat lebih dekat isi kursus . Ini terkait erat dengan kompleksitas algoritma, notasi Big-O - hal-hal seperti itu, cukup mendasar dalam pemrograman.
Persamaan adalah apa yang Anda dapatkan ketika memperkirakan kompleksitas algoritma. Tiga tingkat loop bersarang dari
0
menjadiN
N 3 , loop dua tingkat bersarang adalah N 2 , satu adalah N. Evaluasi Anda bisa terlihat seperti (N 3 + 2 * N 2 + N) - itu persamaan.Sekarang, jika Anda ingin lebih memahami seberapa cepat waktu eksekusi akan tumbuh ketika N meningkat, ini terkait erat dengan turunan / diferensiasi. Bagian lain dari kalkulus yang Anda temukan bermanfaat adalah batasan dan analisis asimptotik - ini akan mengarahkan Anda untuk memahami notasi O-Besar, penilaian yang lebih baik pada wawancara pemrograman dan mungkin, lebih baik melakukan pemrograman sistem.
Adapun Aljabar Linier , di sini aplikasi pemrograman menembak pada Anda dari gambar pertama.
Jika Anda harus berurusan dengan grafik raster (misalnya dalam driver video), gambar seperti di atas akan datang pada Anda dalam mimpi terburuk Anda.
sumber