Yarım Kalan Projeler#2: Learning from Learners
Learning from Learners, kısaca LFL, ortaya çıktığı dönem beni çok heyecanlandırmıştı. Doktoraya yeni başlamanın da etkisiyle çok yeni konseptler öğrendiğim için, bu konseptleri tanımayan benim gibi başkalarına da aktarabilmeyi hayal ettim. İlk yazı, doktoramın ana odağında bulunan Property-Based Testing üzerineydi.
Property Based Random Testing is a flavor of testing that aims to use higher level specifications for testing instead… medium.com
Her şeyden önemlisi, benim için LFL’in önemli olma sebebi başkalarıyla birlikte yazabilme şansıydı. Çevremdeki insanların da motive olacağını düşünüp, onların da kendi öğrendikleriyle ilgili yazmasını planlamıştım. Tek bir yazıyla kalmasından açık olmalı ki proje maalesef devam etmedi.
Blog için arkada yatan fikirler de şu şekildeydi.
- Kullandığımız pek çok aracın arkasında yatan fikir aslında basit. Öğrenmenin önündeki engeller bu araçların performans, hata idaresi gibi gerekliliklerinden kaynaklı olarak kompleks olmasından kaynaklanıyor. Oyuncak bir arama motoru yazmak değil; kullanılabilecek, işe yarayacak bir arama motoru yazmak zor mesela.(Küçük bir örnek: https://anvil.works/blog/how-to-build-a-search-engine )
- Alanda uzun süre geçirmiş insanlar bu araçların karmaşıklıklarına aşina olduklarından onlar için yeni öğrenen bir insan bakış açısından bakmak zor. Dolayısıyla bu yazılar yeni öğrenenler tarafından yazılmalı.
Bu iki fikri birleştirdiğimde, ortaya Learning from Learners ortaya çıktı. İlk yazı da beni şahsen tatmin edebilecek durumdaydı gayet. Hatta üstüne şöyle tasarım ruhundan uzak bir kapak fotoğrafı bile tasarlamıştım.
Projenin yarım kalmasının sebebi öncelikle konseptin genelleştirilememesi, ikinci olarak da yanıma yazar bulamamam oldu.
Konseptin Genelleştirilememesi
Property-Based Testing konsept olarak neredeyse hiçbir arka plan gerektirmeden anlatılabiliyor. Dolayısıyla kısa bir yazıda tüm bir konsepti sıfırdan basit kod örnekleri üzerinden anlatabiliyorum.
Diğer yandan aynı fikri “Automated Theorem Prover, SAT Solver, Fuzzer, Bitwise Algorithms” gibi alanlara uygulamaya çalıştığımda, arka planda çok daha fazla bilgi sağlamam gerektiğini fark ettim. Nasıl tek bir yazıda tüm bilgiyi toplayacağımdan emin olmadığım için bu yazıların neredeyse hepsi yarım kaldı. Diğer bir ihtimal ise benim bu konseptlere Property Based Testing kadar hakim olmamam, o yüzden nasıl basit konsept örnekleri oluşturabileceğimi bilmemem de olabilir.
Yazar Bulamamam
Herhalde fikri ilk bulduğumda yaklaşık 50 kişiye yazdım, yazılar da toplam 1000 kişi tarafından okundu ancak ben gelip yazayım diyen toplamda 0 kişi çıktı. Ben de fikrin en tatlı taraflarından birisi başkalarıyla beraber çalışma fırsatı olduğu için motivasyonumu kaybettim. Belki de birkaç tane daha yazı yazabilseydim, ortaya çıkan momentumla başkaları da motive olabilirdi. Bilemiyorum.
Proje Şu An Ne Durumda?
Yaklaşık 1 yıldır yazı yazılmamış olmasına rağmen, ben hala umutluyum. Hala konseptler yeterince basitleştirilirse alttaki öz fikri korurken belli bir seviyede kullanılabilir ve anlaşılabilir oyuncak projelerde birleştirilebilir diye düşünüyorum. Aklımda bazı yazılar var:
- Coverage Measuring
- Fuzz-testing
- Automated Theorem Solving
- Writing a Simulation for X
- Encryption
Eğer bu tarz yazılar yazmak hoşunuza giderse beni haberdar ederseniz çok sevinirim. Belki yeterince ilgi çıkarsa birlikte devam ederiz.