Hangi Yazılım Dilini Öğrenmeliyim?

Adem Efe Devrez
TechSheet
Published in
6 min readOct 19, 2023

Merhaba! Önceki yazımda yazılıma başlamadan önce bilmeniz gerekenlerden bahsetmiştim. Bu yazımda ise yazılım öğrenmenin ilk aşamasını, yani yazılım dili seçmeyi konuşacağız. İlk öğreneceğimiz yazılım dilini seçerken nelere dikkat etmeliyiz ve benim önerilerim neler? Hiç oyalanmadan yazıya geçelim.

Hangi Yazılım Dilini Seçersek Seçelim

Yazılm Öğrenmeden Önce yazımda bir yazılım dilini öğrendikten sonra diğerlerini öğrenmenin çok daha kolay olduğundan bahsetmiştim. Peki hangi aşamada artık diğer yazılım dillerini öğrenirken çok da zorluk çekmeyeceğimiz bir seviyeye gelmiş oluyoruz?

Neredeyse her yazılım dilinde ortak olan bazı konular var. Bunlara Temel Yazılım Kavramları diyoruz. Bu kavramları şöyle sıralayabiliriz:

  • Değişkenler (Variables),
  • Koşullu İfadeler (Conditional Statements),
  • Döngüler (Loops),
  • Fonksiyonlar ve Argümanlar (Functions and Arguments),
  • Standart Girdi/Çıktı (Standart Input/Output),
  • Yazılım Paradigmaları (Programming Paradigms).

İtiraf etmeliyim ki bu kavramlardan sonuncusunu yani Yazılım Paradigmalarını öğrenmek, kendinden önce gelen konuları öğrenmekle aşağı yukarı aynı zamanı alacak ve o aşamada artık zaten başka diller öğrenmek zorunda kalacaksınız. Nesne Tabanlı Yazılım (OOP), Fonksiyonel Yazılım (Functional Programming) gibi konular Yazılım Paradigmaları kapsamına giriyor. O yüzden bu adımı şimdilik atlayalım.

Geriye kalan beş maddemize bakalım. Bunlar her dilde mantığı aynı olan ve diğer tüm kavramların temelini oluşturan konular. Bunları öğrendiğiniz süreçte yazılım dilinizi değiştirmenize hiç gerek yok çünkü başka dilde de aynı şeyleri öğreneceksiniz, syntax değişecek yalnızca. O yüzden bu temel kavramları öğrenene kadar başlangıç için hangi yazılım dilini seçmiş olursanız olun, o dilde sabit kalmanızı öneririm. Bunları tamamladıktan sonra istediğiniz dile kolaylıkla geçiş yapabilirsiniz zaten, hiç sorun da yaşamazsınız.

Bu küçük konuyu aradan çıkardığımıza göre sıra asıl konumuzda.

Sıra asıl konumuzda.

Hangi Dili Seçeceğiz?

Bu sorunun cevabı çok basit, kullanacağınız dili seçin. Aklınızda net bir proje, net bir hedef mi var, mesela “Ben web sitesi yapacağım.”, “Ben oyun yapacağım.” gibi? O halde bu proje hangi dili gerektiriyorsa o dili araştırın ve öğrenin.

Bu bahsettiğim senaryo her ne kadar hoş olsa da dürüst olmak lazımki ben de dahil çoğumuz yazılım öğrenmeye aklında net bir hedef veya sektör olmadan başladı. Bu gayet doğal. Diyelim ki sektörlere bir göz gezdirdiniz ama halen hangisini seçmek istediğinize karar veremediniz, bu da doğal. Hemen karar vermek zorunda değilsiniz. Önce Temel Yazılım’ı öğrenebilir, bunun ardından zamanla aklınızda bir fikir oluşmasını bekleyebilirsiniz. Eğer durum buysa, aklınızda henüz bir sektör yoksa Python ile başlayın. Bu kadar. Python yüksek seviyeli bir dil olduğu için öğrenmesi de kullanması da oldukça kolay olan, hemen hemen yapmak isteyebileceğiniz her projede işinize yarayacak bir dil.

