Hangi Programlama Dili? En Çok Kazandıran Diller

Hangi Programlama Dili? En Çok Kazandıran Diller

11215
Yazılımcı adaylarının ilk sorusu: Hangi programlama dilini öğrenmeliyim?

Elektronik aygıtlara (makinelere) neyi nasıl yapacaklarını bir sistematik halinde anlatan arkadaşlara yazılımcı diyoruz (yazılım mühendisi, yazılım uzmanı, yazılım geliştirici vb. tüm arkadaşları aynı çatı altına aldık). Elbette bu işe ilk başlayanların bildiği ilk şey: Makineler için sadece 1 ve 0 vardır. Bir ve sıfırdan başlayarak yazılım evrenini anlatmaya niyetimiz yok. Bu yazımızda, yazılım evrenini keşfetmeye yeni başlayan yazılımcı adaylarının, hangi amaç için “hangi programlama dili” ile başlamaları ve öğrenmeleri gerektiğini anlatarak, en çok kazandıran programlama dillerini tanıtmaya çalışacağız.

Ayrıca yazımızı hazırlarken http://carlcheo.com sitesi tarafından hazırlanan “Önce Hangi Programlama Dilini Öğrenmeliyim?” adlı aşağıdaki inografikten de faydalandığımızı söyleyelim. İnografiği incelemeniz oldukça zevkli bir yol gösterecektir. Özellikle Yüzüklerin Efendisi karakterlerine yapılan atıflar çok başarılı.

inografik
Hangi programlama dilini seçmek gerektiğine dair eğlenceli bir inografik

Burada anlatacağımız tavsiyelerle hemfikir olmayacak ya da anlatılanları eksik bulacak yazılım üstatları da olabilir. Bizimki acizane yeni başlayacak arkadaşlara tavsiye vermek ve genel hatları belirlemek olacak. Dolayısıyla üstatlarımıza da saygılarımızı sunuyoruz.

Yazılımların Taban Alanları

Programlama dillerine geçmeden önce, hangi alanlarda çalışmak istediğinize karar vermelisiniz? Bu farklı alanlar kendi bildikleri dilleri makine kodlarına çevirerek sistemin çalışmasını sağlayacaklar.

İlk etapta neyi neden yapmak istediğinizi, yani programlama dilini neden öğrenmek istediğinizi keşfetmelisiniz. Bu keşfi ise öğreneceğiniz dili hangi alanda kullanacağınızı bilirseniz yapabilirsiniz.

Biz bu alanları Web, Mobil, 3D/Oyun ve Network/Güvenlik olarak dört tabana ayırıyoruz. Alanları gözden geçirmeden önce bir de bu alanların altında yer alabilecek platformlara bakalım.

Yazılım Platformları

Her bir alanın altında Microsoft, Apple, Android ve Unix/Linux platformlarının olabileceğini varsayalım. Bu durumda seçeceğiniz alanın altında hangi platformu kullanacaksanız öğrenmeniz gereken programlama dili de değişecektir.

Kendi ürettikleri ya da geliştirdikleri yazılım ve donanımlara göre kendi platformlarının kullanılmasını isteyen dev şirketler ve açık kaynak kod taraftarı kitleler, alışageldikleri programlama dilleri dışında bir dilin bu platformda kullanılmasını istemezler ve sistemlerini buna göre optimize ederler.

platforms

Şimdi yazılım alanlarına bakarak, hangi platform için hangi dilin tercih edilmesi gerektiğine bakalım.

Web Tabanlı Yazılımcılık

Web tabanlı yazılımcılık yapacaksanız; PHP, Python, C# ya da JavaScript dillerinden birini veya birkaçını seçmelisiniz. Peki hangi durumlar bunlar? Dillere göre inceleyelim.

PHP, en popüler web script dilidir. Sunucu taraflı (kodların asıl kısmı sunucu tarafında görülür, istemciler kısa sonuçlar ya da sadece HTML kodları görür) çalışan bu dil, tüm platformlar tarafından desteklenir.

Python, web tabanlı programcılıkta gelişimini henüz tamamlamamış ancak çok güçlü bir potansiyele sahiptir. Bu güçlü potansiyeli gören YouTube, Google, Facebook, NASA ve CERN gibi büyük kurumlar da Python kullanmaktadır. Pek çok Linux dağıtımında ön tanımlı kurulu gelen bu dil, açık kaynak kod severlerin sevdiği bir dildir.

custom-web-development
Web tabanlı programlama günümüzde oldukça zengin öğeler barındırıyor

C# (si şarp şeklinde telaffuz edilir), Microsoft‘un geliştirdiği yeni nesil programlama dilidir. Microsoft’un .NET Teknolojisi için geliştirilmiş dillerden biridir. Eğer Microsoft tarafından çizilen teknoloji yolunda basamakları çıkacaksanız, C# sizin için olmazsa olmaz bir dil. Diğer dillere göre daha zor öğrenilse de diğer dillerden C#’a geçiş yapanlar için bu zorluk biraz yumuşuyor.

JavaScript, yaygın olarak web tarayıcılarında kullanılan dinamik bir programlama dilidir. Mozilla tarafından geliştirilen dil, çoğunlukla istemci tarafında çalışan betiklere sahiptir. Elbette sunucu tarafında çalışan platformlara da sahiptir. Twitter gibi gerçek zamanlı veri akışlarının olduğu tasarımlar için bu dilin tercih edilmesi uygun olabilir (ki Twitter JavaScript tercih etmektedir).

Mobil Tabanlı Yazılımcılık

Günümüzde mobil cihaz dendiği zaman bu cihazların kullandıkları işletim sistemlerini paralel olarak düşünüyoruz. Dolayısıyla mobil tabanlı bir programlama için genel anlamda üç platformumuz var; Apple, Android ve (piyasada az yer kaplasa da) Windows.

