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 )
en.wikipedia.org
- 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 )