Biliyorum biraz hızlı oldu ama Python gerçekten hem kaynaklarının bolluğu hem kullanım alanlarının genişliği ve hem de kullanmasının kolaylığı sayesinde kesinlikle ilk yazılım diliniz olmaya uygun bir dil. Ben kendim de Python ile başladım ve tekrar başlayacak olsam yine Python ile başlardım. O yüzden size de bunu öneriyorum.

Peki ya aklınızda halihazırda bir sektör varsa? Mesela “Ben Web sitesi yapmak istiyorum.” diyorsanız? Bu durumda da Python ile başlamak gayet uygun ancak daha iyi bir seçeneğimiz var: JavaScript. Kullanacağımız dili seçmemiz gerektiğini söylemiştim ve bu senaryoda, yani eğer web sektörüne yönelmeye kararlıysanız, zamanınızın çok büyük kısmını JavaScript ile geçireceksiniz. Sonuçta web sitelerinin %98'i JavaScript kullanıyor JavaScript’i öğrenmek her ne kadar Python kadar kolay olmasa da yine de en az onun kadar geniş bir kaynak yelpazesine ve kullanıcı topluluğuna sahip. Kısacası, eğer web sektörüne ilgiliyseniz JavaScript öğrenin.

Peki ya Html ve Css? Web sitesi yapmak için onları da öğrenmemiz gerekmiyor mu? Evet, ama bu ikisi yazılım dili değiller. İşaretleme dili olarak geçiyorlar ve sitemizin işlevinden çok görünüşü ile alakalılar. O yüzden web sitesi yapmak istiyorsanız JavaScript’ten önce Html ve Css öğrenmenizi öneririm. Yine de bu senaryoda ilk yazılım diliniz halen JavaScript oluyor.

Başka bir senaryoyu ele alalım. Ya oyun yapmak istiyorsanız? Öncelikle oyun yapmanıza yarayan uygulamalara Oyun Motoru deniyor. Bunlar diğer yazılım alanlarında kullanınan text editor veya IDE’lere kıyasla daha gelişmiş uygulamalar ve siz de oyun yapmak istiyorsanız önce bir oyun motoru seçecek, ardından o motorda kullanılan dillerden birini öğreneceksiniz.

Oyun motorlarının en ünlüsü ve en yaygın kullanılanı Unity. Bu uygulamada yapmak isteyebileceğiniz herhangi bir şeyin rehberi internette muhtemelen vardır, çünkü çok büyük bir topluluğa sahip. Bu programı kullanırken karşılaşabileceğiniz herhangi bir problemi de çözmek tam da bu yüzden çok kolay. Eğer oyun geliştirme dalında bir iş bulmak istiyorsanız bu motoru seçmeniz akıllıca olacaktır çünkü iş ilanlarının yarısı direkt Unity istiyor.

Ancak Unity’nin bir problemi var, o da kullandığı dil olan C# (C-Sharp). C# her ne kadar güzel ve takım kullanımına uygun bir dil olsa da öğreneceğiniz ilk dil olma açısından size biraz problem yaratabilir. Kendiniz görün.

C#’ta “Hello World” yazdıran bir program

Bu, dilin zor olduğu anlamına gelmiyor ancak ilk kez yazılım öğrenecek olan birisi için en iyi tercih olmayabilir. Başka bir dilde yazılımın temelleri öğrenildikten sonra bu dile geçiş yapmak bence daha kolay olacaktır.

Bir başka ünlü oyun motoru olan Unreal Engine de aynı problemden muzdarip: onun dili de C++. İnanın bana C++ yazılıma başlamak için C#’tan da daha kötü bir seçenek.

