Hangi programlama dili nerede kullanılır? Yeni başlayanlara tavsiyeler nelerdir?

Merhabalar,

Uzun süredir yazmak istediğim bir makale vardı ama .. bir türlü fırsat olmamıştı. Yakın zamanlarda bir arkadaşım için araştırırken bulduğum ve beğenerek okuduğum bir makaleyi sizlerle de paylaşmak istedim.

Bu makalenin içeriğinde neler var?Derseniz, popüler olan neredeyse tüm programlama dillerinin genel itibari ile kullanım alanları, amaçları ve olumlu olumsuz yanları açıkça belirtilmiştir. Kendilerine buradan teşekkür ediyorum.

 

Hangi programlama dili nerede kullanılır?

 

Yeni başlayanlara tavsiyeler nelerdir?

 

Herkese merhaba,

Üniversiteler dahil pek çok okulun tatile girmesiyle genç arkadaşların programlama ve yazılım geliştirmeyle ilgilenmeye başlayacağını düşündüm. Yeni başlayan arkadaşların kafasında da genelde benzer sorular var. “Hangi programlama dilini seçmeliyim?” ve “Programlamaya ilk adımı nasıl atmalıyım?“. Bu yazının yeni başlayan arkadaşlar için faydalı olacağını düşünüyorum. 

Yazılım geliştirme ne büyütülecek kadar zor ne de küçümsenecek kadar basit bir süreçtir. Süreç burada anahtar kelimedir çünkü hem yazılımlar hem de yazılım geliştirme ortamları sürekli bir gelişim içerisindedir. Bu yüzdendir ki, “artık biliyorum” dediğiniz ve ilerlemeyi bıraktığınız anda kendinize en büyük kötülüğü yapmış, yazılım geliştirme kariyerinize de noktayı koymuş olursunuz.

Gelelim ilk noktaya : Programlamaya nereden başlamalıyım? 

1 – İngilizcenizi geliştirin
E ama Türkçe de pek çok kaynak var” diyen arkadaşlar olacaktır. Haklılar. Güzel kaynaklar var. Ancak bu durumda teknolojiyi kullanan konumundan ileri gidilmiyor. Tamamen İngilizce yüklenin demiyorum. Ancak başlangıç seviyesinde zamanınızın %60kadarını İngilizce’ye ayırın. Bu gerçekten çok önemli, ileride hak vereceksiniz. Sıkılmayın, anlamasanız bile İngilizce kaynaklardan okumaya çalışın, kelime ezberleyin. Hem entellektüel anlamda hem de gelişiminiz açısından bu sizi bir üst seviye kişiliğe taşıyacaktır.

