Yazılım Nedir ve Nereden Başlanır?

 Yazılım Nedir ve Nereden Başlanır?

Hepimiz “yazılım” kelimesini son senelerde çok sık duymaya başladık. Bu nedenle de yazılım nedir sorusuyla oldukça yaygın bir biçimde karşılaşıyoruz. Baş döndürücü bir hızda devam etmekte olan teknolojik gelişmeler insanları -özellikle gençleri- kendilerini bu alanda geliştirmeye fazlası ile zorluyor. Bu işle uğraşmak isteyen insan sayısı çok fazla ancak en çok sorulan sorular daha öncesinden de belirttiğimiz gibi: “Yazılım nedir?” ve “Nereden başlamalıyım?”dır. İşte tam da bu noktada, bu soruya cevap arayanlar için bir yazı dizisi başlatmak istiyoruz. İlk yazımızda, “Makine kodu (machine code), kaynak kod (source code), algortima ve yazılım nedir?” sorularına cevap aramaya çalışacağız.

Bilgisayarın Yapısı

İlk olarak bilgisayarın yapısına çok kolay düzeyde değinmek gerekir. Bilgisayarlar, donanım ve yazılım olmak üzere iki parçada incelenebilir. Donanımı, bilgisayarın fiziki ve elle dokunabildiğiniz parçaları olarak tanımlayabiliriz. Yani bir bilgisayarın klavyesi, ekranı, faresi gibi aklınıza gelebilecek elemanlar donanım kısmını oluşturur. Peki siz klavyenin tuşuna bastığınızda nasıl oluyor da ekranınüzde bu karakteri görebiliyorsunuz veya fareniz ile bir dosyaya tıkladığınız zaman ilgili dosyayı nasıl açıyorsunuz? Bu ve bunun gibi aklınıza gelebilecek pek çok sorunun cevabı ise bilgisayarın yukarda bahsettiğimiz diğer parçası olan “yazılım” olarak cevabını buluyor. Bu yazılarda daha çok ikinci parça üstünde duracağız.

Yazılım Bilgisayarın Neresinde?