Eğer amacınız yazılım öğrenmekten ziyade oyun yapmak ise Unity’nin Visual Script ve Unreal’ın Blueprints sistemleri size kod yazmadan görsel bir programlama deneyimi sunuyor. Çoğu kişi için bu sistemler C# veya C++ öğrenmekten daha kolay. O yüzden bu motorları kullanmayı öğrenmek istiyorsanız ancak bu dillerle yazılıma başlamak istemiyorsanız bu sistemleri de kullanabilirsiniz.

Peki ya hem oyun yapmak hem de bunun için bir dil öğrenmek istiyorsanız? O zaman sizi oyun motorları arasında favorim olan Godot ile tanıştırayım. Godot (Godoo diye telaffuz ediliyor) tamamen kullanım kolaylığı üzerine oluşturulmuş hem de Unity ve Unreal’in aksine tamamen ücretsiz ve açık kaynaklı, oldukça da az yer kaplayan bir uygulama. Kullanım kolaylığı kapsamına kullandığı dil de giriyor: GDScript. Tabi isterseniz bu oyun motorunda C# veya C++ da kullanabiliyorsunuz ama bu uygulamanın asıl dili olan GDScript, Python ve JavaScript’in bir tür sentezi gibi. GDScript’i öğrenmek de bu dilleri öğrenmek kadar kolay.

Python, JavaScript ve GDScript’in syntaxları

Neden C ile başlamamalısınız?

Yazılıma yeni başlayacak kişilere verilen tavsiyelerden biri de “C ile başla, böylece diğer tüm dilleri öğrenmek sana kolay gelecek.”tir. Bunun nedeni C’nin halen yazılım dili sayılabilecek belki de en düşük seviyeli dillerden birisi olması. C’den bahsetmek gerekirse adeta “Zamanında modern olan, zamanla klasikleşir.” sözünün ete kemiğe bürünmüş halidir. 1972 yılında piyasaya çıktığında derleyicisinin harika olması ve yazılımcıya özellikle bellek yönetimi üzerine tanıdığı özgürlükler sayesinde (Bir avuç sihirli kelime işte) yazılım dilleri arasında zirveye çıkmış ve kendisinden sonra gelen neredeyse her dili etkilemiştir. Ayrıca C; yazılımcılar arasında yaygın kullanımda olan en hızlı dil olması, her Bilgisayar Mühendisliği ve Bilgisayar Bilimi müfredatında yer alıyor olması ve en ufak bir hatada hiçbir açıklama olmadan Segmentation Fault verip size hayatı zindan etmesi ile ünlüdür. Abarttığımı sanıyorsanız bu dilde yazılmış bir programın hatalarını ayıklamakla geçen bir dakikanın, bir saat koşmakla eşdeğer kalori yaktırdığını söylemem yeterli olur. Zaten size C ile başlamanızı öneren insanların temel dayanak noktası “C’ye alışınca başka bir yazılım dili öğrenmek aşırı kolay geliyor.” söylemidir. Doğru. Hayalet biberi yerseniz cin biberi tatlı gelir. Ama cin biberinin tatlı gelmesi için dil reseptörlerinizi haşat etmek istiyorsanız buyrun. Fikrimi sorarsanız, önermiyorum. Temel Yazılım’ı öğrendikten sonra manuel hafıza yönetimi hakkında deneyim kazanmak için güzel bir dil olsa da sıfırdan yazılımı öğrenmek için çok da iyi bir seçenek değil.

Toparlamak Gerekirse

Bu yazımda Temel Yazılım Kavramları’nın neler olduğunu ve bu kavramları öğrenene kadar tek bir yazılım dilinde sabit kalmanın daha iyi olacağını anlattık; ardından Python, JavaScript ve GDScript’in yazılım öğrenmeye başlamak için iyi seçenekler olduğundan, C’nin ise başlangıç için çok da iyi olmadığından bahsettik. Şimdi dilimizi de seçtiysek, peki yazılımı nasıl öğreneceğiz? Hangi kaynakları kullanalım, çalışma programımız nasıl olmalı? Bu da bir sonraki yazımın konusu olacak. O zamana kadar kendinize iyi bakın, hoşça kalın!

--

--