8 Mart 2008 Cumartesi

Algoritmaların Programcılara Sitemi


Birisi yolunu kaybeder de buraya gelirse bunu okumasın , bu benim ve paranoyak kişiliğim arasında yaşadığım bir bunalımsal ikilem (ne demekse), dışarı git hava güzel boşver bunları!

Bu girdide beni 2,3 gündür rahatsız eden bir konudan bahsedeyim. Herkes ben de dahil olmak üzere birşeyleri öğrenme ve iş hayatına hazırlanma telaşı içeresinde. Bu telaş içindeyken şu dili öğreneyim , şu teknoloji de CV'imde olsun gibi kaygılar var. Ama aslında programcılığın temeli olan bazı kısımlar ihmal ediliyor. Bunlardan bence en önemlisi de algoritma bilgisidir.

Bu aralar bir yüz tanıma projeseyile uğraşmaktayız ve de gerçekleştirmek için orada bir sürü matematiksel adımları ve algoritmaları anlamak gerekiyor. Onları okurken ne kadar köreldiğimi farkettim, O(n) falan hepsi gitmiş kafamdan. Porgramcılığımız bir "if" ve "for"'a bakmaya başlamış :|. Bence bir programcı ilk adımda programın optimize halini yazamıyor olsa da sonra bunu değişik algoritmalar ile düzeltebilmesi gerekir. Son zamanlarda yazdığım kodlar "hep çalışsın yeter" seviyesinde oluyor. Evet bu da üzüyor beni... Bir programcının elinde algortimlarını tuttuğu bir kütüphanesi olmalı,şu kod bunda nasıl çalışır dediğinde hemen bunu deneyebilmeli. Ve O(n) notasyonları ile hemen performans farklarını ölçebilmelidir. Bunları çalıştığı yer için değil kendisi için yapmalıdır.

Evet bahsettğim gibi sıkıntım büyük, birşeyleri değiştirmek gerekir. Aslında düşünüce, kod içeresinde bir algortima olmasa programcılığın tadıı kalır ki ? Bir veritabanına bağlan ordan veri çek sonra update et ... bunlarla gelişme sağlanamaz. Yapılmışı var kardeşim hasta mısın diyorsanız, hayır diyorum çünkü bu şekilde köreliyoruz. Zaten milletçe de herşeyin yapılmışı var deyip hiçbişey yapmıyoruz. Pardus projesindekiler de bu şekilde düşünseydi bizlere bu kadar çok şey öğreten bu proje de şimdi olmazdı... Neyse konu kaydı yine bir yerlere :)

Şimdi aklıma geldi hergün olmasa da belli aralıklarda öğrendiğim algoritmaları Python (çocuk bahçesi dilim) ile yazayım ve bir yerlere koyayım. Bu şekilde hem körelmemiş oluruz hem de belki ileride birilerinin işine yarar. Evet en azından haftada 2 kez bir algoritma girdisi yapmam gerekiyor buraya , yoksa sonum hiç iyi değil :)