• Bugun biraz programlama agirlikli gecen bir gundu; uzerine tekrar amacli yeni basladigim Istatistik dersi ve Python ile ilgili izledigim videolarin gunun one cikanlari oldu.

  • Accelerated Computer Science dersinde bu hafta Tree veri yapilari isledik; uzun zamandir benim icin epey mistik gorunen seylerin bir anda gozumun onunde aydinlanmasi deneyimi yasadim resmen. Machine learning’de surekli karsima cikan ‘acyclic computational graph’ kavramindan, cebirsel bir islemi encode etmenin yontemine kadar bircok guzel ornekle anlatti dersi veren kisi de.

    • LinkedList‘ten sonra epey bir kafama oturdu Tree yapilari…
    • Sonrasinda BinaryTree yapisi uzerinde durup bir Dictionary ile key-value ikililerini bir tree icerisine yerlestirip. etikili bir sekilde arama yontemleri uzerinde durdu.
    • “pre-order”, “in-order” ve “post-order” yontemleri ile bir tree’yi nasil traverse edebilecegimi ogrendim. Artik kimse “bir tree’yi traverse edemiyorum” diye beni sorgulayamayacagi icin de mutluyum! :)

  • Bugunun LeetCode Challange’i “Two City Scheduling” adli bir “optimizasyon” problemiydi. Algoritma konusunda epey bir kafa yormam gerekti, internetten de cozume dair bir ipucu alarak cozmus olsam da yine de epey sey ogretti. Problem ve kendi cozumumum asagida:
# LeedCode June Challange Day 3
# Two City Scheduling Problem
#
# Definition:
# There are 2N people a company is planning to interview. 
# The cost of flying the i-th person to city A is costs[i][0], 
# and the cost of flying the i-th person to city B is costs[i][1].
#
# Return the minimum cost to fly every person to a city such that
# exactly N people arrive in each city.

def twoCitySchedCost(costs):
	n = int(len(costs)/2)
	cost_diff = sorted(costs, key = lambda k: abs(k[0] - k[1]), reverse = True)

	sum_cost = 0
	n0, n1 = (0,0)
	k = 0
	while(k < 2*n):
		t0 = cost_diff[k][0]
		t1 = cost_diff[k][1]

		if((t0 <= t1 and n0 < n) or n1 == n):
			sum_cost += t0
			n0 += 1
		else:
			sum_cost += t1
			n1 += 1
		k += 1
	return sum_cost
  • Gunun highlight’larindan biri de uzun suredir kullandigim SublimeText editorunun kisa yollarini etraflica ogrenmek oldu. Uzerine bir de C++ ve Python icin otomatik tamamlama yapan, parantezleri kontrol eden vs. eklentileri ekleyince sahane oldu!

  • MIT’nun edX’de yeni yayinladigi “Fundementals of Statistics” dersi cok iyi basladi. Tarihin tozlu raflarindan kalmis istatistik derslerinden farkli olarak, epey “modern” bir yaklasimi var dersin ve ve dersi veren kisinin. Ilk derste istatistik ve olasilik arasindaki iliskiyi anlatirken soyledigi sey epey hosuma gitti: “Statistics is reverse-engineered probability”. Derste istatistik-olasilik-modelleme konusundan bahsederken kullandigi asagidaki slaytta cok guzel ozetlemis olayi gercekten.

MIT_Stats

  • Python tarafinda birbiriyle iliskili iki guzel videoda Python’da ozellikle “list comprehension” gibi ifadelerin aslinda arka tarafta nasil calistigi ve normal for dongulerinden nasil daha efficient olduklarina sahit oldum. Her hafta basinda posta kutuma dusen muthis bulteninden tanidigim Reuven Lerner’in su iki videosu bahsettigim:

  • Bu arada yukaridaki videoda da gecen, Python’daki dis modulu bir fonksiyonun nasil calisitigna dair nasil inanilmaz bir insight sagliyor oyle…

  • Ayni konuyla iliskili, ayni kisinin ‘Ace Python Interviews’ adinda harika bir ucretsiz dersi bulunuyor; baslangic seviyesinden ileri seviyeye kadar 50 soru uzerinden video ile cozumleri gosteriyor. Bunlara ek bir de Youtube’da Python’un standart kutuphanesini anlattigi bir listede ufak guzel videolar var.

  • Python konusunda bugun izledigim bir PyCon 2020 konusmasinda Python Runtime‘i anlatiyordu. Program calisirken cesitli fonksiyon cagirilari yapildiginda arka planda olusuturulan stack frame’ler ve bunlarin yapisi, icinde saklanan bilgilere deginen guzel bir konusmaydi. Sonlara dogru epey bir detaya girse de en azindan ufak bir hatada dahi cikan “stack trace” mesajlarinin arka tarafta nasil olusturulduguna dair bana epey fikir verdi: Elizaveta Shashkova - The Hidden Power of the Python Runtime

  • Twitter’da bugun denk geldigim bir yazi:, yazilimci Elif Kus‘un “4 Buyuk” teknoloji deviyle mulakatindan nasil “red yedigi”nin hikayesi. Tum bu zorlu sureclere dair guzel noktalara deginmis; boylesi kisisel “negatif deneyimler” ne kadar da degerli…

  • Bir de dun onemli bir is gorusmesi yapacagim demistim; epey guzel gecti ilk gorusme. Gorustugum kisinin isin tanimini dahi anlayamayan HR elemani degil de Istatistik PhD’li biri olmasi sebebiyle 45 dakika boyunca bol bol teknik konulari rahatca konusabildigim, kendimi ifade edebildigim bir gorusme oldu. Bir sonraki asama departman yoneticisi ile benzer bir teknik gorusme, sonrasinda somut bir proje odevi olacak. Umutluyum!

  • Son olarak da, konu disi, gecen aksam ufak teleskop ve cep telefonu kombinasyonumla arka bahceden cektigim Ay fotografini suraya birakayim:

Ay_Foto