Hangi Programlama Dilini Öğrenmeliyim?

Bilgisayarlarla çalışmayı veya programcı ya da geliştirici olmayı aklınızdan geçirdiyseniz mutlaka kendinize şu soruyu sormuşsunuzdur: Hangi programlama dilini öğrenmeliyim?

Bu soruyu soranlar genelde sayfalarda Google araştırması, onlarca makale okur, bir iki tanıdık yazılımcı bulup, özellikle sektörde çalışan yazılımcılarla iletişime geçip bu soruyu yöneltir. Her kafadan ayrı bir ses, farklı bir düşünce, farklı bir dil önerisiyle karşılaşabilir. Araştırmayı tamamladığında önünde bir çok programlama dili olur.

Bu sorular ile bir araştırma yaptığınızda birçok cevap ile karşılaşmanız aslında normal bir durum. Çünkü programcılığın ne tek bir dili, ne tek bir yazım şekli, ne de tek bir platformu vardır. Haliyle siz bu sorunuza cevap aradığınızda bir okuduğunuz makale iOS platformunda mobil uygulamalar geliştiren uzman bir yazılımcıya ait olurken bir diğer makale Raspberry Pi ile nesnelerin interneti (IoT) üzerine geliştirmeler yapan başka uzman bir yazılımcıya ait olabilir. Ya da masaüstü geliştirici olan biri .NET üzerinden C# üzerinde bir yazılımcıya ait olabilir. Ne onlar yalan söylüyor, ne de siz yanlış bir siteye girdiniz. Bu yazı bir C# yazılımcının yazısı :).

Aslında şöyle de bir gerçek var; tek bir dilde uzman olarak bir yerlere gelmeniz, ona uygun işler bulabilmeniz çok zor. Yeri geldiğinde aklınızdaki bir proje başka dilleri de size çekecek, yeri geldiğinde de işe girdiğiniz firma biz X dilini kullanıyoruz, sen de onu kullanacaksın, yada biz artık X dilinden Y diline geçiyoruz diyebilir. Burada asıl amacınız dil fanatikliğini de kenara bırakıp programlamayı öğrenmek olmalıdır. Eğer siz gerçek bir programcı olursanız ilk kez karşılaştığınız bir dili öğrenmeniz, onu projelerinize katmanız en fazla 1 hafta hatta 1 gün olacak. Programlamayı araba sürmek olarak düşünebilirsiniz, siz araba sürmeyi bildikten sonra bindiğiniz arabanın bir önemi olmamalı. Araba sürmeyi Tofaş’ta öğrenmiş olabilirsiniz ama günü geldiğinde şirket size Mustang verdiğinde ben tofaşçıyım, haydi eyvallah” diyip gitmemeniz gerekir. O yüzden tekrar söylüyorum, asıl amacınız iyi bir program nasıl geliştirilir, yazılım nasıl inşa edilir temel amacınız bu olmalı.

Bunlar bir yana gelelim “Hangi programlama dilini öğrenmeliyim?” sorusu sorulduğunda göz önünde bulundurulması gereken kişisel etkenlere.

Hedefinizi belirleyin

İlk önce hangi kodlama dilinden başlamalıyım değil de hangi alanda ben iş yapacağım ya da kendimi geliştireceğim olmalı. Web mi?, masaüstü mü?, yoksa mobil uygulama alanında mı?

Gelin beraber bakalım…

