Programlamaya Giriş Temel Bilgiler

  • Konbuyu başlatan Hüseyin
  • Başlangıç tarihi
Hüseyin

Hüseyin

Üye
Top Poster Of Month
Katılım
21 Ocak 2024
Mesajlar
50
Tepkime puanı
25
Puanları
18
Programlama Dili Nedir ?

Programlama dili bilgisayara programı çalıştırdığında ne yapması gerektiğini nasıl ifade edeceğimizi belirleyen bir kurallar dizisidir. Kullanılabilecek tonlarca programlama dili var ancak ticari veya kişisel programların çoğu C / C++ , Java , C#, Python ve diğer bir kaç çekirdek dil gruplarından biriyle yazılmıştır. Modern proglamlama dilleri birçok teme kavramı ve bazı söz dizimi (syntax) kurallarını paylaşır. Bu yüzden ikinci, üçüncü , dördüncü programlama dilinizi öğrenmek ilk programlama dilini öğrenmekten çok daha kolayır.

Bir Programlama Dilini Başka Bir Dilden Farklı Kılan Nedir ?

Her programlama dili kendi güçlü ve zayıf noktalarına sahiptir. C ve c++ düşük seviyeli dillerdir, yani C dilinde yazılmış kod makine diline daha yakındır. Düşük seviyeli diller daha hızlı, daha etkili yazılımlar oluşturabilirler; bu yüzden performansın hayati önem taşıdığı yerlerde kullanılırlar, örneğin bir işletim sistemi programlarken ya da 3 boyutlu oyun motoru yaratırken.
Java ve Python gibi yüksek seviyeli diller, programlaması kolay diller olma avantajına sahiptir ve yüksek seviyeli dillerde aynı program çok daha kısa kodlarla yazılabilir.

Peki En İyisi Hangisi

En iyi dil diye bir şey yok. Sizin için en iyi olan, ne tarz programlama yapmanız gerektiğine göre değişir. Eğer doğal Windows programları yazmak istiyorsanız C# kullanırsınız, karmaşık web uygulamaları yazmak istiyorsanız Ruby daha iyi bir seçim olabilir, eğer geleceğin John Carmack'i olmak istiyorsanız C ile başlamanız gerekir.

Cidden Hangi Dille Başlamalıyım ?

İşin sırrı "Hangi dille başlasam ?" diye çok telaşa düşmemekte. Öğreneceğiniz en önemli şey temel kavramlar olacak ve bu kavramlar neredeyse her programlama dillinde aynı. Veri yapılarını, koşulları ve döngüleri kullanarak kodu nasıl yönlendirebileceğinizi öğreneceksiniz.
Programı okunabilir ve düzenlenebilir şekilde yapılandırmayı öğreneceksiniz. Tüm bunları yaptıktan sonra söz dizimi hakkında birkaç şey öğrenip yeni bir dil öğrenmek çok da zor bir iş değil.

Ancak gerçekten bir öneri istiyorsanız JavaScript ile başlayabilirsiniz. Öğrenmesi kolay bir dil ve pratik uygulamaları mevcut. En iyi yanı da söz diziminin C# ve Java gibi daha gülü dillere çok benziyor olması. Bu sayede ileride bu dillere geçiş yapmanız oldukça kolay olacak.

HTML Bir Programlama Dili Mi ?

Pek sayılmaz. HTML bir işaretleme dili, yani bir web sayfasındaki içeriği tanımlamak için kullanılıyor. HTML'in kendine has bir söz dizimi (kodları ne şekilde yazmak zorunda olduğunuzu gösteren kuralların tümü) olsa da HTML kodları "anlam" taşımaz. HTML dosyaları çalıştırılmaz, işlenir. Her ne kadar durum böyle olsa da eğer HTML biliyorsanız bir bilgisayar dilinde deneyim sahibisiniz demektir, bu da programlamaya daha kolay geçebileceğiniz anlamına gelir.

IDE Nedir ?

İngilizce "tümleşik geliştirme ortamı"(Integrated Development Environment) kelimelerinin kısaltılması olan IDE, programcıların program yazmak için kullandıkları yazılım paketleridir. Genelde kaynak kodu yazmak için özelleştirilmiş bir metin editörüne sahiplerdir ve aynı metin editöründe programınızı test edebilir ve hata ayıklayabilirsiniz. En popüler iki IDE , Eclipse ve Microsoft Visual Studio'dur (pahalı ama C,C# ve BASIC dillerinde programlama yapmanızı sağlayan Express sürümü ücretsiz).

Hemen Program Yazmaya Nasıl Başlarım ?

