Programlama için gereken matematik bilgisi

Merhaba, genel tanımlar dışında matematiğe mantık bakış açısı ile yaklaştığımız taktirde yazılım alanında olmazsa olmaz diyebiliriz. Matematik sayıların işlem görmesi neticesinde gerçekleşen bir bilim dalı değildir. :) taktir edersiniz ki yazılım mantığı, karmaşık yapıları temel alır ve çözümler. Bu çözümlemenin arka planında neler döndüğünü bilmeyen yazılımcılara kısaca "CTRL+C / CTRL+V" takımı diyoruz. İşlerin büyük bir kısmını, arka planda dönen olaylara hakim personeller ile ilerletiyoruz diyebilirim.
 
Programlama yapabilmek için ne kadar matematik bilmek lazım? Mesela aritmetik, pre-algebra ve biraz da algebra (cebir) bilen bir kimse HTML-CSS-JavaScript ile güzel web projeleri yapabilir mi? Veya Python ile ne bileyim, bir bot yazabilir mi? Veya Unix'te uzman olabilir mi?

İşin derinine inmek için kalkülüs mü bilmek lazım? Yoksa bu derin kısımla ilgilenenler, programcıların çok ufak bir yüzdeliğini mi oluşturuyor?

Şu konuya bir açıklık getirebilir misiniz? Bilhassa sizin yorumunuzu merak ediyorum @bitwise

Bu cok soruluyor.

Eger uzerinde calistigin proje icin ileri matematik gerekmiyorsa ve hazir kutuphaneleri kullanmak problemi cozmen icin yeterliyse gerek yok. Sadece 4 islem ve boolean algebra yapabiliyor olman kafi. Ozet olarak -> kiyiya yakin yuzeceksen hayir, acilacaksan kesinlikle evet.

Eger ozel ihtiyaclara proprietary cozumler gelistiriyor, standart kutuphanelerde bulunan ozellikler seni kesmiyorsa kesinlikle gerekli.

Ancak:

- Eger sifirdan web framework ya da isletim sistemi yazacaksan scheduling theory bilmen gerekir. ( Scheduling theory - Encyclopedia of Mathematics ) Kaynaklari optimal sekilde harcamalisin, starvation ve deadlock yaratmamalisin. Hic dusundunuz mu kullandiginiz isletim sistemi arkada acik onlarca process'i hangi sirayla calistiracagina nasil karar veriyor diye? En dogru karar nasil olmalidir peki? 4500 tane process var fakat 20 tane thread var, nasil karar verecegiz hangisini hangi sirayla calistiracagimiza? Cozum -> Scheduling theory.

- Veri tabani ya da Neural network icin pooling yapacaksan Lp pooling fonksiyonlarini bilmen gerekir.

- Snowflake gibi ( Snowflake Data Cloud | Enable the Most Critical Workloads ) non-structured data destegi veren RDBMS yaziyorsundur, Set theory bilmelisin. ( Fuzzy, Descriptive vs )

- Functional programming paradigmasini destekleyecek yeni bir dil uzerinde calisiyorsundur, Category Theory bilmelisin. ( Morphism, Monad vs Haskell yazanlar bilir az cok )

- Black Friday gunu tekil 200 kisiye hizmet veren bir yazilim ihrac ediyorsundur silikon vadisi firmalarina ( biz yapiyoruz bunu ) , O halde kullandigin dildeki default sort() fonksiyonu nasil calisiyor elin parmagin gibi bileceksin. Hangi algoritmayi kullaniyor, time ~ mem complexity nasil degisiyor. Data icin uygun mu? Bu da bizi suraya goturuyor -> Sorting algorithm - Wikipedia

- Elinde neye gore degistigini bilmedigin bir davranis datasi vardir, gradient descent algoritmasi yapiyorsundur ama sonuclar cok degisken oldugu icin momentum destegi vermek istiyorsundur -> Stochastic Gradient Descent with momentum

Yazilim muhendisleri yetistirilirken her alanda calisabilecek, Computer Science'in tum alt branslarina yonelebilecek formasyonda yetistirilirler. Bu yuzden evet, baya ciddi matematik bilgisi gerekir.

---

Sonuc olarak baskasinin yazdigi scheduling kutuphanelerini, pooling ve sort algoritmalarini kullanip sadece 3 satir kod yazarak "Web sitesi" olusturabiliyor. Piyasadaki yazilim ihtiyacinin %80'i icin 4 islem yeterli. Cunku geri kalan %20'yi baskalari sizin icin yaziyor.

Kullandigi kutuphanelerin arkada nasil calistigini bilmeyen, bildigini iddia ettigi programlama dilinin hangi sort algoritmalarini kullandigini dahi bilmeyen bebeler sagda solda bu is icin matematigin cok da gerekli olmadigi konusunda fazlaca sacmalayabiliyorlar. Zaten bunun bir adim sonrasi "copy + paste yapiyorlar" diyen tayfadir.

Tum bu dediklerime ek olarak, zaten matematiksel yaklasim ve analitik zeka programlama icin sart. Cok calismasina ragmen matematigi beceremeyen birisinde bu zeka yoktur ve cok calismasina ragmen muhtemelen programlamayi da beceremez. ( ileri seviyelerde )
 
Son düzenleme:
Kıymetli vaktinizi ayırıp cevap verdiğiniz için başta size @bitwise ve diğer tüm arkadaşlara çok teşekkür ederim.

Böyle rafine bilgileri Türkçe dilinde bulmak, sizin de malumunuz, çok kolay olmuyor. Bu yüzden minnettarım size. Ufkumuzu genişletiyorsunuz.
Aradığım cevabı buldum sayenizde. Tekrardan çok teşekkürler.
 
Ne kadar çok matematik biliyorsan o kadar iyi. Programlama matematikle alakası yok diyenler sıkıyor. Bu iş olsa olsa matematiğin alt dalı olur ve ne kadar matematik o kadar iyi program yazabilmek.
 
yazacagin projeye gore degisir bu hakkimizda iletisim neredeyiz icin gerekmez ama bir muhasebe programi yaziyorsan matematik islemlerini yapman gerekir :)
senin programlamada ki matematik bilgin sorusu tam olarak neyi ifade ediyor sinus minus yok yani kodlama esnasinda ama o kodlarin makine diline gecmesi esnasinda matematik donuyor o yuzden platform uzerinden yazdigimiz icin direk makine dilinde yazmadigimiz icin bizim matematik islemlerini programlar kendileri hallediyor
 

Geri
Yukarı