2 – Ne yapacağınıza karar verin
Unutmayın ki programlama dili bir amaç değil, araçtır. Önce öğreneyim, sonra yaparım düşüncesi sizi zaman kaybına uğratabilir.En iyi şeklinde adlandırılabilecek bir programlama dilinin olmadığını unutmayın. Her dilin iyi olduğu, kötü olduğu konular vardır. Peki, hangi amaç için hangi diller kullanılabilir? Birkaç güncel kullanım alanı :

  • Ben mobil uygulama geliştireceğim diyorsanız :
    • iOS –> Objective-C
    • Android –> Java
    • Windows Mobile –> .NET ile kullanılabilen bir dil (Visual C++, Visual C#, VB,F#…)
  • Masaüstü uygulama geliştireceğim diyorsanız :
    • Uygulamanız Windows üzerinde çalışacaksa
      • .NET kullanan dil (Visual C#, Visual F#, Visual C++, Visual Basic)[C# önerilir]
    • Uygulamanızın tüm ortamlarda çalışmasını istiyorsanız (Mac, Windows, Linux…)
      • Java (Önerilir)
      • Python
      • C++
  • Oyun geliştireceğim diyorsanız :
    • Lua (Önerilir)[Hem mesaüstü hem de mobil pek çok ortamda kullanılabiliyor.]
    • C# (Windows altında XNA Game Studio ile iyi işler çıkartılabiliyor.)
    • C (OpenGL gibi temel grafik kütüphaneleri ile uğraşacaksanız gerekli)
  • Elektronik cihazlara hükmedeceğim, donanımın derinliklerine ineceğim diyorsanız :
    • C
    • Assembly (Başlangıç için hiç gerek yok.)
  • Yapay zeka ile uğraşacağım, zeki sistemler yapacağım diyorsanız :
    • Haskell
    • Prolog
    • Scala
  • Benim işim web ve sunucular diyorsanız :
    • Front-end için : (Kullanıcı ile etkileşime giren kısım, görsel kısım da denilebilir)
      • HTML (Mutlaka!)(Programlama dili değil, işaretleme dilidir)
      • CSS (Mutlaka!)
      • JavaScript (İstemci taraflı programlamanın can alıcı noktasıdır.)
        • JS üzerinde ilerlendikten sonra CoffeeScript’e de bakılabilir.
    • Back-end için : (Sunucu tarafı)(Kırılma noktası)
      • Kolay öğrenip bir an önce başlamak mı istiyorsunuz?
        • PHP
        • ASP.NET + C#
      • Kolayca geliştirilebilir, kolay dağıtılabilir uygulamalar geliştirmek mi istiyorsunuz?
        • Ruby (Ruby on Rails isminde şahane bir framework var)
        • Python (Django framework’ü ile birlikte)
        • JavaScript (Günümüzün yükselen gözdesi : Node.js isimli web framework’ü var.)
        • Scala (Play! Framework ve Lift)
      • Taş gibi, sapasağlam uygulamalar istiyorsanız :
        • Java (JavaEE isimli kavram bu yüzden var.)
        • ASP.NET (Burada bulunması tartışılabilir.)
  • Hacker’lık benim geleceğim diyorsanız
    • Hepsini öğrenin.

Unuttuğum kısımlar olabilir. “Şunun için ne yapmalıyım” derseniz, güncellerim yeniden. Yukarıdakiler güncel kullanım alanlarına göre dillerin bir toplaması. Elbette tüm diller bu kadar değil. Kronolojik olarak listeye şuradan ulaşılabilir :http://en.wikipedia.org/wiki/Timeline_of_programming_languages 

—-

Dillerin (+) ve (-) özellikleri nelerdir?

Java
+ Tüm ortamlarda çalışabilir.
+ C’ye benzer söz dizimi vardır.
+ Stabil çalışır. 
+ Çok geniş bilgi birikimi, çok geniş kütüphanesi vardır.
– Bytecode’a derleme, makina koduna yorumlama yapılır. (JVM burada devreye giriyor). Bu yüzden C’ye göre yavaş çalışır.
– Çalıştırılacak bilgisayarda JRE kurulu olmalıdır.

PHP
+ Günümüzde halen en çok kullanılan web programlama dillerinden biridir.
+ Öğrenmesi diğer dillere göre kolaydır
+ Türkçe pek çok kaynak vardır.
+/- Veri tipleri dinamik olarak belirlenir. (Programlamayı kolaylaştırır ancak hata denetimini zorlaştırır ve performansı düşürür)
– Dilin kendi içerisinde tutarsızlıkları vardır. (metod isimleri, kurallar kesin değildir, pek standart yoktur. Bu da giriş seviyesi öğrenmeyi kolay, uzmanlaşmayı zor kılar.)

C#.Net
+ Windows masaüstü uygulama denince akla ilk gelendir.
+ Visual Studio gibi işleri çok kolaylaştıran bir IDE’ye sahiptir.
+ Oldukça tutarlı, oturmuş bir dildir. C’ye benzer söz dizimine sahip diller arasında yapısal olarak en gelişmişidir denebilir.(Evet, yapısal olarak Java’dan daha iyidir  )
+ Türkçe kaynak bulmak kolaydır.
– Microsoft’un tekelinde olan bir dildir.(Aslında tam değil de, .NET olmadan bir işe yaramaz  Ayrıca, Microsoft’un sahip oladığı ürünler ile beraber kullanımı sıkıntılar doğurabilir. )
– Windows olmadan bir işe yaramaz. 

JavaScript
*JavaScript(JS), Java ile aynı şey değildir! 
+ Pek çok alanda doğrudan kullanılır. Kullanım alanı sınırsızdır denilebilir.
+ Hem iteratif hem de fonksiyonel programlama dili özelliği gösterir.
+ Yavaştır denemez. Google V8 Engine ile çalışma hızı bambaşka bir boyuta taşınmıştır.
+/- Tüm olaylar dinamik olarak gerçekleşir. Derlenmez.
– Debug yapmak zordur (kısmen).

C/C++
+ Pek çok dilin atasıdır.
+ 70’li yıllarda ortaya çıkmasına rağmen halen güncellenmektedir (C++ için bahsedersek, ANSI-C aynı  )
+ Hızlı işlemler ve temel düzey görevler için biçilmiş kaftandır.
+ Donanıma en yakın dillerdendir. Doğrudan assembly olarak derlenir.
– Hata alınabilecek çok nokta vardır. Dil sizin için pek kontrol yapmaz. Küçücük hata çılgın sonuçlar doğurabilir.
– Debug yapmak oldukça zordur.
– Kullanımı zordur.

Python
+ Kullanımı kolay bir dildir.
+ Google tarafından çok sevilir.
– Türkçe kaynak bulmak çok kolay değildir.

Scala
+ Yükselişte olan yeni gözde dildir. 
+ Hem nesne yönelimli hem de fonksiyonel dil özelliği gösterir.
+ JVM üzerinde çalışır, Java’ya ait tüm kütüphaneler kullanılabilir.
– Türkçe kaynak bulmak çok zordur.

Lua
+ Hızlı çalışan, kullanımı kolay olan scripting dilidir.
+ Oyun dünyasında pek çok noktada kullanılır
– Türkçe kaynak az sayıdadır.

——
– Nereden öğrenebilirim?
Her dilin kendine ait kullanım kılavuzu sayfası vardır. Temel referans noktalarınız bunlar olabilir. Ancak bir şekilde kitap edinmeniz daha hızlı öğrenmenizi sağlayacaktır. Eğer İngilizce de olur diyorsanız O’Reilly’nin kitaplarını tavsiye ederim. Çoğu kitap malum ortamlarda bulunabiliyor.

Bunun yanında http://www.codecademy.com/ yeni başlayanlar için mükemmel bir kaynak. JS, Python, Ruby derslerine buradan bakabilirsiniz.

HTML/CSS için http://www.w3schools.com/ ‘u öneririm.

Ve elbette, yegane kaynağımız internet 

 

kaynak : http://www.technopat.net/forum/blogs/kerem-yasar/1136-hangi-programlama-dili-nerede-kullanilir-yeni-baslayanlara-tavsiyeler-nelerdir.html

kaynak: https://www.technopat.net/sosyal/blog-i%C3%A7erik/hangi-programlama-dili-nerede-kullan%C4%B1l%C4%B1r-yeni-ba%C5%9Flayanlara-tavsiyeler-nelerdir.699/