Maalesef programlama dillerinin çoğunda kodlamaya başlamak biraz zor olabiliyor. Genelde bir SDK (Software Development Kit: Yazılım Geliştirme Kiti) kurmanız gerekebilir, bu sayede yeni bir dilde kod yazıp derleyebilir hale gelirsiniz. Çok zor olduğu söylenememez ama bir 15-30 dakikanızı Google'da seçtiğiniz dil hakkındaki rehberleri okuyarak ve ayar yaparak geçirmeye hazır olun.
Neyse ki JavaScript başlamak için oldukça kolay bir dil. Hatta https://jsfiddle.net/ gibi web tabanlı kodlama ortamların kullanarak hemen kodlamaya başlamak için interaktif ortamda düzenlenen derslere http://www.codeacademy.com/ adresinden bakabilirsiniz(ingilizce).

Önemli Kavramlar

DEĞİŞKEN


Programlamadaki değişkenler (variable), lisedeki matematik derslerinden hatırladığınız "x" lerden biraz farklı. Programlamada bir değişken boş bir kutu gibidir. Bu kutunun içine programınızda kullanmak istediğiniz sayı, kelime veya diğer bilgi ya da bigli yapısı gibi şeyleri koyabilirsiniz. Program çalıştığı sürece değişkenin değerini okuyabilir ve değiştirebilir, bu sayede veriyi takip edebilir ve verinin üzerinde istediğiniz gibi oynamalar yapabilirsiniz.
Değişkenler programın yapıtaşıdır ve her programda satırların çoğunda çeşitli formlarda değişkenler bulunur.
Pyhton gibi bazı dillerde tek bir değişken başlangıçta belli bir türde veri içerirken (örneğin sayı) daha sonra başka bir türde veri içerebilir (örneğin kelime). C ve C# gibi diğer dillerde ise değişken, bir türde tanımlanır ve program boyunca yalnızca o türde veri barındırır. Statik tipli diller ile dinamik tipli diller arasındaki fark budur.

KOŞUL

Çoğu program önüne gelen her şeyi almaz, belirli türdeki kullanıcı girdilerini kabul eder. Bunun getirdiği belirsizlikle başa çıkmak için ise esnek kod yazabilmemiz gerekir. Esnek kodlar yazabilmek iin de koşullara ihtiyacımız var.
Koşullar (conditional), kodun dallandığı yerlerdir. Çoğu modern dilde koşullar karşımıza if ifadesi şeklinde çıkmaktadır, bu ifade de değeri doğru ya da yanlış olan bir değişkene (Boolean değişkeni) ve br kod bloğuna katılır. Kıscası if ifadesi şöyle bir komut verir : "Eğer bu Boolean değişkeninin değeri doğruysa aşağıdaki kod bloğunu çalıştır, değilse bu kodları atla."
Çoğu dilde if ifadeleri ayrıca "else" ifadesi de içerebilir, bu da yalnızca Boolean değişkeninin değeri yanlışken çalıştırılacak ikinci bir kod bloğu yazmanıza izin verir.

DÖNGÜ

Hangi kodun önce çalıştırılacağının sırasını kontrol etmenin bir diğer yolu da döngü (loop) kullanmaktır. if ifadesi bir kod bloğunun çalıştırılıp çalıştırılmayacağını belirlememizi sağlarken, döngüler aynı kod bloğunun birden fazla çalıştırılmasına izin verir.
Çeşitli döngüler mevcuttur ancak hemen her programlama dilinde görebileceğiniz iki döngü, while döngüsü ve for döngüsüdür.
While döngüsü ifadeye çok benzer. While döngüsüne bir Boolean ifadesi eklediğimizde ifade doğru olduğu sürece döngü tekrarlanmaya devam eder. Kısacası "ifade doğru olduğu sürece çalışmaya devam et" demektir. Bunun bir sonnucu olarak da döngü kodunun içindeki bir şey Boolean ifadesini yanlış yapmak zorundadır. Bu olmazsa döngü sonsuza kadar devam eder ve bitemez.

Örneğin aşağıdaki kod 10 kere pwnlabme yazacak ve duracaktır :

while (x < 10){
x = x + 1 ;
print("pwnlabme");
}

Burada x değişkenini döngü sayacı olarak kullandığımızı ve döngünün kaç kez çalışacağını bu değişkenle kontrol ettiğimizi fark etmişsinizdir. Diğer sık kullanılan döngü çeşidi olan for döngüsü kendinden sayaçlı bir while döngüsüne benzetebilir. Aşağıdaki gibi döngünün kaç kez çalışacağını doğrudan söylemeniz yeterlidir.

for (int x ; x < 10 ; x++){
print("pwnlabme");
}

