Skip to main content

2017 boyunca “algoritma” teriminin havası ağırlıklı olarak yazılım dünyasının sohbetlerindeki yelkenlere basılmış olsa da, 2018 trendlerinin basında yer aldığı şu günlerde gördük ki, günlük iş sohbetlerimizde “algoritmalı cümlelerin” frekansı artacak.

Tasarım ve algoritma
Görünen köy kılavuz istemez. 2018’de kendimizi makine öğrenmesi (ML-Machine Learning) ve ona bağlı yapay zekâ (AI) tartışması içerisinde bulacağımız aşikâr. Peki, bu tartışmalara Fransız kalmamak adına sabahlara kadar makale okumamız, istatistik bilgimizi tazelememiz ve matematik okuryazarlığımızı artırmamız mı gerekiyor? “Hayır.” yanıtını vererek size gümüş kurşunu altın tepside sunacağımı düşündüyseniz, üzgünüm. Eğer gerçekten bu konudaki tartışmalarda pasif dinleyiciden bir adım öteye geçebilmek niyetindeyseniz, ne yazık ki tüylerinizi ürperten o ödevlerden kaçınmanın yolu yok. Öte yandan, her girdiğiniz tartışmada, sessizlik bükücü ya da kazanan olmanız gerektiğine dair bir kural da yok. Yapay zekâ ile ilgili yetişilmesi neredeyse imkânsız bir hızda üretilen bilgiyi bir USB aracılığıyla kendinize takıp, veri transferi tamamlandıktan sonra “çalıştır” komutuyla “kullanılabilir yetenekleriniz” arasına ekleyebileceğinize dair fütüristik beklentilere sahip olmayın, ne olur… Eğer bu konuda uzlaşabilirsek, oldukça temel seviyedeki bilgi bloklarınızı sıkılaştırarak kendinize sağlam bir öğrenme zemini yaratmanızı ve dur durak bilmeksizin çıkacağınız yapay zekâ katlarının içerisinde yaşayabilmenizi sağlayacak bir önerim var: (Her şeyden önce) Tasarım ve algoritma kavramlarını içselleştirmeniz.

Tasarım sadece grafikerin değil ekibin işi olmalı
2017 yılı boyunca Digital Age için kaleme aldığım tüm yazılarda, (yazıların tamamını okumuş olanlar için can sıkıcı olarak nitelendirilebilecek kadar yüksek bir frekansta) tasarımla dekorasyon arasındaki akraba evliliğinden hallice bağlamı dağıtmayı çalışıp, tasarımın problem çözmekle anılması gerektiğinin altını çizmeye çalıştım. Ki böylelikle “Bir sistemi ‘tasarlamak’, o sistemle etkileşime geçecek (diğer bir deyişle onu kullanacak olan) insanla sistem arasında yaşananları ‘tasarlamak’ anlamına gelir” diyerek giriş yapacağımız Sistem-İnsan Etkileşimi uzmanlığı ile ilgili yöntemler, taktikler ve uygulamalar hakkında yazarken, okurun zihninde estetik kaygıdan öte bir dünya canlanabilsin. Öte yandan “Dijital transformasyonda tasarım odaklı düşünceyi etkin bir şekilde kullanabilmek için…” diye söze girerken, insanı merkeze alan problem çözümleme yöntemlerinden bahsettiğimizi anlatmakta zorlanmayalım. Özetle, tasarımın sadece grafikerin değil, hedef kullanıcımızın problemini çözmeye odaklı her bir takım arkadaşımızın en güçlü çözüm tekniği olduğunu, başarıya giden uzun yoldaki ilk ortak kabulümüz olarak ele alabilelim.

2017 boyunca “algoritma” teriminin havası ağırlıklı olarak yazılım dünyasının sohbetlerindeki yelkenlere basılmış olsa da, 2018 trendlerinin basında yer aldığı şu günlerde gördük ki, günlük iş sohbetlerimizde “algoritmalı cümlelerin” frekansı artacak. Bu öngörüm, bilişim terimlerine aşina olan profesyoneller, bilgi teknolojileri alanında eğitim görenler ve tabi ki akademisyenler için “Nihayet biz de pazarlamacılar gibi günlük sohbetimiz için bize özel terim ihracatına başlayabildik.” hazzını yaşatır mı, bilemem ancak anlamı ve beraberinde getirdiği ödevler nezdinde sistemli düşünmenin gerekliliğini şart koştuğundan, ben gerekirse 2018 yılı boyunca her cümlemin içerisinde bir kez “algoritma” demeye razıyım. Yeter ki, makine öğrenmesi ve yapay zekâ konuşacağımız bir geleceğe adım atmadan önce tasarım ve algoritmayı hayatımıza doğru şekilde yerleştirebilelim.

