Matematik, fizik gibi formel bilimler size olaylara belli bir bakış açısı ile bakmayı öğretiyor. Analitik düşünme, problemlere parçalar halinde bakma gibi. Yazılım da bununla doğrudan ilişkili. Düzgün, bakımı kolay yazılım geliştirmek istiyorsanız yine benzer yaklaşımda olmanız gerekiyor. Bence bunu yapabilmek için illaki iyi derecede matematik, fizik bilmeniz gerekmiyor.
Yaziya buyuk oranda katiliyorum.
Ancak bu kismi insanlar gozardi ediyor. Hangi programlama dilini secerse secsin kimse orada kullandigi temel fonksiyonlarin arkasinda bile tonla matematik var. Hash hesaplari, collision optimizasyonlari, kriptografik fonksiyonlar vs.
Bunlari alip kullanmak, sonucunda "calisir" yazilim gelistirmek icin elbette hepsini ogrenmesine hatta matematik bilmesine bile gerek kalmiyor. Bu da "matematige gerek yok" gibi bir algi olusturuyor. Evet, cunku birileri o matematigi uygulamis, "general-purpose" optimize etmis ve hazir sunmus. Tum bunlar arka planda deli gibi matematik dondugu gercegini sakliyor yalnizca.
Ornegin Java'daki HashMap
new HashMap<>()
seklinde construct edip geciyor insanlar. Bu kodu hatri sayilir bir silikon vadisi firmasinda yazarsaniz reject yersiniz.
Cunku elinizdeki probleme gore uygun kapasite ve load factor ile construct etmediniz.
Pythonda da benzer sekilde
x = {'a':3}
yapip gecilebilir. Ancak onun da load-factor ve custom "hashable" implementasyonlari ile optimizasyonu saglanabiliyor.
Python dictionaries are an extremely important part of Python. Of course they are important because programmers use them a lot, but that's not the...
tenthousandmeters.com
Bunlar sadece basit veri yapilarinin ardindaki matematik ve optimizasyon olanaklari.
Bu parametrelerin ( load_factor, collision vs ) ne oldugunu bilmek icin de formal egitim almis olmasi gerekiyor muhendisin. ( bkz:
Hash table - Wikipedia )
Siradan bir yazilim gelistiricinin bunlari kullanmadiginin, muhtemelen ihtiyacinin olmadiginin ve hatta bilmediginin de farkindayim. Zaten piyasadaki gereksinimlerin %99 u hazir kutuphanelerin/frameworklerin duzgunce bootstrap edilmesinden ibaret. Bu konudaki bazi insanlarin kafasinin basmadigi sey, yazilimin arkasindaki matematigin onemini isaret etmenin problemi en pratik sekilde cozmeye karsi bir arguman olmadigi gercegi. Kaldi ki bu isin egitimi alan kisi henuz Google aramasi asamasinda bile dogru keyword'u kullanarak bu cahil cuhela sinifinin onune gecmis oluyor, haberleri yok.