Herkese merhabalar!! Bu yazıyla birlikte yeni bir seriye başlıyoruz. Bu seride algoritma ve programlama dünyası hakkında temel bilgiler paylaşacağız. Öncelikle bilgisayar dünyasına bir giriş yapılacak ve daha sonra geçmişte ve günümüzde kullanılan programlama dillerini tanıyıp, bazı programlama terimlerinden bahsedeceğiz. İlerleyen bölümlerde ise algoritmanın hayatımızın içinde nasıl yer bulduğundan bahsedip, programlama dillerindeki temel veri tiplerini, girdi-çıktı işlemlerini, döngüleri ve kontrol yapılarını öğreniceğiz ve günlük hayatta karşımıza çıkan örneklerden konuşacağız. Bunları yaparken C, C++, Java ve Python gibi programlama dillerini kullanıp uygulamalar geliştireceğiz. Hadi Başlayalım!!!
Algoritmanın Önemi
Bir yazılım projesine başlarken hemen oturup kodu yazmaya başlamadan önce yapılması gereken ilk şey ne tür bir algoritma tasarlayacağını düşünmektir. Bu sebeple, programlamaya başlamak isteyen kişilerin herhangi bir programlama dilini öğrenmeden önce kesinlikle algoritma tasarlama teknikleri konusunda kendisini eğitmelidir. Eğer bir problemin çözümünün algoritması tasarlandı ise bu problem herhangi bir programlama dili ile kolayca çözülebilir. Bunun için algoritma mantığını anlamanız, herhangi bir programlama dilinde kendinizi eğitmek için yeterlidir.

Algoritma ve programlama dili ile çözülebilecek bir problemin arasındaki ilişkiyi şöyle açıklayabiliriz; bir programlama diliyle bir problemi çözebiliriz fakat bu problemi çözmek için birden çok yol vardır. İşte bu yollara algoritma diyebiliriz. Çok uzun bir kod yazarak da bu problem çözülebilir, iyi bir algoritma ile daha kısa kod ile aynı problem çözülebilir. Burada algoritma konusunun en az programlama dili kadar önemli bir konu olduğu anlaşılıyor.
Problem çözmeyi, bazı inputlar alma (sorunumuzla ilgili ayrıntılar) ve bazı outputlar (sorunumuzun çözümü) oluşturma süreci olarak düşünebiliriz. Resimde görülen ortadaki kara kutuya algoritmalar diyebiliriz.
Ayrıca, bir programlama diline hakim olmakta oldukça büyük bir önem taşımaktadır. Algoritma yeteneklerinizi geliştirmiş olabilir ve karşınıza çıkan problemlere kolayca çözüm fikri üretiyor olabilirsiniz fakat programlama diline hakimiyet kuramadıysanız bu fikri hayata geçirmekte zorlanırsınız. Bunu bir nevi programlama dilini sizin enstürmanınız olarak düşünebilirsiniz. Onu ne derece etkili kullanabilceğiniz sizin elinizde.
İlk Bilgisayarlar
Bilgisayar, en basit bakış açısıyla bir matematiksel işlemci, yani bir hesap aracıdır ve veri işler.

Bazı kaynaklarda basit hesap makinesi olan abaküs, ilk bilgisayar olarak tanımlanmaktadır.Bu sebeple, bilgisayarın geçmişi yaklaşık 2000 yıl öncesine dayanmaktadır. 1642 yılında Blaise Pascal tarafından yapılan hesap makinesine her ne kadar sayısal dendiyse de bugünkü anlamda sayısal kavramından çok uzaktı. Kaba tuşlarla sayı girişi yapılarak toplama ve çıkarma dışında bir işlem yapılamıyordu.
II. Dünya Savaşı sürecinde, ordunun daha hızlı bilgisayarlara gereksinim duyması, bilgisayar tarihinde bir devrim yaratan ENIAC’ın yapılmasına yol açmıştır. ENIAC, J. Presper Eckert ve John W. Mauchly ekibiyle 1945 yılında yapıldı. En büyük özelliği; bugünkü çiplerin atası sayılabilecek elektron tüpleri ve RAM bellek kullanılması olmuştur. Tasarlanmış programları çalıştırabilme özelliğiyle ENIAC, geniş bir ev kadar (167 m2) yer kaplıyor, 30 ton ağırlığında ve saatte yaklaşık 180 kW elektrik harcıyordu. ENIAC’ın ardından kısa ömürlü olan ve DEVAC adı verilen bilgisayar ve ticari anlamda satışa sunulan ilk bilgisayar olan UNIVAC’ın yapılması 1952 yılına dek uzanmıştır.

