Hangi Programlama Dillerini Öğrenmeliyim

Merhaba arkadaşlar, bu blog yazımda sizlere Türkiye ve dünya genelinde en popüler programlama dillerini anlatmaya çalışacağım. Öncelikle sadece programlama dilleri değil aynı zamanda script dilleri, betik dilleri hatta veri tabanı sorgulama dilleri de işin içine dahil olacak.

Bununla yetinmeyip bu dillerin kütüphanelerini(Frameworkler) ve bu diller ile yazılmış CMS sistemleri(İçerik Yönetim sistemleri veya Hazır sistemleri) de anlatacağım.

Bu programlama dillerini anlamaya çalışırken daha iyi kavrayabilmek için bazı kavramlara hakim olmak gerekir. Bu kavramları bu makalemde her geçtiği yerde açıklamaya çalışacağım. Öncelikle programlama dili(Programming language), bilgisayar dilleri(Computer Languages), script dilleri(Script Languages), betik dilleri(Markup Languages),stil dilleri(Style Sheet Languages), veritabanı sorgulama dilleri(Database Management Languages), Yorumlayıcı diller(Interpreter languages) ve Derlenen Diller(Compiler Languages) , Alt seviye(Low-Levelling Languages), orta seviye, üst seviye programlama dilleri(High-Levelling Languages), Assembly programlama dili, Söz dizimi(Syntax), İşletim sistemi gibi bir çok terimle karşı karşıya kalacağız. Yazı içerisinde bütün bu terimlerden bahsedeceğim.

Programlama Nedir?

Programlama, özellikle bilgisayarlar başta olmak üzere makineleri veya elektronik devreleri kontrol etmek için bir dizi komut yazmaktır. Yazılan bu komutlar hedef cihazlar ile iletişim kurarak istenilen komutların belli bir sıraya göre yapılmasını sağlarlar. Bu komutların tümüne programlama dili denir. Dünya genelinde 2.000 den fazla programlama dili olduğunu biliyorum fakat günümüzde popüler olanlara değineceğim.

Bilgisayar dilleri(Computer Languages) ise tüm dilleri kapsayan bir terimdir: Programlama dilleri(Programming languages), script dilleri(Script Languages), veri tabanı sorgulama dilleri(Database Management Languages), stil dilleri(Style Sheet Languages) ve betik dilleri(Markup Languages).

İlk olarak hangi programlama dilinden başlamalıyım?

Bu sorunun tam bir cevabı yoktur. Öncelikle yukarıda ki resme dikkatlice bakmanızı tavsiye ederim. Bilgisayar dünyasında yazılım sektörünü tercih ettikten sonra, çalışmak istediğiniz alanı da seçmelisiniz. Yazılım dünyasında günümüzde başlıca 9 alan olduğuna inanıyorum:

  1. Desktop(Masaüstü uygulama geliştirme)
  2. Mobile(Akıllı telefonlar için mobil uygulama geliştirme)
  3. Embedded(Gömülü sistemler için program yazma)
  4. Web(Web uygulamaları geliştirme)
  5. Game(Oyun programlama)
  6. Data Analysis(Büyük veri analizleri yapma)
  7. Operating System(İşletim Sistemleri geliştirme)
  8. Database(Veri tabanı)
  9. Security & Hacking(Güvenlik ve Hack)

Yukarıda ki alanlardan hangisinde veya hangilerinde çalışmak istediğinize karar vermelisiniz. Bir karar vermekte zorlanıyorsanız makaleyi sonuna kadar okuyabilirsiniz. Vereceğiniz kararı etkileyecek bir çok etken olacak tabi ki: Aylık ne kadar kazanacaksınız? İş ilanlarında hangisi daha çok karşına çıkıyor? Hangi alanda çalışırken zevk alarak kod yazacaksınız? Hangi alan gelecek için daha parlak imkanlar sunuyor? Kendi mesleğinize en yakın alan hangisi? İlgilendiğiniz konuya en yakın alan hangisi? gibi birçok etken var.

Şimdi yukarıda ki alanları incelemeye başlayalım:

1-Desktop

Yukarıda ki programları ya da bu programlara benzeyen başka programları geliştirmek için öğrenmeniz gereken başlıca popüler programlama ve script dilleri: C, C++, C#, Java, Python.(Sadece birini veya birkaçını öğrenebilirsiniz). Windows işletim sistemlerinde çalışacak programlar için genellikle C# tercih edilse de C ve C++ bu alanın vazgeçilmez iki programlama dilidir.

2-Mobile

Mobil Application dediğimiz zaman akıllı telefonlarda kullandığımız programlar aklınıza gelebilir. Artık akıllı telefonlar hayatımızın vazgeçilmez bir parçası olmaya başladılar ve mobil uygulamalar her geçen gün artan mobil kullanıcı sayısı ile daha önemli hale geliyor. Artık web sayfalarımıza gelen kullanıcıların neredeyse yarısından fazlası mobil cihazlar üzerinden geliyor. İşte bundan dolayı sektörün geleceği oldukça parlak görünüyor. Mobil uygulamalar şu işlemleri yapabilir: Santimetreyi milimetreye çevirebilir, namaz vakitlerinde ezan okuyabilir, bir web sayfasının mobil uygulaması olabilir ya da basit bir İngilizce test uygulaması olabilir.

Burada bilmemiz gerek başka bir konu daha var. Hangi cihazlar veya bu cihazlar üzerinde ki hangi işletim sistemleri için mobil uygulama geliştireceksiniz. Bildiğiniz gibi her akıllı telefon üzerinde kendine ait bir mobil işletim sistemi vardır. Şu anda popüler olan 3 mobil işletim sistemi vardır:

  1. -Android
  2. -iOS
  3. -Windows Phone