mobileprogramming
Mobil programlamada platform seçimi önemli

Apple platformunda mobil yazılım geliştirecekseniz C dili üzerine yazılmış Objective-C öğrenmeniz gerekecek. Objective-C, mobil platformlarda MacOS ve iOS tabanlı işletim sistemleri dışında pek bir işinize yaramayacaktır (daha ne olsun). Bir sonraki adım olarak Apple’ın Swift dilini öğrenmeniz sizi Apple tabanlı sistemlerde baş tacı haline getirebilir.

Android tabanlı platformlar için ise Java sizin için öğrenilmesi gereken mutlak dil. Tüm işletim sistemlerinde ve milyarlarca cihazda çalışabilen Java, sadece Android tabanlı sistemler üzerinde çalışanları değil, neredeyse tüm platformlar için program geliştirenleri zengin etmeyi bilmiştir. Gmail’in Java kullandığını söylemeden de geçmeyelim.

Microsoft’un Windows işletim sistemli mobil cihazlarına ve (ender de olsa) Windows kullanan diğer mobil cihazlara yönelik program geliştirmek isteyenler için karşımıza yine C# çıkıyor. Zaten bir yerde Microsoft ya da .NET ismini gördüyseniz bilin ki orada C# vardır. Microsoft’un hala dünyadaki en yaygın işletim sistemine sahip olduğunu bilenler ve bundan dolayı iştahı kabaranlar için tavsiyemiz C#.

Şimdilik diğer mobil işletim sitemlerini, piyasadaki oranlarının çok düşük olması nedeniyle es geçiyoruz.

3D/Oyun Yazılımcılığı

Her ne kadar Minecraft gibi popüler oyunlar Java kullansa da (mobil oyunları mobil yazılımcılık alanına sokuyoruz) 3D programcılık ve oyunlara yönelik yazılımcılıkta tahtın sahibi C++. C’nin karmaşık bir yapısı diyebileceğimiz bu dil, endüstriyel pek çok alanda da vazgeçilmezdir.

cpp
Oyun programlamada C++ zirvede

Yardım almadan öğrenmek pek kolay olmasa da oldukça güçlü olan bu dili, işletim sistemleri ve donanımlara yönelik yazılımlarda görebilirsiniz.

Network/Güvenlik Tabanlı Yazılımcılık

Bilgisayar ağlarıyla (mobil olsun olmasın) uğraşacak yazılımcı adayları C, C#, Java ve Python tercih edebilirler.

C, neredeyse tüm işletim sistemlerinin (Windows, GNU/Linux, MacOS, Unix gibi) yapımında %95’lere varan oranda kullanılmış, sistem, sürücü, sistem modülleri ve hız gereken her yerde kullanılan oldukça yaygın ve sınırları belirsiz bir dildir. Tüm işletim sistemlerinde kullanılmış olması ve donanım programlamaya yönelik tercih edilmesi nedeniyle network donanımlarının da programlanmasında en çok tercih edilen dillerdin başında gelir. Neredeyse tüm programlama dillerinin ortak dili olan C, en eski ve en fazla kullanılan programlama dillerinden biridir.

ccc
C, en eski ve en fazla kullanılan programlama dillerinden biridir.

Java, network ve internet uygulamaları için geliştirilmiş yüksek seviyeli bir programlama dili olduğundan, herhangi bir platformdan bağımsız olarak, ağ üzerindeki her cihazda çalışır. En fazla rağbet gören ve kazandıran bu dil, network programlamada da oldukça fazla tercih edilir.

C#,kullanılacak platformun Microsoft tabanlı sistemlerden oluşup oluşmadığına bakılmaksızın, C ve Java’daki birtakım zorlukları atlatan, ancak C ve Java’nın güzel özelliklerini barındıran bir programlama dilidir. Görsel bir yapıda çalışabildiğinden C# ile kod yazmak C ve Java’ya göre daha avantajlıdır.

Ağ ve internet programcılığına yönelik kullanılan yazılımlarda da bu üç dilin (C, Java ve C#) sıklıkla kullanıldığını görüyoruz. Yani network ve internet programcılığında genel anlamda bu üç dilin hüküm sürdüğünü söyleyebiliriz.

python_logo
Linux dağıtımlarında öntanımlı yüklü gelen Python, network güvenliği konusunda sık karşılaşılan bir dil olmaya başladı

Ancak, son yıllarda Backtrack ve Kali Linux dağıtımlarında yer alan bilgi toplama, zayıflık tarama gibi penetrasyon testlerine yönelik yazılımları barındıran güvenlik uygulamalarında C ve C++ haricinde Python ve Ruby dillerinin oldukça fazla yer aldığını görüyoruz.

Daha Onlarca Dil Var

Yazımızda bahsetmediğimiz ve çok büyük emeklerle yazılmış daha onlarca programlama dili olduğunu da bilmenizi isteriz. Biz bu yazıda sadece programlamaya yeni başlayacak kişilerin hangi programlama dili ile başlamaları gerektiği ve önde gelen diller hakkında fikir vermek istedik. Tanıtmaya çalıştığımız diller, programcılarına en çok kazandıran programlama dilleri.

proglanguages
Adını yazımızda anamadığımız onlarca dil var

Yazımızı bitirirken, şöyle bir platform/dil eşleştirmesi yaparak bitirelim:

Microsoft /C#
Apple / Objective-C
Android / Java
Linux / C, C++, Java, Python ve Ruby (tercih sizin)
Web Uygulama / Java Script, PHP, C#, Python (tercih sizin)
Network / C, Java ve C# (tercih sizin)
Güvenlik / C, C++ (ama yanında mutlaka Python ya da Ruby)

 

BİR CEVAP BIRAK