for sözcüğünden sonraki kısım sayacı ifade eder. "x dediğimiz bir tamsayıyla başla ve x 10dan küçük olduğu sürece döngüye devam et. Her döngü sonunda x değişkeninin değerini 1 arttır" anlamına gelir.

FONKSİYON

Programın akışını kontrol etmenin en güçlü yolu, bir kodu yeniden kullanmanızı sağlayan fonksiyonlardır. Fonksiyonlar(function), bir isim verdiğiniz kod bloklarıdır ve yeniden kullanılabilme özelliğine sahiplerdir. Örneğin aşağıdaki gibi "OnceMerhabaSonraGuleGule" adlı bir fonksiyon yapalım.

v o i d OnceMerhabaSonraGuleGule()
{
print("Merhaba");
print("Güle Güle");
}

Eğer kodunuzda bu fonksiyonu aşağıdaki gibi art arda üç kez yazarsanız program çıktınız "merhaba güle güle merhaba güle güle merhaba güle güle" olacaktır.

OnceMerhabaSonraGuleGule();
OnceMerhabaSonraGuleGule();
OnceMerhabaSonraGuleGule();

Fonksiyonlar ayrıca değişkenleri girdi olarak alıp, çıktı olarak verebilirler. Örneğin bir sayıyı girdi olarak alıp , o sayının karesini çıktı olarak veren bir fonksiyon yazabilirsiniz. Şöyle olacaktır :

int kare(int karesiniAl)
{
return karesiniAl * karesiniAl;
}

"return" kelimesine dikkat ettiniz mi ? Bu kelime , ardındaki değeri kodun fonksiyon parçasına geri döndürür.

print(karesiniAl(5));

şeklinde bir fonksiyon bize 25 değerini verecektir.

Gelişmiş Bilgiler : Nesne Yönelimli Programlama

Büyük resme bakma vakti geldi.

Şimdiye kadar konuştuğumuz araçları kullanarak değişkenleri birçok şekilde manipüle eden fonksiyonlar geliştirebilirsiniz ki bu da yazmak istediğiniz tüm programların temelini oluşturur. Ancak programın karmaşıklığı arttıkça kod sadece o kavramları kullanarak düzenli bir halde tutmak ve kolayca anlamak zorlaşır. Örnek verelim : Bir bankanın müşteri hesaplarının kaydını tutabilmesi için bir program geliştiriyorsanız yüzlerce fonksiyon ve binlerce değişken kullanmanız gerekir. Bileşen sayısının bu kadar fazla olması program parçalarının ve genel olarak büyük yapıların nasıl çalıştığını sizin için anlaşılmaz kılar.

Nesne yönelimli programlama (Object Orianted Programming) tam da burada devreye giriyor. NYP, değişkenleri ve fonksiyonları bir araya getirip sınıf(class) oluşturmanızı sağlayan bir paradigmadır. NYP'de genel olarak çeşitli nesneleri ya da kavramları modellemek için sınıflar kullanılır. Banka örneğine geri dönecek olursak, "Hesap" adında ve bir kullanıcı hesabını simüle eden bir sınıf oluşturarak işe başlayabiliriz. Sınıflar değişkenlerden ve fonksiyonlardan oluşur. Bir sınıfa dahil olan fonksiyonlara "metot" denir. Öyleyse bir hesabın ihtiyacı olan değişken ve metotları belirleyerek işe başlayabiliriz. Değişken olarak hesap numarası, hesap sahibinin adı ve hesap bakiyesini kullanabiliriz. Metot olarak da para yatırma ("bakiye" değişkenini artırma) ve para çekme ("bakiye" değişkenini azaltma) işlemlerine ihtiyacımız olacak.

Bir sınıfı tanımladıktan sonra bu sınıfı modellediğiniz her nesne için örneklendirmelisiniz. Banka örneğinde düşünecek olursak bankanın her müşterisi için bir hesap örneği oluşturmamız gerekir, böylece her müşterinin hesap numarası ve bakiyesi olur.
İşin içine girinceye kadar oldukça karmaşık görünse de NYP'nin temel mantığı onlar, yüzler ve binlerce nesneden oluşan bir sistem kurarak bu nesnelerin birbiriyle etkileşip istediğiniz etkiyi yaratmasını sağlamak.
Nesne yönelimli programlama, kullanılan tek programlama paradigması değil ancak en çok kullanılanı. Sınıf, nesne ve metotların temel kavramlarını anlamak Java, C# ve Python gibi dilleri kolayca öğrenmenizi sağlayacaktır.
 
Moderatör tarafında düzenlendi:
Geri
Üst