Örneğin Android işletim sistemlerinde uygulama geliştirmek için Android ve JAVA dillerini fakat IOS işletim sistemleri için Objective-C veya Swift programlama dillerini öğrenmeniz gerekir. Swift programlama dili 2014 yılından itibaren Apple tarafından desteklenen kendi geliştirdiği bir programlama dilidir ve Objective-C yerine bu dili öğrenmeye başlayabilirsiniz. Ancak daha önce iOS için yazılmış binlerce uygulamanın Objective-C ile yazıldığını unutmayalım. Ayrıca Swift daha yeni olduğu için aradığınız her şeyi hemen bulmakta zorlanabilirsiniz fakat Objective-C ile ilgili bir çok doküman mevcuttur.

Ancak Android için ayrı IOS için farklı farklı diller öğrenmek istemiyorsanız React-Native veya Flutter öğrenerek tek bir dil ile bu platformlar için uygulama geliştirebilirsiniz.

3-Embedded

Embedded sistemler dediğimiz zaman aklımıza gömülü sistemler gelmelidir. Microprocessor, Microcontroller, ve Processor Core piyasasında kullanılan en yaygın dil C dilidir. Bugün yazılmış olan gömülü sistemlerin yaklaşık %95 miktarı C programlama dili ile yazılmıştır. Android cihazlar için Java kullanılırken Raspberry Pi’nin resmi dili Python dilidir.

4-Web

Web uygulamarı dediğimiz zaman aklınıza her türlü web sayfası gelebilir.Bugün dünya da milyonlarca web sayfası var ve bu sayfaların arka planında ki yazılım dilleri birbirinden farklı olsa da hepsinde ortak olan bir kaç tane dil vardır diyebiliriz : HTML, CSS, Javascript.

HTML, CSS, Javascript dilleri tüm web sayfalarında kullanılabilir fakat buna ek olarak JAVA, PHP, ASP, Python, Ruby programlama dillerinden herhangi birisini kullanabilirsiniz.

5-Gaming

Oyun programlamak oldukça zevkli bir iştir. Küçük oyunları tek başınıza kodlayabilirsiniz ama büyük çapta oyunlar için bir ekip kurmalı ya da başka bir ekibe dahil olmalısınız. Çeşitli platformlarda oyunlar geliştirebilirsiniz: Masaüstü, Mobil veya Web(Online). Her platform için ayrı bir dil öğrenmeniz gerekebilir. Örneğin Web tarayıcılar da ya da Facebook üzerinde çalışacak bir oyun için HTML5, Javascript ya da Flash-(Actionscript 3.0) oyun geliştirmek için yeterli iken mobil cihazlara oyun geliştirmek için Objective-C, Swift, Android, Java, Python masaüstü oyunlar için C, C++, C# gibi programlama dillerinden istediğinizi tercih edebilirsiniz. Windows işletim sistemi üzerinde geliştirilen bir çok oyun C,C++,C# ya da Visual Basic kullanılarak yapılmıştır. Büyük konsol oyunlarında C, C++ ve Assembly dilleri tercih edilmektedir.

6-Veri analizi(Data Analysis) ve Yapay zeka

Data Analysis demek büyük verilerin(Big Datas) analizleri demektir. Bu alan genellikle mühendislik, matematik, tıp gibi konularda veya üniversitelerde tercih edilir. Gerçek dünya ile pek alakalı olmadığı için buralarda tercih edilen programlama dilleri biraz daha özelleştirilmiş dillerdir ve bu alanlarda özel fonksiyonlara ve fazlaca dokumana sahiptirler. En fazla popüler olan programlama dilleri R, Matlab, Python ve JAVA‘dır. Ancak bu dillerin haricinde C ve C++ da kullanılmaktadır. Örneğin resim işleme(image processing) amacıyla Matlab tercih edilir. Biyoloji de DNA verilerinin analizinde daha çok R Programlama dili tercih edilmektedir. Üniversitelerde Mühendislik Fakültelerinde de genellikle Matlab ve Python dersleri verilmektedir.

7-Operating System

Operating Systems dediğimiz zaman aklımıza işletim sistemleri gelmelidir. Windows, MacOSX, Linux, iOS, Android… Bir çok işletim sistemi C ve C++ kullanılarak yazılmıştır. Sizler yeniden bir işletim sistemi yazmak isterseniz bu iki dili iyi bir şekilde bilmeniz gerekmektedir. İşletim sistemi alanında popüler olan diller C ve C++. Aslında Java ile JavaOS adında bir işletim sistemi yazma denemesi olmuş ama pek popüler değil.

8-Database

Database dediğimiz zaman aklımıza çeşitli veri tabanları gelmektedir. Oracle, MYSQL, MSSQL, SQLite en bilinen örnekleridir. Büyük çapta uygulamalarda (Web, Mobil, Desktop…) verilerimizi kayıt altında tutmak için veri tabanları kullanırız ve bu veri tabanlarından istediğimiz verileri çekmek için de SQL(Structured Query Language) kullanırız. Yazılımcı olan herkesin bilmesi gereken bir sorgulama dilidir. SQL bir programlama dili değildir. Herhangi bir program geliştirilmez ancak sorgulama yapılır. Ayrıca mobil uygulamalar için Firebase bilmeniz gerekecektir.

9-Security & Hacking

Güvenlik ve Hack alanında çalışmak isterseniz, aslında tüm programlama dillerini az çok bilmenin yanında Python programla dilini çok iyi bilmeniz ayrıca Web programlamada da uzman olmanız gerekir.