Günümüz dünyası, bilişim teknolojileriyle son derece iç içe geçmiş şekilde devam etmektedir. Biz fark etmesek de otobüsteki çoklu ortam çalıcıdan tutun elimizdeki telefona kadar irili ufaklı her bir cihazda algoritmalar iş başındadır. Genel olarak kullandığım ürünler veya hizmetlerle ilgili olarak nasıl çalıştıkları konusunda hep meraklı olmuşumdur. Benim için tekrar olsa da “Geleceği Değiştiren Dokuz Algoritma” kitabı, bilişim dünyasından olmayan meraklı insanlara arka planda işletilen düzenli süreçleri anlatarak bilinç artırmaya çalışmaktadır. Bu bakımdan herkese tavsiye ederim.
Geleceği değiştiren algoritmaların içeriğine baktığımda önce hayal kırıklığına uğradım. Çünkü beklentim daha çok Merge Sort, Binary Search ve Öklid algoritması gibi algoritmalardı. Fakat karşılaştıklarım arama motoru indeksleme, veri sıkıştırma, hata düzeltme kodları gibi başlıklar oldu.
İlk izlenim ve ön yargılarımı bir tarafa bırakıp okumaya devam ettiğimde neden bu tarz fikirlerin seçilmiş olduğunu anladım. Yazar kitabında, matematik veya bilimle ilgili olan en şık algoritmaları değil de hayatımızda en çok kullandığımız algoritmaları ele almış. Zaten amacı da her gün kullandığımız teknolojilerin arkasındaki fikirleri öğrenip bir farkındalık yaşayıp saygı duymamızı sağlamak. Eğer saygı duymazsak şikâyet edip mutsuz oluyoruz. Louis C.K. bu konuya çok güzel dikkat çekmiş:
Sonuç olarak arkada neler döndüğüne dair bir fikrimizin olması, bizi doğrudan hayrete sürükleyen, tasarlayanlara müteşekkir olma hissi verdiren ve sonunda da mutlu eden bir fenomen.
Peki bahsedilen mükemmel algoritmalar neler? Her gün kullandığımız arama motoru indeksleme, google’ın diğerlerinden daha başarılı olmasını sağlayan teknoloji “Page Rank”, açık anahtarlı şifreleme, hata kodları, biçim tanıma (yapay zeka ile ilgili), veri sıkıştırma, veri tabanları, sayısal imzalar ve çökme algılayan uygulamalar(aslında hesaplanabilir olan ve olmayanın saptanması ile ilgili bir bölüm). Yani diğer bir deyişle internette alışveriş yaparken, ATM’den para çekerken, google’da arama yaparken işleyen algoritmalar, video izlerken ve fotoğraflara bakarken kullandığımız algoritmalar.
Bazı noktaları, eski okuduğum bilgileri hatırlattığından daha fazla ilgimi çekti. Biçim tanıma ile ilgili konuyu anlatırken bilinç tanımını harika bir biçimde yapmış: “Eğer kendi beynimize girip oradaki sinir hücrelerini arasındaki ilişkilerin gücünü inceleyebilme yeteneğimiz olsaydı, bunların çok büyük bir bölümünün gelişi güzel olduğunu görürdük. Ancak toplu halde davrandıklarında aslında bu dağınık bağlantı güçleri bizim zeki davranışımızı oluşturmakta!”
Veri sıkıştırma ile ilgili bölümde ise, üniversitelerin aslında nasıl olması gerektiğiyle ilgili bir hikâye okuyarak oradakileri kıskandım. (Eminim ülkemizdeki hocalar da böyle öğrencileri bulamamaktan şikayetçidirler.) Literatürü takip eden bir MIT hocası, Shannon’ un makalelerinde, daha iyi veri sıkıştırma yöntemlerinin bulunabileceğinin kanıtlandığını fakat onların henüz bulunamamış olduğunu biliyordu. Bu konuyu lisansüstü öğrencilerine ödev olarak verdi ve David Huffman adındaki öğrenci ödevi yaptı. Huffman kodlaması olarak tarihteki yerini alan kodlamayı geliştirdi.
Veri tabanı ile ilgili bölüm özellikle hoşuma gitti. Oradaki her örnek harika ve anlaşılır.
Yazar, son olarak geleceğe dair bir bölüm eklemiş. Gelecekte bulunacak algoritmaların buradakileri silebileceğinden bahsetmiş. Geleceğe dair tahminlerini sıralamış. Oradaki kısımları biraz açacak olsa bir kitap daha çıkar. Elinden geldiğince kısa kesmeye çalışmış.
Kitap için bazı eleştirilerim var:
Kitabın geneli iyi çevrilmiş ama sanki bilişim sektöründe olmayan biri tarafından çevrilmiş gibi. Bu kitabın muhtevası ve yazar açısından iyi bir şey; ama Türkçe’ ye çevrilmemesi gereken yerler çevrilmiş. Buna karşıyım. Örneğin ikinci bölümde <head> </head> taglarını başlık şeklinde çevirmiş (sayfa 27). Aslında yazar oradaki bilgiyi verirken orijinallerini göstermek için o etiketleri yazmış. Çevrilince olmamış.
Çeviri hatası mı yoksa yazarın hatası mı bilmiyorum fakat açık anahtarlı şifrelemenin uygulanması ile ilgili bölümde işlerin karıştığı noktadaki şeklin sonu yanlış. Süreçleri takip eden kişi bu işlerden anlamıyorsa kafası karışır. Arnold’un tarafındaki değer (39) olmalı. (Sayfa 75)
Çeviri hatası olmasını umduğum başka bir problem de hata düzeltme kodları bölümünde. Kodlama şifreleme demek değildir. Bazı yerlerde kodlama yerine şifreleme kullanılmış. Zaten kod, parola ve şifre ülke olarak yabancı olmadığımız ama yanlış kullandığımız kelimeler. Hatalı kelime kullanımına bir katkı da bu kitaptan gelmemeliydi (sayfa 89).
Kitabın adıyla ilgili bir de önerim var. Keşke kitabın adı “Dünyayı Değiştiren Dokuz algoritma” gibi bir isim olsaydı. Nedeni benim için çok sarih, gelecek daha gelmedi.
Not: Hatalar ilk basımdaki hatalar, belki de bir sonraki basımda düzeltirler.