Hangi programlama dilini kullanmalıyım?
Bir çok insan hangi programlama dilini öğrenmesi konusunda kararsızlık yaşıyor. Birçok programlama dili ile yazılım geliştirmiş ve eğitimini vermiş biri olarak bu konuda ben de bir yazı yazmak istedim. Umarım programlama dili öğrenmeye başlayacak kişilere faydası olur.
Öncelikle hiç programlama dili bilmiyorsanız algoritma öğrenmeniz gerekmekte. Algoritma, bir işi çözmek için izlenmesi gereken yol olarak tanımlanmaktadır. Algoritma öğretilirken önce türkçe olarak mantığı öğretilir. Örneğin çok basit anlamda kullanıcı tarafından girilen 2 sayının toplanması isteniyorsa; kullanıcıdan 1. Sayıyı al A değişkenine yaz, kullanıcıdan 2. Sayıyı al B değişkenine yaz, A+B işlemini yap ve toplam değişkenine yaz, toplam değişkenini ekrana yazdır gibi… Tabi bu aşamada akış şemalarından da yararlanılabiliyor. Fakat akış diyagramlarını ezbere bilmek zorunda değilsiniz. Ama faydanıza olabilir…
Algoritma mantığını kavradıktan sonra hangi platforma yazılım geliştirmek istediğiniz çok önemli. Bu platformlar masaüstü-windows/linux, mobil-android/ios, web, gömülü sistem(arduino gibi) vs. olabilir. Seçtiğiniz programlama dili istediğiniz platforma tam olarak uymayabilir. Ayrıca platform haricinde özel bir alanda da çalışmak istiyorsanız o alana daha uygun olan programlama dilleri seçmeniz gerekebilir. Bu özel alanlardan kastım robotik, görüntü işleme, veri madenciliği, yapay zeka, vs. Bu alanlar hakkında bilginiz yoksa bunu şu an önemsemeyin.
C Programlama dili: Eski ama sağlam bir programlama dilidir. Makine diline yakındır. Makine diline yakın olması demek insanlar için daha zor olması demektir. Yani insan diline yakın olan bir programlama diliyle 2 satır kodla yapacağınız işlemi 10 satırda yapmanız gerekebilir. İşletim sistemi yazmayacaksanız veya gömülü sistemlerde kod yazmayacaksanız bu programlama dilini seçmenize gerek yok. Makine diline yakın olduğu için yazdığınız program daha hızlı çalışabilir. Fakat şimdiki bilgisayarların da hızlı olduğunu düşünürsek, özel bazı uygulamalar hariç kendinizi yormanıza gerek yok 😉
C++ programlama dili: C dilinin nesne tabanlı halidir. Nesne yönelimli programlama (object oriented) programlamada kullanılan bir yöntemdir. Zaten ilerleyen zamanlarda kendinizi geliştirdikçe öğreneceksiniz. C programlama diline benzer. Bu da makine diline yakın olup C’ye göre biraz daha kolaydır. Fakat yine de genel masaüstü programları, web programı yazacaksanız gerek yok. Fakat bazı özel alanlar için C veya C++ kullanmanız gerekebilir. Örneğin arduinoyu C kodlarıyla programlayabilir, görüntü işleme çalışacaksanız da c,c++ kodları kullanmanız gerekebilir. C++ ile de masaüstü uygulamaları veya gömülü uygulamalar yapabilirsiniz.
C#: Eğer hem windows programı yazarım, hem web uygulamaları hazırlarım diyorsanız tercih edebilirisiniz. Hatta xamarin gibi araçlarla mobil uygulama da hazırlayabilirsiniz. Microsoft’un son geliştirdiği programlama dillerindendir. Programlar .net framework üzerinde çalışmaktadır. Genelde de visual studio ide programı ile kodlanmakta, geliştirilmektedir. Visual studionun ücretsiz sürümü de bulunmaktadır. Fakat ticari olarak kullanımda ekstra ücretler vermeniz gerekebilir. Kullanımı kolaydır. Görsel arayüzü sayesinde nesneleri sürükle bırak yöntemiyle yerleştirebilirsiniz. Ne demek bu? Yani butonları, textboxları, labelleri görsel olarak programınıza yerleştirirsiniz. Bu hem Windows uygulamalarında geçerli, hem de web uygulamalarında. Web uygulaması geliştirmek için asp.net platformu kullanılmaktadır. Web uygulaması yaparsanız, internette yayınlamak istediğinizde de kolayca hosting bulabilirsiniz. Binlerce hosting firması mevcuttur.
Java Programlama Dili: internette de, bazı yazılımlarda da sıkça görmüşsünüzdür. Bu programın kullanılması için java yüklemeniz gerekmektedir vs. gibi. Java da c# gibi özel bir platform üzerinde çalışmaktadır. Yüklemeniz istenilen de bu platformdur. Bu platformun yüklendiği yerlerde çalışabilmektedir. Örneğin o platformu windowsa da, linuxa da, mace de kurabilirsiniz. Ve hepsinde çalıştırabilirsiniz. Bu anlamda platformdan bağımsız olduğu söylenmektedir. Aslında c# ı da bu amaçla çıkardılar ama Linux için .net framework yayınlanmamaktadır. Java da çok kullanılan programlama dillerindendir. Masaüstü, web, mobil(android) uygulamaları geliştirebilirsiniz.
Açık kaynak kodlu olarak yayınlandığı için de ticari yazılım hazırlayınca da ekstra bir ücret ödemeden satabilirsiniz. Genel olarak Türkiye’de yazılımcılar arasında en çok maaşı alanlar da bu grupta yer almaktadır. Yalnız c#’a göre biraz daha zordur. Zorluğu aslında programlama dili açısından değildir. Çünkü c# ve java yazım olarak birbirine çok benzemektedir. Zorluğu neden mi? Örneğin Windows uygulaması geliştirecekseniz c#taki kadar kolay kullanımlı bileşenler yer almamaktadır. Aynı şey webde de geçerli. Fakat başka kullanıcıların geliştirdiği çok fazla kütüphaneye, bileşene de ulaşabilirsiniz. Bir yönden avantaj, bir yönden dezavantaj olarak gözükmekte bu durum…
Aynı sorun web için de geçerli. Ayrıca web için de aspnet kadar çok hosting bulamayabilirsiniz.
Eğer androide uygulama geliştirecekseniz java kullanmanız gerekiyor.
Üstteki programlama dilleri kod yapısı olarak birbirlerine çok benzemektedir. Sıradaki programlama dili olan python biraz farklı.
Python Programlama Dili: Kodları insan diline yakındır. Diğer programlama dillerine göre kolaydır. Hem web, hem masaüstü, hem de mobil platformda kullanılmaktadır. Gün geçtikçe de geliştirilmekte, desteklenmektedir. Bazı üniversitelerde algoritma artık bu dil ile öğretiliyor. Fakat dil olarak kolay olsa da, görsel arayüz konusunda Microsoft studio gibi bir idesi yok.
Php programlama dili: Eğer web uygulamaları geliştirecekseniz tercih edebileceğiniz bir programlama dili. İnternette hostingi en çok bu programlama dili için bulabilirsiniz. WordPress, opencart, joomla gibi birçok içerik geliştirme platformu bu programlama dili ile yazılmıştır. Programlama dili olarak c-c++,java gibi bir yazımı var.
Tabi web uygulamaları geliştirecekseniz öncelikle html-css öğrenmeniz gerekiyor. Html ve css birer programlama dili değildir. Sitenin görsel halini hazırlamak için kullanılan bu kodların arasına php kodları yazabiliyorsunuz. Bunların eğitimi için biraz İngilizceniz varsa w3schools sitesini kullanabilirsiniz.
Ben web eğitimi almak isteyenleri genelde asp.net e veya phpye yönlendiriyorum.
Javascript: Önceden sadece web tarayıcısı üzerinde çalışan, sunucu gerektirmeyen bir script diliydi. Fakat şimdi hem sunucu(server) tarafında(bknz:nodejs), hem istemci(client) tarafında kullanılabiliyor ve geliştiriliyor, destekleniyor. Ayrıca php de yazsanız, asp.net c# da kullansanız javascripte ihtiyacınız olacak. Fakat korkmanıza gerek yok. Php,c#,java, javascript yazım tarzı olarak birbirine çok benziyor.
İstemci tarafında javascript kullanırken, kodları html kodlarının arasına yazabiliyorsunuz.
Şimdilik yazıyı burada sonlandırayım. Sorularınız varsa sorabilirsiniz. Daha sonra bu yazıya eklemeler yapacağım.
Detaylı Bir yazı olmuş bilgilendidiğiniz için teşekkür ederim.