- Katılım
- 26 May 2024
- Mesajlar
- 4
- Tepkime puanı
- 2
Durup dururken arkadaşlarınıza "yazılım öğrenmek istiyorum" veya "bir program yazacam, haydi projeye başlayalım" dediğinizi hayal edin, arkadaşlarınızdan biraz bilgisi olan size "gel python öğren", "gel javascript öğren" veya "haydi gel yapay zeka öğren" dediğini duyacaksınız ancak çoğu kişi size yazılımın aslında mantık gerektirdiğini bilmeyecek bilen de yazılım için gerkeen mantığın ya çok uzun süre kazanılacağını ya da size mantığın tamamen zekaya bağlı olduğunu ve boşuna uğraşmamanızın gerektiğini söyleyecek. Bu büyük bir hatadır, yani, çünkü temel mantığı öğrenmeden yazılım dillerini öğrenince sürekli kendinizi boşlukta hissetme ihtimaliniz fazlasıyla vardır. Bu yazımızda yazılıma girmeden önce, eğer öğrenmemişseniz, bir mantık temeli atacağız bunu da algoritmalar, matematik, yapay zeka ve pseudocode konularına girdiğimiz bir yazı olacak.
Algoritmalar
İsim büyük bir isim olunca konu da korkunç geliyor değil mi? Hiç endişelenmeyin çünkü kolay ancak sindirmesi zor bir konu, çünkü aslında siz bir insan olarak istemsizce her gün algoritma üretiyorsunuz ancak farkında değilsiniz. En basitinden bir günde güneş doğduysa uyanıyorsunuz, işe gitmek için kendinize geliyorsunuz sonra da iş için yola çıkıyorsunuz diyelim, burada bilinç dışı bir şekilde algoritma kurdunuz ve bunu takip ettiniz. Bunu da aşağıdaki şema ile tasvir edebiliriz:
İşte algoritmalar böyle bir mantığa dayalıdır, buna tasım veya önerme diyebiliriz ancak bununla bitmeyecek algoritmaya girişimiz, bir de yaptığımız eylemler üstte de belirtildiği gibi cevaplar dönüyor fark ettiyseniz bir yerde doğru/yanlış diye cevap veriliyor bir yerde de neden-sonuç ilişkilendirilmesi var. Doğru/yanlış durumuna biz boolean diyoruz, bunu pseudocode yazarken kullanacağız ve neden-sonuç için de eğer (if), sonra (then), olurken (while), yoksa (else) ve cevap (return) kelimelerini kullanacağız tabi ki önce algoritmaları tamamen öğrenmek gerekiyor sonra da matematik öğrenmek gerekiyor.
hem yazılım öğrenerek hem de yazılım mantığına giriş yapabileceğiniz önereceğim Kurslar: Algoritma Programlama ve Veri Yapılarına Giriş (bedava ve e-devlet sertifikalı), Algoritma Tasarımı (bedava ve e-devlet sertifikalı)
Matematik
Matematik diyince sayısalcı olmayan herkesin alnından oluk oluk ter aktı ve "hayır olamaz, lisedeki matematik hocam aklıma geliyor" dediklerini duyar gibiyim ancak size sayısalcı olmayan biri olarak söyleyeyim, o anıları unutun ve karşınıza bir deneme sınavı alın ve hiçbir şey bilmeden çözün ve bir süre sonra "ben matematiği biliyormuşum" diyeceksiniz o evin rahat ortamında işte sizde bu mantık var olay geliştirmesinde. Size matematikte gündelik birçok örnek verebilirim ancak klişe olacak onun yerine Khan Academy isimli ücretsiz ve oyun oynar gibi seviyelere sahip interaktif öğrenme ortamını önereceğim hem de hiç yorulmadan matematikte hızlıca ilerlediğinizi göreceksiniz. Matematikte 3 net yapmakta zorlanan bendenize trigonometri öğretti diyorum size.
Neden matematiğe ihtiyacınız var diye sorarsanız bunun sebebi bir süre sonra o kadar karmaşık işler istenecek ki ancak matematiksel olarak işlediğinizde bir sonuca varabileceksiniz, burada size tek bir önerim olacak o da asla utanmamanız ve kendinize bir deneme sınavı yapın veya önünüze müfredat açıp "hangi sınıfta kalmışım matematikte" diyin sonra da bunu sindirdikten sonra, ben Khan Academy öneririm diğeri başka bir platform önerir, beğendiniz bir platformda çalışmaya başlayın yalnız dikkat edin asla kendinizi aşırı zorlamayın yoka bu sefer yorulup bir "burn-out" evresine girip öğrenme yetinizi bir süre kaybedersiniz. Khan Academy'yi önerme sebebim de aynı sınava, farklı sorular üretiyor kendi içindeki yazılımı tabi ki, tekrar tekrar girip kendinizi geliştirmenize olanak sağlaması. Bir süre uğraştıktan sonra ara verin dolaşın çıkın geri dönün ama unutmayın, en az bir lise 12. sınıf öğrencisi kadar matematik bilmeniz gerekiyor ve bir sonraki seviyeye böyle geçeceksiniz.
Önereceğim siteler: Khan Academy , IXL ve Brilliant
Yapay Zeka
ChatGPT ortaya çıkana kadar makine öğrenmesi aslında çok ileri bir seviye konuydu yani birisi size makine öğrenmesi, ki yapay zeka dediğimiz çoğu ürün aslen makine öğrenmesi ürünüdür, ancak son zamanda o kadar kullanıcı dostu hale geldi ki artık alışılmışın dışında size bu seviyeden sonra yapay zeka ile uğraşın diyeceğim. Mesela matematikte artık sınırınıza geldiğinizi hissettiniz son konularda, ki yaşadım, tercih ettiğiniz yapay zeka uygulamasına konuyu anlatın sorup soruşturun PDF kitap okutun tekrar sorun ancak öğrenin. Böylece hem konuları pekiştirecek bir özel hocanız oluyor hem de yapay zeka nasıl işliyor onu kavrayabiliyorsunuz, böylece nasıl nerede yapay zeka öğreneceğinizi bilerek diğerlerinden bir seviye önde oluyorsunuz.
Pseudocode
Pseudocode "yalancı kod" veya "kodumsu" demektir, koda benzeyen ancak çalışmayan kod parçaları için kullanılır ve bir koda yazmadan önce genellikle programcılar bu tarz kodlar yazarlar, boolean, eğer (if), sonra (then), olurken (while), yoksa (else) ve cevap (return) kelimelerini hatırlıyorsak o halde güzel çünkü çok kullanacağız bir pseudocode yazarken. Bir kodda, özellikle Javascript ve Python'da, bir işi halleden ve küresel olarak çalışmayan bölümlere fonksiyon denir ki bunu matematikten çok kolay hatırlayabiliyoruz. Matematikte de fonksiyonun tanımı bir işlemden sonra sonuç girdiyi bir sonuçla dönen işlemler idi değil mi hatta görsel ile belirtirsek şöyleydi:
Pseudocode'da algoritmalar ve matematikten başka bir de yazdığınız kelimeleri bir case ile yazmamız gerekiyor, case bir programlama dilinde kelimelerin büyük harf ve küçük harf kullanımına verilen isim, genellikle pseudocodeları camelCase (küçükharfBüyükharf) şeklinde yazıldığını görürüz ancak PascalCase (BüyükharfBüyükharf) da çok sıklıkla görünmekte. O halde bir pseudocode yazalım birlikte, ilk başta bilinçdıı şekilde kurduğumuz algoritmayı çalıştırsın. Hadi diyelim ki bu fonksiyonumuzun ismi işi belirtir halde olması önemli çünkü tekrar tekrar çağıracağız işimize yaradığında, diyelim ki:Pseudocode
Pseudocode "yalancı kod" veya "kodumsu" demektir, koda benzeyen ancak çalışmayan kod parçaları için kullanılır ve bir koda yazmadan önce genellikle programcılar bu tarz kodlar yazarlar, boolean, eğer (if), sonra (then), olurken (while), yoksa (else) ve cevap (return) kelimelerini hatırlıyorsak o halde güzel çünkü çok kullanacağız bir pseudocode yazarken. Bir kodda, özellikle Javascript ve Python'da, bir işi halleden ve küresel olarak çalışmayan bölümlere fonksiyon denir ki bunu matematikten çok kolay hatırlayabiliyoruz. Matematikte de fonksiyonun tanımı bir işlemden sonra sonuç girdiyi bir sonuçla dönen işlemler idi değil mi hatta görsel ile belirtirsek şöyleydi:
Genellike "İ" veya "ş" gibi Türkça karakterler önerilmez ama daha işin başındayız, programcılar genellıkle kodlara notlar tutar ki başkaları okuyunca birden sarsılmasın, notlar koyarak açıklaya açıklaya bu kişiyi güneş doğunca uyandıralım, kişinin durumunu "durum" olarak tanımlamışız buradan devam edelim, bu sefer PascalCase kullana kullana gidelim. Let tanımlama yani var etme işlemi anlamına geliyor, Javascript'e benzer yazdım bu pseudocode'u, GüneşDoğduysa var ise uyanacak:İşeGit
function İşeGit(GüneşDoğduysa) {
let Durum;
if (GüneşDoğduysa) {
Durum = 'Awake';
} else {
Durum = 'Asleep';
}
return Durum;
}
Böylece İşeGit'i çağırınca gördüğünüz gibi GüneşDoğduysa durumu boolean yani doğru/yanlış ikileminde doğru ise uyanmayı gerçekleştirecek bir pseudocode yazdınız, siz daha iyisini yazdınız belki de daha uzununu yazdınız ancak şimdi fark ediyorsunuz ki siz kod yazabiliyorsunuz hem de 0'dan başladığınızı var sayarsak yazının sonuna geldiğinizde buna başlayabildiniz, bundan sonra artık top sizde, artık fonksiyonları insanlara değil bilgisayarlara yazmayı deneyin.
Muhtemelen sizin şu anda yazdığınız kod benim sırf öğretmek için yazdığım koddan daha iyi çalışmakta, son kez eklemem gereken konu variable (değişkenler) olacak, Durum ve GüneşDoğduysa birer değişken idi ve bunların içerdiği bilgiler ile biz bir duruma göre bir durumu cevaplayacak bir koda yazmış bulunduk.
Mesela çalıştırınca sevdiğiniz oyunu veya internet sitesini açan bir program yazabilirsiniz, bundan sonra başlayacağınız programlama diliniz seçmeniz gerekiyor ama, ilk baştaki kursta maruz kaldığınız C# ile devam mı yoksa yeni ve daha kullanıcı dostu limanlara mı yelken açacaksınız? Arama motorunuz sizin kılavuzunuz olsun.
Sonuçlandırırsak...Muhtemelen sizin şu anda yazdığınız kod benim sırf öğretmek için yazdığım koddan daha iyi çalışmakta, son kez eklemem gereken konu variable (değişkenler) olacak, Durum ve GüneşDoğduysa birer değişken idi ve bunların içerdiği bilgiler ile biz bir duruma göre bir durumu cevaplayacak bir koda yazmış bulunduk.
Mesela çalıştırınca sevdiğiniz oyunu veya internet sitesini açan bir program yazabilirsiniz, bundan sonra başlayacağınız programlama diliniz seçmeniz gerekiyor ama, ilk baştaki kursta maruz kaldığınız C# ile devam mı yoksa yeni ve daha kullanıcı dostu limanlara mı yelken açacaksınız? Arama motorunuz sizin kılavuzunuz olsun.
Bu yazı, yazılım bilgisi olmayanlara başlangıç yapmalarına yardımcı olmak amacıyla yazılmıştır. Ancak aynı zamanda yazılım bilgisine sahip olanlara da farklı bir bakış açısı sunmaktadır. İlk olarak, algoritmaların mantığını anlatarak başladık, ardından matematiğin önemine değindik, daha sonra yapay zeka konusunda nasıl adımlar atabileceğinizi anlattık ve son olarak da kendi başınıza, yalandan da olsa, bir kod yazmanızı sağladık.
Bir sonraki yazıda görüşmek üzere...
Bir sonraki yazıda görüşmek üzere...