Kodlama ya da kodlayamama işte bütün mesele bu...

     Bir şekilde bilgisayar dünyasıyla ilgilenen kişilerin merak ettiği konulardan biri nedir bu kodlama?
  

kodlama,yazılım


   
Türkiyede bu meseleye biz kodlama demeyi daha çok sevdik bu yüzden ben de kodlama diye başlık attım ama programlama demek doğru olacaktır.Ben yer yer iki adı da kullanıyor olacağım.İlk önce tanım yaparak başlamak istiyorum yazıya ve kendi tanımım değil de Vikipedi'den bir alıntıyla başlıyorum.

Programlama ya da diğer adıyla yazılımlama (İng. programming), bilgisayarın donanıma nasıl davranacağını anlatan, bilgisayara yön veren komutlar, kelimeler, aritmetik işlemlerdir.Diğer bir tanım verecek olursak programlamabilgisayar programlarının yazılması, test edilmesi ve bakımının yapılması sürecine verilen isimdir. 
 
    Kendimce bir tanım yapacak olursam kodlama herhangi bir programlama diliyle yazılmış belirli bir amaçla (bir sorun çözmek, bi uygulama tasarlamak vs.) yapılan çalışmanın ortaya çıkış sürecindeki iştir.Çünkü biz bu işi ortaya çıkarabilmek için kodluyor yani kod yazıyor oluyoruz.Sonuçta da bir ürün geliştirmiş oluyoruz.

     Öğretmenlik deneyimimde en çok anlatmaya kelimeleri yettiremediğim derslerden biri 10. sınıflara anlattığım programlama temelleri.Çünkü bu dersle aslında ilk kez yazılım dünyasına adım atmış oluyorlar.Bu yüzden bu derse ayrıca önem vermeye çalışıyorum ve farklı yollar bulmaya çalışıyorum anlamaya çalışmaları için ve anlama kırıntısı gördüğüm an çok mutlu oluyorum.
     Ben kodlamayı bir iletişim aracı olarak görüyorum nasıl ki ispanyol biriyle konuşmak için  ispanyolca öğrenmem gerekiyorsa makinelerle konuşabilmek için, onlara derdimi anlatabilmek ve istediğim işleri yaptırabilmek için onun dilini öğrenmem gerekiyor.Biz buna makine dili diyoruz ve makine için anlamlı olan sadece iki şey vardır.Bunlar; Sinyal var ya da sinyal yok, doğru(true) ya da yanlış(false), 0 ya da 1  bu üç durum da temelde birbirinin aynısıdır yani 0=false=sinyal yok , 1=true=sinyal var  şeklindedir.Sadece birden fazla şekilde ifade edilebiliyor aslında farkları yok. Makine dili 0 ya da 1 lerden oluşur dedik. O zaman ben 0 ve 1 leri kullanarak makineyle anlaşabilirim değil mi? Hımm ama nasıl olacak yalnızca 0 ve 1 var bu şekilde nasıl anlaşabiliyorum ki bilgisayarla hem de o kadar karmaşık işler yaptırırken,  işlemlerin  farklılığını nasıl sağlıyorum peki?( En basitinden bilgisayar matematiksel işlem yaptığı zaman sayıları nasıl ayırt ediyor ya da toplama, bölme, çıkarma vs aralarındaki fark nasıl anlaşılıyor? 😕) Kafada deli sorular...
 Ben bunu şuna benzetiyorum elimde üstünde 0 ve 1 yazan yüzlerce kartım olsun bunlarla kendimi ne kadar farklı şekilde ifade edebilirim? Evet tabiki dizilişleri değiştirerek kendimi istediğim gibi ifade edebilirim zaten biz de öyle yapmıyor muyuz? harflerin yerlerini değiştirerek farklı kelimeler ürettik ve bu şekilde iletişim kurabildik.Görüyoruz ki bilgisayarla iletişim kurmakta da aslında farklı bir şey yapmıyoruz.Mantık tamamen aynı yani atıyorum bilgisayara 4 ile 3 'ü topla dediğimde o 4 için "100" 3 için "011" ve topla için de "1000101"  olarak algılıyor durumu ve işlemin sonucunu bana yapıp getiriyor. Sonuç tabi yine 0 ve 1 'li olarak dönüyor daha sonra  çeviriciler(Derleyiciler) yardımıyla benim anlayabileceğim 7 sonucunu görebiliyorum.
     Peki ben bilgisayarla hep 0 ve 1 lerle mi konuşacağım çok karmaşık işlerde bunu yapmaya çalışınca altından kalkabilecek miyim? Tabi ki yıllar önce bu durumun böyle olamayacağını gören yazılımcılar bunun için yeni diller üretmeye başladılar. İşte biz de bunlara programlama dilleri dedik ve bunları yüksek seviyeli diller(Fortran, Cobol, Basic vs) , orta seviyeli diller(C++, C#, Java) ve düşük seviyeli diller (assembly, makine dilleri) olarak kategorilendirdik. Aslında bunların dışında çok yüksek seviyeli ve yapay zekaya yönelik diller de mevcuttur. Bu seviyeler neye göre belirleniyora gelecek olursak  ;
programlama dilleriresimde anlatıldığı gibi yazım açısından insana daha yakın olan dilleri yüksek, makineye daha yakın olan dilleri de düşük seviyeli olarak adlandırıyoruz. Bu programlama dillerini de yazacağımız dile göre farklı farklı ortamlarda çeşitli programlar kurarak gerçekleştirebiliyoruz.
     Programlamaya başlarken hemen oturayım kod yazayım demek doğru olmaz sadece ezbere bir iş yapmış oluruz.Anlayana kadar taklit etmek iyidir( fake it till you make it demişler) aslında ama anlamakla sonlandırabilmeliyiz.Bu yüzden olayı anladığımızdan emin olmamız gerekmektedir. Programalamayı anlayabilmek ve anlayarak kod yazabilmek için en önemli şeylerden biri de zamandır. Kişi anlayabilmeyi hemen ummamalı ve kendisine bir şeylerin oturabilmesi açısından zaman tanımalıdır tabi bu zamanı farklı şeylerle ilgilenerek değil yine yazılımla alakalı kalmaya çalışarak yapmalıdır. Ben üniversitede birinci yıl kaldıktan sonra anlamaya başlamıştım.(Tabii bilgisayar mühendisliğiyle ilgili hiç bilgim yoktu ve bilgisayar değil  matematik ve fen bilgimle kazanmıştım bölümü bu da ayrı bir yazının konusu olacak kadar uzun bir mesele üniversiteye yerleştirme sistemi)
      Bir zaman dedik iki tekrar tekrar anlamadığınız ne varsa en derinine inerek sağlam bir şekilde öğrenmek gerekiyor.Üç en önemlisi aslında o da pes etmemek, kararlı kalmaya ben bu işi çözeceğim demeye devam etmek...
      Yazı yine çok uzadı, ben kısa yazı yazamıyorum ya hiç 😇  yazılımla ilgilenenler için faydalı olmuştur inşallah...Unutmayın bilgisayarlar(bilgisayar demek bile artık ilkel kalıyor yapay zeka teknolojisi, IOT'lar(Internet Of Things(Nesnelerin interneti(parantezin gücü adına!!😂))) vs artık almış yürümüşken) artık bir yerde değil her yerde hayatımız ona göre şekil alıyor.Yani siz isteseniz de istemeseniz de gelecek onlarla(teknolojik olan her şey) geliyor ve tanışmak zorunda kalacaksınız. Hem yazılımcı olmak sihirbaz olmaya benzer ve kim sihirbaz olmak istemez ki?😎

Yorum Gönder

0 Yorumlar