Algoritmanın kökeni bizlere çok uzak değil:
“Dünya’da; 1) Onlu sayı sistemini kuramsal olarak tanımlayıp üzerinde dört işlem kurallarını, 2) Denklem kurma yolu ile problem çözme-cebirsel kuralını, 3) Algoritmik yaklaşımla çözümleme yolunu ilk kez tanımlayan; bilim tarihinde, batılıların “Al-Khwarizmi – Al-Khowarizmi” sanı ile, Arapların” Al-Harezmi” sanı ile, bizim, “Harzemli” sanı ile tanımladığımız, (Batı Türkmenistan’ın, Harzem (Aral) gölünün güneyinde, “Harzem Bölgesi’ndeki, Harzem kentinde doğan – M.S. 780) Türk kökenli, Dedesi Abdullah olan, Musa Oğlu Muhammed’in çalışmalarıdır.

Özellikle Harzemli cebri, “üstün bir aritmetik” yaratması yanında, onlu sayılarla hesap ve problem çözme yöntemini açıklıkla – Algoritmik yaklaşımla öğretmesi, giderek güncel hayatı da etkilemiş, bilimsel yaklaşım ve gerçekçi düşünce bağlamında katkısı, alfabenin yazı diline katkısından az olmamıştır. Bu nedenledir ki, onlu sayılar ve Harzemli cebri ile problem çözebilenlere Harzemli – Alkhowarizmi tarafında olan anlamına “Algorist”ler adı verilmiştir. Avrupa’yı “Aydınlanma”ya götüren yolda Harzemli’nin etkisi az olmamıştır. Nasıl ki, çağımızın aracı bilgisayarı programlarken kullandığımız yönteme katkısı az olmadığı gibi…”

Net ve basit bir algoritma tanımıyla devam edelim: “Algoritma, verilen herhangi bir sorunun çözümüne ulaşmak için uygulanması gerekli adımların hiçbir yoruma yer vermeksizin açık, düzenli ve sıralı bir şekilde söz ve yazı ile ifadesidir. Algoritmayı oluşturan adımlar özellikle basit ve açık olarak sıralanmalıdır.” Sonra da üzerine bir algoritma tasarlayabilmek için seçeceğimiz problemi, yine aynı netlik ve basitlikte gündelik hayattan bir örnekle tanımlayalım: “İnternet’te aradığımı bulmakta zorlanıyorum. Anahtar kelime ile yaptığım sorguların daha anlamlı ve arayışımla uyumlu yanıtlar verebilmesini istiyorum.” An itibarıyla, bu probleme yanıt verebilecek en hızlı çalışan algoritmayı yazabileceğimizi düşünmek oldukça hayalperest bir çıkarım olacaktır zira Google’ın kurucu ortaklarından Larry Page’in soyadını verdiği ve “İnternet’e düzen getirmeyi hedefleyerek tezleştirdiği” PageRank algoritması işte tam da bu probleme yanıt vermek üzere yaratıldı.

PageRank algoritmasının basite indirgenmiş ilk hali

Amacım “Tam algoritmanın aslında benim de tasarlayabileceğim bir çözüm olabileceğine dair umutlarım yeşeriyordu ki karşıma yine Google ve anlamadığım terimlerden oluşan matematik formülleri çıkıverdi…” diye iç geçirenler, sizi duydum. Sizi duydum ve içinize su serpecek algoritma örneğiyle geri döndüm: “Çalışmayan Lamba Algoritması”

1. Lamba çalışmıyor.
2. Lambanın fişi takılı mı?
1. Değilse fişi tak.
2. Takılıysa bir sonraki adıma geç.
3. Ampul patlak mı? Kontrol et.
1. Patlaksa ampulü değiştir.
2. Değilse bir sonraki adıma geç
4. Yeni bir lamba al.

Algoritma yazmak için yazılımcı olmaya gerek yok mu?
Eğer şu anda iç sesiniz “Bir dakika, bir dakika, iyi de PageRank de bu yukarıdaki Çalışmayan Lamba Algoritması da algoritmaysa, algoritma yazmak için illa yazılımcı olmaya gerek yokmuş. Bunu ben de yazarım.” şeklinde tınlıyorsa, işte o zaman amacıma ulaştım ve algoritmanın üzerindeki sis perdesini kaldırmayı az da olsa başarabildim demektir. “Az da olsa” diye final yapmamın sebebi, ilk PageRank örneğindeki karışıklıkla ampul örneğindeki yalınlık arasında gidip gelirken öğrenilmesi gerekenlerin, aynı işlevi görecek diğer algoritmaların varlığını öğrendiğinizde yaşayacaklarınızın, algoritmanın sağlamasını yapmak için harcayacağınız çabanın sizi nasıl da çok hızlı bir şekilde vazgeçmeye iteceğinin muhtemelen henüz bilincinde olmamanızdır.