Donanımla ilgili parçalar görülebildiği için insan zihninde yerini alması kolay oluyor. İnsanların tabiatı gereği görmediği, eli ile tutmadığı nesneleri algılamakta zorlandığı için yazılım ifadesi biraz hava da kalıyor denilebilir. İşte bu “havada kalma” seviyesini mümkün olduğunca zemin seviyesine yaklaştırmayı deneyeceğiz. Başlangıç olarak bilgisayar ortamında mevcut olan yazılım ürünlerini de zihnimizde daha iyi yer etmesi açısından kabaca gruplandıralım:

  • İşletim Sistemleri (Windows, Linux, MacOS, Android…)

  • Programlama Dilleri (C, C++, C#, Java, Python, PHP, Swift, Javascript, Julia…)

  • Uygulama Programları (Microsoft Office Programları, Adobe, Chrome…)


Yukarıda saydığımız bu ürünler, bilgisayar ortamında ne gibi işlevler görüyor diye soruyorsanız basit bir örnekle bunu açıklamaya çalışalım. Bilgisayarın yazılımı diyebileceğimiz ve hepimizin adını duyduğu işletim sistemleri, bilgisayara yüklediğimiz diğer yazılım ürünleri (söz gelimi Microsoft Office programları) ile donanım arasında ilişkiyi sağlar. Siz, Microsoft Office Word programıyla “a” karakterine bastığınızda, ekranınızda bunun “a” olarak görünmesini sağlamayı başaran aracıdır esasında.

Algoritma ve Programlama Dilleri Nedir? Ne İşe Yarar?


Şimdi de yazılım denilen ama elimizle tutup veya gözümüzle göremediğimiz bu soyut varlık nasıl oluşuyor sorusuna cevap vermek gerekir. Aslında bir yazılım ürününü çalıştırdığımızda arka planda çalışan şey bir kurallar silsilesidir denilse hatalı bir açıklama olmuş olmaz.

Algoritma Nedir?


Bu soruya günlük yaşamdan bir örnek verilebilir. Nasıl ki Microsoft Office Word programının amacı yazılı bir metin oluşturmaksa bizim amacımızın da sabah kalktığımızda üstümüzü giyinmek olduğunu düşünelim. Üstünüzü giyinmek basit bir iştir. Ama bunu daha kendi kıyafetini giymeyi henüz öğrenmemiş 4 yaşındaki bir çocuğa yaptırırsanız olaylar karmaşık bir hale bürünebilir.

Size göre çok kolay olan bu iş, çocuk için çok kafa karıştırıcı olabilir. Bu durumu kısa bir biçimde şöyle açıklayabiliriz, 4 yaşındaki çocuk henüz bu işin algoritmasını bilmiyordur. Algoritma, bir problemi çözmek için izlenecek kuralların sıralı bir listesidir. Yine bir örnek üzerinden gidecek olursak üstümüzü giyinirken önce gömleğimizi, sonra da ceketimizi giyeriz. Tam tersi gerçek yaşamda mümkün olsa da, bir programlama dilinde bu toleransı asla göremezsiniz. İstediğiniz işlemin yapılması kesin bir biçimde reddedilir. Programlama dili nedir ve bizim yanlış bir şey yaptığımızı, yani önce ceketi sonra gömleği giydiğimizi nasıl anlar?

Programlama Dili Nedir?


Programlama dili, bir bilgisayara veya bir aygıta (mesela bir drone, markette kullanılmakta olan POS cihazı, para çekilen ATM veya bir online alışveriş sitesinde sepete ürün eklerken tıklanılan buton) ne yapması gerektiğini kesin bir dille, ilgili aygıtın yorumuna mahal vermeden öğreten ve kendi bünyesinde de dilbilgisi kuralları barındıran bir yazılım ürünüdür. Bu dil, bizim yapmak istediğimiz işi ilgili aygıta nasıl anlatıyor? Bu soru da cevabını her programlama dilinin kendine has bir özelliği olan “syntax” yani sözdizimi terimiyle buluyor.

Çözmek istediğimiz bir problem var ise evvela bu sorunun çözümü için algoritmamızı oluşturmalıyız. Daha sonra seçtiğimiz programlama dilini kullanarak, algoritmamıza uygun kod parçalarını yazarak sonuca adım adım yaklaşmalıyız. Kod yazarken bizler genel olarak İngilizce dilinde söz dizimi kuralları içeren programlama dilleri kullanıyoruz. Bilgisayarlar bu durumu nasıl anlayıp bizi bir sonuca götürüyor? Elbette bu durum kaynak kod ve makine kodu yardımı ile gerçekleşiyor.

En Popüler 5 Yazılım Alanı

Yazılım çok geniş bir iş yelpazesine sahip. Size uğraşmak istediğiniz alan konusunda çok fazla seçenek sunuyor. Bunlardan en popüler olanları ise :

  • Web Development (Backend, Frontend)
  • Mobile Development (iOS, Android, Cross Platform)
  • Oyun Geliştirme
  • Embedded Systems
  • Yapay Zeka – Veri Bilimi

Kaynak Kod ve Makine Kodu

Tabii ki bilgisayarlar herhangi bir doğal dil bilmezler. Onlar bizler için yalnızca “0 ve 1” mantığı ile hareket eden aracılardır. 0 ve 1 mantığı ise elektronik birer araç olan bilgisayarların, bizim yazdığımız kodları –source code(kaynak kod)– “0” yani elektrik yok ve “1” yani elektrik var olarak algılamasıdır. Buna göre de bir tepki vermesinden diğer bir şey değildir. Böylece, adım adım istediğimiz sonucu üretme sürecine girmiş olurlar. İşte bu “0” ve “1” mantığı esasında makine kodu teriminin karşılığıdır. Kısaca bizim yazdığımız ve insanların anladığı kodların, bilgisayarın yalnızca 0 ve 1’den oluşan kendi alfabesine çevirerek anladığımız hale getirmesidir. Bilgisayarlarla onun anladığı dil olan makine diliyle konuşuyoruz dersek elbette yanlış olmaz. Ama bu süreçte bizlere kim tercümanlık ediyor? Yani programı yazan kişiyle onu çalıştıracak olan bilgisayar farklı diller konuşup anlaştığına göre bunu sağlamayı başaran bir şey olmalı. İşte bunun da adı “compiler” yani derleyicidir.

Yapılan Yorumlar
Bir Yorum Yapın