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.