1960’lı yıllardan sonra elektron tüplerinin yerini önce transistörler, daha sonra da yüzlerce transistörün birleşimi olarak tarif edilebilecek entegre devreler yer almıştır. Bugün bilgisayar teknolojisinde kullanılan mikroçipler ise, birçok entegre devrenin birleşip küçültülmüş halidir.
Yaklaşık 80 yıl önce ilk icadından itibaren günümüze kadar bilgisayarların temel amacı hep bizlerin el ile yaptığı işlere göre çok daha hızlı bir şekilde işleyerek bize sunmak olmuştur. Bir çok alanda bilgisayarlar hiç şüphesiz günümüz teknoloji çağında toplumda önemli bir konuma girmiş bulunmaktadır.
Programlama Dili Nedir?
Programlama dilleri bilgisayarın temelidir diyebiliriz. Programlama dilleri sayesinde bilgisayarın hangi durumda ne çeşit çıktı verebileceği kontrol edilebiliriz. Bilgisayarlar temelde iki ana kısımdan oluşur. Bunlar; Yazılım ve Donanımdır. Kısaca yazılım kısmı donanım kısmına çeşitli elektronik sinyaller göndererek istenilen komutları gerçekleştirmekle yükümlüdür. Bu sebeple, programlama dili aslında bilgisayara hükmetmek için kullanılan bir araçtır.
Bilgisayarların donanım kısmı, yazılan komutları anlaması için ikilik düzende komut alması gerekir. Yani 1ler ve 0lar ile programlama yapmak gerekir. Fakat bu durum oldukça zahmetlidir. Bu nedenle türeyen birden çok programlama dillerini birbirinden ayıran en büyük özellikleri söz dizimleri yani yazım kurallarıdır (syntax). Farklı programlama dilleri birbirlerinden çok farklı yazım kurallarına sahiptir. Örneğin C programlama dilinde ekrana yazı yazdırmak için printf(“Hello, World\n”); şeklinde yazmak gerekirken, Python programlama dilinde print(“Hello, World”) şeklinde yazmak yeterlidir. Bunlar gibi bir çok farklılıklar vardır. Günümüzde gelişen teknoloji sayesinde programlama dilleri görüldüğü gibi konuşma diline yakın hale gelmiştir bu sebeple 1ler ve 0lar ile programlama yapmaya gerek kalmamıştır.
IDE Nedir? Neden Kullanmalıyız?
Entegre Geliştirme Ortamları (IDE — Integrated Development Environment) bir programcıya, programlama yapma esnasında en çok yararı olan araçlarda başı çeker. Programcıların bilgisayar programı yazarken kullandığı farklı programlama dillerini birleştirmelerini sağlar. Yazılım yazma ortak etkinliklerini tek bir uygulamada birleştirerek programcı üretkenliğini artırır. IDE’ler kaynak kodunu düzenleme, çalıştırılabilir dosyaları oluşturma ve hata ayıklama gibi özellikleri size en hızlı şekilde sunmaktadır.

Diğer avantajları:
- Kodların bazı kısımlarını renklendirerek kodun okunabilirliğini arttırırlar (Syntax Highlighter).
- Syntax hatası sebebiyle yanlış yazmış olabileceğiniz bir kodun hatalarını göstermesi ve yapacağı otomatik düzeltmeyle programcıya inanılmaz kolaylık sağlar.
- Mantık hatalarını, çeşitli debugging yöntemleriyle bulmamızı sağlar.
Bu faydalar sadece bir kaç tanesi. Daha bir çok özelliği bulunan IDElerin kullanımı programcı için hayati önem taşır. İlerleyen bölümlerde, kullanıcağımız programlama dilleri için hangi IDEleri kullanabileceğimizden bahsedeceğim.
Bu yazımda algoritma ve programlama dünyasına bir giriş yaptık. Vakit ayırıp okuduğunuz için teşekkür ederim.
