Günlük Hayatınızda Saklı Olan Algoritma Mantığı

Algoritma Mantığı ve Yazılım Öğrenme

Algoritma mantığı ve günlük hayattaki örneklerinden bahsedelim.

Bilişim derslerinde en çok duyduğum sorulardan biri “Algoritma ne işime yarayacak hocam?” oluyor. Kodu unutun, önce mantığı anlatalım. Bu yazıda, sabah kahvenizi hazırlarken bile aslında nasıl bir algoritma uyguladığınızı, bilgisayar biliminin temelini oluşturan bu kavramı hiç duymadığınız bir dille anlatacağım.

Bir öğretmen olarak derse girdiğimde ilk yaptığım şey, tahtaya kocaman bir "Algoritma" yazıp öğrencilerin yüzündeki o klasik ifadeyi izlemektir. Kimi "Aman ne zor şeyler bunlar" der, kimi "Hocam bunu nerede kullanacağız?" diye sorar. Oysa cevap çok basittir ve her gün defalarca yaptığımız şeylerin içinde gizlidir.

Düşünün ki sabah uyandınız. Gözlerinizi açtınız, yataktan kalktınız, terliklerinizi buldunuz, mutfağa yürüdünüz, dolabı açtınız, bir bardak aldınız, suyu doldurdunuz ve içtiniz. Tebrikler, az önce 7 adımlı bir algoritmayı başarıyla uyguladınız! Peki bu sırada bilgisayar gibi düşünseydiniz ne olurdu? "Bardağı al" dediğinizde hangi bardağı alacağını, hangi renk olduğunu, dolabın neresinde durduğunu bilmeden hareket edemezdiniz değil mi? İşte bilgisayarlar da tıpkı bunun gibi, kendilerine söylenen her şeyin en küçük detayına kadar açıklanmasına ihtiyaç duyar. Ne yazık ki onların sezgileri yoktur; onların tek bildiği, kendilerine verdiğimiz net ve sıralı komutlardır.

Peki bu mantık neden bu kadar değerli?

Okullarda genellikle ilk konu olarak karşımıza çıkan algoritma, aslında yazılım öğrenme sürecinin en çok atlanan ama en hayati basamağıdır. Öğrencilerime sürekli "Önce kağıt kalemle düşünün, kod yazmak sonra gelecek" derim. Çünkü elinize aldığınız bir programlama dilinin sözdizimini (syntax) üç günde ezberleyebilirsiniz; ama karşınıza çıkan bir problemi parçalara ayırıp çözüm üretme yeteneği, işte o üç günde kazanılmaz. Bu yetenek, her gün yaptığınız sıradan işleri bilinçli olarak analiz etmeye başladığınız anda filizlenir.

Mesela yemek yapmayı ele alalım. Tarif defterindeki bir yemek tarifi aslında mükemmel bir algoritma örneğidir. Malzemeler girdidir (input), yapılan işlemler komut dizisidir (process), ortaya çıkan yemek ise çıktıdır (output). Ama tarifte "tuzu damak zevkinize göre ayarlayın" yazıyorsa bu, bilgisayar için geçersiz bir komuttur. Bilgisayar, "tuz" dediğinde kaç gram olduğunu, hangi bardakla ölçüleceğini net bir şekilde bilmek ister. Programcının işi de tam bu noktada başlar: en ufak bir boşluğa veya yoruma yer bırakmadan, adımları maddeler halinde sıralamak.

Peki algoritmayı geliştirmek için ne yapmalı?

  • Gün içinde yaptığınız basit işleri (çay demlemek, okula gitmek, alışveriş yapmak) adım adım yazmaya çalışın.
  • Yazdığınız bu adımları bir arkadaşınıza okuyun ve "Bu adımları izleyerek bunu yapabilir misin?" diye sorun. Eksik bir adım varsa hemen fark edeceksiniz.
  • Bilgisayar karşısına geçtiğinizde ise hemen kodlamaya dalmayın. Önce akış şeması çizin, mantığı oturtun, sonra klavyeye dokunun.

Unutmayın, en iyi yazılımcılar en çok kod yazanlar değil, en iyi düşünenlerdir. Kod yazmak, tıpkı yabancı dilde cümle kurmak gibidir; kelime bilginiz ne kadar fazla olursa olsun, eğer ne anlatmak istediğinizi bilmiyorsanız o cümleler anlamsızdır.

Toparlayacak olursak...

Her gün farkında olmadan onlarca algoritma uyguluyoruz. Bilgisayar biliminin bu temel taşını, sadece ekran başında değil, hayatın içinde gözlemleyerek öğrenmek hem çok daha kalıcı hem de çok daha eğlenceli. Şimdi birkaç dakikanızı ayırın ve çevrenize bakın; hangi işlemleri sırasıyla yapıyorsunuz? Bunları not alın. Algoritma dediğimiz şeyin ne kadar doğal ve içsel olduğunu göreceksiniz.

Bir sonraki yazımızda bu adımları nasıl akış şemalarıyla görselleştireceğimizden ve bilgisayarın diline nasıl çevireceğimizden bahsedeceğiz. O zamana kadar, günlük rutinlerinize bir de "algoritma gözüyle" bakmayı ihmal etmeyin.