Programmer's Dilemma

Tamam basligi inglizce attik ama bu sadece bir gonderme *


Dilemma, koken olarak nereden gelip nereye gidiyor bilemiyorum ama, sadece 2 seceneginizin olup da hangisini sececeginizi bir turlu bilemediginiz durumlarda kullaniliyor gibi geliyor bana. 

Reinforcement learningde de karsimiza cikan exploration vs exploitation dilemmasi da buna bir ornek olarak gosterilebilir. Daha fazla space'i explore mu etmek gerek yoksa, var olan bir space'i sonuna kadar somurerek exploit etmek mi? 

Bizim gibiler icin bu durum su sekilde karsimiza cikabilir: mevcut isyerinde kalip yukselmeye calismak mi (exploitation) yoksa baska (daha sukseli) firmalara girmeye calismak mi (exploration) ? 

Hadi bunu isyeri olarak dusunup de konuyu gereginden fazla basitlestirmeyelim ama, mevcut durumunu mu korumak vs yeni arayislara mi girmek seklinde yorumlayalim. Meselea bulundugunuz ulkeded kalmak, yerlesmek, entergre olmak (exploitation) vs baska ulkelere (gorunus olarak daha sukseli) mi gitmeye calismak? 

Uzun vadede hangisi daha fazla hayatimiza deger katar bunu kestirmek mumkun degil. Cunku hesaplama ancak geriye donuk olarak yapilabiliyor. Ama zaten hayati da bu sekilde kup kuru bir optimizasyon problemi olarak gormek, ne bileyim, enazindan, bana gore degil. Tam da bunu soyleyerek aslinda benim icin exploration kisminin %51 oldugunu da kendime suanda acik etmis oluyorum :) 

Bu, belki de bir karakter meselesi. 

Hangisi daha "zor" ?

Tabi bu kadar soyut bir konuda bu kadar soyut bir metin yaratma surecine girmis iken, "zor" derken neyi kastediyor olusumuzu hicbir zaman tam olarak ortaya koymamiz mumkun degil. 


Fiziksel/mental zorluk mu? 

Ister diyet, isterse spor gibi direk olarak vucut ile ilgili olan konularda cok basit bir yaklasimim var. Bircok insan, bircok kaynaga basvurur, pekcok yerden yardim ister. Ama ben, sadece vucudunuzu dogru bir sekilde dinlediginizde gerekli sinyalleri alacaginizi ve de kimseden bir yardim almadan (tamam temel bilgiler disinda) yari maratona hazirlanabileceginizi dusunuyorum. Kendim bu sekilde yapiyorum. Ve vucut, herhangi bir antrenman programina gerek olmadan zaten ne istedigini bir sekilde sinyalliyor. Tabi dinlemesini bilir isek. 

Ayni sekilde, eger defaatler exploration yaklasimini gomdu iseniz, ve de o defeatle tekrardan bir yolunu bulup cikti ise, bu da birseyler anlatiyor olabilir. 


Kacma Istegi Riski

Burada bir tehlike var ki, mevcut durumunuzdan memnun olmadiginiz icin, exploitation secenegini secmiyor olabileceginiz. Yani gercekten bir exploration istegine mi sahipsiniz yoksa mecvut durumdan kacmak mi istiyorsunuz bunu bir sekilde anlamamiz gerekli. 

Elbette insan hayatin her aninda bir takim zorluklar ile karsilasiyor. Hele ki biz programcilar icin karsilasilacak olan zorluklarin haddi hesabi yok. Biraz da bu yuzden bu meslek bu kadar iyi maaslara sahip. Fiziksel , psikolojik ve sosyal bircok yetenegi gelistirmeniz gereken, sonu olmayan bir disiplin. 

Belki de exploration tanimlamasini, bu bahsettimiz riski de explore edecek sekilde genisletebiliriz. Zaten daha once de bahsettigimiz gibi toplamda elde edilecek olan deger sadece geriye donuk  olarak hesaplanabiliyor.  Bu durumda, exploration secenegini sectigimizde, mevcut durumdan kacmak icin mi exploration secenegini istedigimiz sorusuna da cevap ariyor olacagiz. Ve belki de yeni seyler explore ettikce, sadece bir kacis oldugunu anlayacagiz ya da gercekten istedigimiz seyin exploration olduguna kanaat getirecegiz. 

Ozetle, bu risk var, ama cevap onceden bilinemez


Exploration, Exploitation'a engel mi?

Sonucta ikisi de enerji/zaman gerektiren aktiviteler. Ama bu interference en aza indirilebilir diye dusunuyorum. Bir diger faktor de motivasyon olsa gerek. Yuksek motivasyonla yapilan  isler insani ve hatta beyni cok daha az yoruyor nedense. (enazindan benim icin oyle). 

Bu noktada, hem exploration hem de exploitation ayni anda yapilabilir. Elbette ki birisi secilip de tamamen o yontem uzerinde gidildigi kadar verim alinamaz. 

Eger ki exploration icin harcanan enerji, exploitation performansi uzerinde negligible bir etkiye sahip ise, devam edilebilir. Ki benim durumumda, %100 olmasa da, %50 olarak gozardi edilebilir. Yaklasik 3 senedir mevcut pozisyonda calisiyorum ve de yeterince iyi performans gosterdim. Ayrica yeni giristigimiz proje de ar-ge ayagi daha az. Onumuzdeki bir sene boyunca daha az performans gostersem cok da problem olmaz. 

Sonuc olarak, hayir degil.


Nerede duracagiz?

Peki exploration bir yerde durup da artik exploitation'a gecelim denmesi zorunlu mu?

Hic zannetmiyorum.

Dunyanin en iyi muhendislik pozisyonuna (o da ne demekse) sahip bile olsaniz, yine baska seyler arayisi icinde olmayacaginiz anlamina gelmez. 

Sonuc olarak, durmayacagiz.


Ozet

Bu hayatatta zamanimiz kisitli. Herkesin beklentileri cok farkli. Ben kendi adima daha fazla yer gormek, daha fazla sey deneyimimlemek istiyorum. 

Data structures and algorithms konusuna cok yakin zamanda tekrar donecegiz. 

Gorusmek uzere. 







Yorumlar

Bu blogdaki popüler yayınlar

Python'da Multithreading ve Multiprocessing

Threat Modeling 1

Encoding / Decoding