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

tolpp;109053 dedi:
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 %60 kadarı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 :)

-----
Sorularınız :
Eğer yeniyseniz, ya da henüz başlamamışsanız soru sormaktan çekinmeyin. Konu altında ya da özel mesaj ile sorularınızı iletebilirsiniz. Çok daha acilse çekinmeden tolpp(at)hotmail.com adresine mail atın. Java konusunda iyiyim, diğerleri hakkında da bilgi birikimim var.
----

En en özet : En iyi diye bir programlama dili yoktur. Ancak JavaScript pek çok şey için güzel bir başlangıç olabilir.
  • Beğen
İfadeler: 2 kişi

Yorumlar

Hocam selamun aleyküm şimdi ben yazılım uzmanı olmak istiyorum 10.sınıftayım anadolu lisesi okuyorum ama programla dilleri vs.hiç birisini bilmiyorum sadece bilgisayarın donanımı hakkında bilgim var ben şimdi nerden başlamılıyom birçok kişi c# dan başla bu ne kadar doğru ?
 

Blog girdisi detayları

Ekleyen
Kerem Yaşar
Görüntüleme
19.296
Yorumlar
2
Son güncelleme

Genel kategorisindeki diğer girdiler

Kerem Yaşar adlı kullanıcının diğer girdileri

Bu girdiyi paylaş

Geri
Yukarı