Farkında olmasak da algoritmalar hayatımızı etkiliyorlar. İşe gidip gelirken, yemek tariflerine bakarken veya internete video izlerken birçok kez algoritmaların kullanıldığı yazılımları kullanıyoruz.
ALGORİTMA NEDİR?
Başta kulağa çok karmaşık bir şeyi tanımlıyor gibi görünse de, algoritmanın basit bir tanımı var. Donald Knuth, Bilgisayar Programcılığı Sanatı kitabında algoritmaları şöyle tanımlıyor: "bir problemi çözerken veya bir amaca ulaşmak için adım adım izlenen prosedür."
İki örnek verecek olursak Google'ın arama motoru, bir algoritma yardımıyla milyonlarca web sayfasında aradığınızı buluyor. Netflix'te dolaşırken size önerilen dizi ve filmlerin tamamı rastgele değil, bunları bir kısmı bir algoritma yardımıyla size özel olarak seçiliyor. Facebook, Instagram ve Twitter gibi siteler de çeşitli algoritmalar kullanıyorlar.
Algoritmalar programcılığın temellerinden biri olsa da, algoritmayı anlamak için deneyimli bir programcı olmaya veya bir programlama dili bilmeye gerek yok.
Algoritmanın İyisi veya Kötüsü Olur mu?
Algoritmaların bugün dünyada olup biten birçok şeyde yeri var. GPS cihazınız sizi hedefe en kısa ve en açık yollardan götürmek için algoritmalardan faydalanıyor. Eposta gönderirken, oyun oynarken ve hatta videlou görüşmeler yaparken algoritmalar kullanılıyor.
İyi amaçlarla geliştirilen algoritmalar olumsuz sonuçlara yol açabilse de, bu bazen yoruma göre değişebiliyor. Yapılma amacına ve sonuçlarına göre iyi ve kötü algoritmaların olduğunu söyleyebiliriz.
Secure Hash Algorithm 1 (SHA-1), milyonlarca bilgisayarı şifreli olarak birbirine bağlamak için kullanılıyordu ve iyi bir algoritma olarak değerlendiriliyordu. Ancak artan güvenlik endişeleri ve ortaya çıkan risk, SHA-1'i kullanan siteleri güvenlik riski altında bıraktı.
Algoritmalarda Matematiksel Eşitlikler Kullanılır mı?
Çoğu zaman evet, ancak matematiksel işlemler her zaman en önde olmayabilir. Önemli olan nokta, algoritmaların belirsiz olmamasıdır, aksi halde sonuçlar da güvenilir olmayabilir.
Algoritma Nasıl Öğrenilir?
Bu işe mantık ve problem çözme yeteneklerinizi geliştirerek, programlamaya giriş yaparak (Java, C#, C++, Python, vb.) başlayabilirsiniz. Algoritmaları öğrenmek, yalnızca bir makale okuyarak yapabileceğiniz bir iş olmasa da, internet üzerinde bu konuda size yardımcı olacak bolca kaynak var.