Web siteleri yapmak istiyorum hangi dili öğrenmeliyim?

   Başlangıç için web sitesi yapmayı seçmenin öncelikle doğru bir adım olduğunu düşünmüyorum. Çünkü tek bir dili kullanarak profesyonel bir site yapamazsınız. Şöyle bir örnek vereyim siteyi bir insan vücudu olarak düşünürsek eğer öncelikle vücudun iskeletini oluşturmak lazım ( HTML ). Her vücudun olmazsa olmazı iskelet sistemidir ki bir web sitesi için de iskelet HTML’dir. HTML ile ana iskeleti oluşturduk. Bitti mi? Hayır. O iskeleti eli yüzü düzgün insana dönüştürmemiz lazım, birazcık makyaj katmak lazım gerekirse bir manken yapmalıyız onu J işte burada  da CSS devreye giriyor. İskeleti oluşturduk, insana benzettik, çok güzel site oldu. Bitti mi? Eğer içerik değişeyecek, sabit bir HTML web sitesiyse bitti ama günümüzde en kişisel siteler bile bir admin paneli , içerik yönetim sistemi (CMS) istiyor yani oluşturduğumuz vücuda hareket sistemi, kas istiyorlar. O yüzden bitmedi. Günümüzde kullanılan popüler kas sistemleri…düzeltiyorum web programlama dilleri MVC .net (C#), PHP, JSP (Java). Tabi başka diller de mevcut ama en popülerleri bunlar diyebiliriz o yüzden bu dillerden de birini bilmeniz sizin için faydalı olacaktır.  Gördüğünüz üzere bir web sitesi yapmak aslında birden fazla dili içerdiği için başlangıç seviyesindeki biri için karmaşık gelebilir.

       Profesyonel bir web sitesine örnek vermem gerekirse HTML, CSS, Bootsrap (dinamik (responsive) tasarım için), Javascript, MVC bileşenlerinden oluşur.

Mobil uygulama yapmak istiyorum hangi dili öğrenmeliyim?

  Burada öncelikle tek bir platform mu, ayrı ayrı her platforma mı yoksa tüm platformlara tek bir uygulama (cross platform) mu yapmak istiyorsunuz onu belirlemeniz lazım.

Platforma özgü uygulamar için;

Andoid

       Android ile en çok kaynağı bulabileceğiniz dil Java’dır. Bu yüzden Java diliyle beraber Android Studio uygulaması (IDE) üzerinden android uygulamaları yapabilirsiniz.

iOS

       iOS ile uygulama geliştirmeniz için öncelikle bir adet Mac cihazınız, bir adet Apple geliştirici lisansınız gerekmektedir. Ardından Mac cihazınızdan Swift veya Objective-C dillerinden birini seçip geliştirme yapabilirsiniz. Daha yeni ve daha popüler olduğu için Swift diliyle başlamanız daha avantajlı olacaktır sizin için.

Windows Phone

       Visual Studio uygulaması (IDE) üzerinden C# dilini kullanarak uygulama geliştirebilirsiniz.

Tüm platformlarda çalışan(cross-platform) için;

Cross-platform uygulamalar her cihaza ayrı ayrı uğraşmak istemeyen kişi ve firmalar için son yıllarda popülerleşmiş bir geliştirme şeklidir. Burada tek bir alternatifiniz bulunmamakta. Farklı firmalar, farklı dillere göre cross-platform kütüphaneler geliştirmiştir. En popülerlerine örnek vermek gerekirse;

Xamarin; ister Visual Studio ile isterseniz de kendisinin geliştirdiği Xamarin Studio kullanarak C# ve Ruby diliyle uygulamalar geliştirebilirsiniz.

Qt; Qt Creator ismini verdiği derleyicisi (IDE) ile C++ dilini kullanarak cross-platform uygulama geliştirmenizi sağlar.

Corona; C dilini kullanarak mobil uygulamalar geliştirmenizi sağar. Ek olarak gelişmiş grafik motoru ile 2 boyutlu (2D) oyunlar da yapılıyor.

Cocos2d; 2 boyutlu cross-patform oyunlar yapabilmeniz için kullanabilirsiniz. Kendi içerisinde dillere özgü sürümleri mevcuttur. Kullanabileceğiniz diller C++, JavaScript, C#, Objective-C, Python

PhoneGap; genel olarak HTML5-CSS-JavaScript olarak tasarlanmış web sitelerini cross-platform uygulamaya dönüştürür.

IntelXDK; PhoneGap benzeri

Ve araştırdıkça daha da örnekleryle karşılaşabilirsiniz.

Masaüstü uygulama geliştirmek istiyorum hangi dilleri öğrenmeliyim?

Geçmişte popüler olan fakat mobil uygulamalar ve dinamik web sitelerinin daha kullanışlı hale gelmesiyle çoğu firma ve insanlar Web ve Bulut Sistem tabanlı yapılara geçti. Fakat yine de programcılığa yeni başlayan biri için bil dili kavrayabilmesi adına öğrenilebilir. Ek olarak günlük hayatta, iş yerinde, okulda ufak bir uygulama yapmanız gerekebilir. Masaüstü uygulama geliştrebilen biriyseniz hızlıca işinizi halledebilirsiniz.

       C#, Java, Python ile masaüstü uygulamalar da geliştirebilirsiniz. Python dilini başlangıç olarak seçmiş biriyseniz zaten Python ile yine devam etmenizi öneririm. Python ile görsel arayüzler tasarlayabileceğiniz birçok kütüphane mevcuttur.

       C# ile Visual Studio üzerinden sürükle-bırak yöntemiyle kısa süre içerisinde form ara yüzünüzü tasarlayabilir, kullanışlı uygulamalar yapabilirsiniz.

       Java için de Eclipse, NetBeans popüler derleyicilerdendir(IDE). Bu IDE’leri kullanıp masaüstü uygulamalar geliştirebilirsiniz.

Sizin fikriniz nedir?

Bu karman çorman içinde benim fikrimi sormak isterseniz, kesinlikle C# olurdu.

Yahu ben web geliştiricisi olmak veya android uygulama yazmak istiyorum C# ne alaka diyebilirsiniz.

Bende size C#’ın sadece masaüstü değil web, mobil (Android)’de geliştirmesini sağlıyor desem. Web de site yapacaksın aç ASP .NET’i yada Android’e uygulamamı yazacaksın aç Xamarin’i yaz C# ile uygulamanı derim. C# öğrenerek bunları yapabilirsiniz, tabii ki ek şeyler de bilmeniz gerekiyor ancak sıfırdan bir kodlama dili öğrenmiyorsunuz. Yeni başlayanlar için biraz zor olsa da C#, öğrendikten sonra kodlama dili öğrenmeye çalıştığınız da “Kodlama Dili” değil “Kodlama Dilimciği” oluyor.

19 yaşında bir yazılımcı olarak C# dilini öğrendikten ve 500 tane fazla büyük,küçük karışık proje yaptıktan sonra toplam da 9 tane programlama dili bilmekteyim. Bunların hepsi C# başladıktan sonra yağ gibi aktı diyemem tabii ki, yer yer zorlukları oldu. Ancak C# değil de Python ile başlasaydım bu rakam 1-2 falan olurdu şuan.

C# (ASP .NET, Xamarin)
C++
Visual Basic
Java
JavaScript
Python
SQL
PHP
Web(HTM (tamam anladık HTML programlama dili değil),CSS)

Yani sevgili okur, tercihim kesinlikle C# olurdu. Takdir tamamen size kalmış.

Yazımı okuduğunuz için teşekkür ederim…

1 thought on “Hangi Programlama Dilini Öğrenmeliyim?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir