1. kodlama öğrenmek isteyenlere verilebilecek tavsiyelerdir.

    "bu dil en iyisiymiş, ben bunu kullanayım" diye bir mantıkla hareket etmemek gerekli. hepsinin kendine has kullanım alanları var. öncelikle amacınızı belirleyin. ne yapmak istiyorsunuz?

    * masaüstü uygulamalar mı? bu uygulamalar her platformda çalışsın mı?

    * android uygulamaları mı?

    * ios uygulamaları mı?

    * uygulamalarımda internet entegrasyonu olacak mı?

    * akademik kariyerinizde yardımcı olması için gelişmiş hesap makinelerinizi kendiniz mi kodlamak mı istiyorsunuz?

    * oyun mu yazacaksınız?

    gibi hedefleri belirleyin, ve ona göre öğreneceğiniz dili seçin. bu nokta önemli. çünkü bazıları ileriki kariyerinde oyun yazmak isteyip derin derin python öğrenmek istiyor. tabiki python ile oyun yazılır ama bu işin standardı c++ gibi alt seviye dillerdir. bir gün ea games gibi bir yerde ise başlayacaksınız c++ bilmek zorundasınız.

    veya akademik kariyer için kullanılacak hesapları yapmak üzre atıyorum javascript öğrenmeniz aşırı mantıksız bir hareket olacaktır.

    dünyada şu an en çok kullanılan 9 dili şöyle bir listeleyelim. bu liste önemli, çünkü bir dili ne kadar insan kullanıyorsa o kadar çok kaynak bulunur demek. (github'a 2015 yılında yüklenen repository sayısına göre)

    1. javascript:

    * web ortamında geliştirme yapmak için neredeyse alternatifsiz olduğundan birinci olması şaşırtıcı değil. web hariç kullanım alanı olmayan bir scripting dili.

    edit 2017: artık zibilyon tane çıkan kütüphanesi ve motoru sayesinde artık bu dille her şeyi yapabiliyorsunuz. evet. istenirse node.js ile server tarafını da kodlayabilirsiniz. ister electron ile masaüstü uygulama da yapabilirsiniz.

    * web sitelerini daha dinamik hale getirmek için kullanılır. sitelerde menü butonuna tıkladığınızda yeni bir sayfaya gitmeden o menünün açılmasını sağlayan dil budur.

    * hayır, java ile bir alakası yok. isim benzerliği sadece

    * web geliştiricisi olmak istiyorsanız olmazsa olmazdır kesinlikle öğrenilmesi gerekli.

    2. java:

    * cross-platform bir dil. yazdığınız kodu her yerde çalıştırabilirsiniz.

    * c ailesinden dillere göre daha yavaş çalışır. ancak uygulama geliştirme olanakları daha fazladır. ayrıca dilin yapısı yüzünden geliştirici hatalarına pek izin vermez. hızlı uygulama geliştirmek için birebir olduğundan da çokça kullanılıyor.

    * windows ve mac uygulamalarının yanında android uygulamaları da geliştirmek istiyorsanız olmazsa olmazdır. java ile yazılan popüler bir de oyun var: minecraft. java ile oyun yaparsanız da böyle oluyor, bakın derim.

    3. ruby

    * python gibi bir şey. yüksek seviyeli bir dil. rails ismindeki web geliştirme kütüphanesi baya meşhurdur. (bkz: ruby on rails)

    4. python

    * yazım stili(*:syntax) gayet basit ve anlaşılır olan bir scripting dili. genel bir algı vardır python'ın yavaş çalıştığıyla ilgili. kısmen doğrudur. c gibi diller dilin yapısı gereği hızlı çalışmak zorunda. python öğrendikçe bu hız açığını nasıl kapatabileceğinizi de öğreniyorsunuz. matris işlemleri için (genelde akademik ve işlem yükü ağır işlemler) numpy, scipy gibi, theano gibi kütüphaneler gpu kullanır mesela. gpu'lar matris işlemleri yapmakta diğer donanım birimlerine göre çok daha iyi çalıştıklarından. duruma göre cython eklentisi ile python kodlarını derleyebilirsiniz de. bu da hızı oldukça optimal düzeye çekiyor.

    * yeni başlayanlar için sıklıkla önerilir. programlama mantığını öğrenene kadar kullanılması uygun.

    * kütüphane desteği oldukça fazladır.

    * tek başınıza yazdığınız günlük projeler, faydalı minik scriptler için kullanılabilir. youtube, dropbox ve google'ın bazı kısımları gibi, önemli olan elemanın işlemci olmadığı (bu örnekler için hız kısıtlayıcı basamak dosya depolama birimleri) büyük projelerde kullanılabiliyor. yine de bir gta5 yapmak için uygun değil, olmayacak da muhtemelen.

    * final courtesy'nin mesajı üzerine hız ve kullanım alanları hakkındaki madde düzenlendi

    4. php

    * bir web dili. web geliştiriciler için tercih edilebilir.

    * wordpress ve facebook bunu kullanıyor.

    5. c

    * listede makine diline en yakın olan dil. oldukça hızlı çalışması gereken kodlar genelde c ile yazılıyor. öğrenmesi yeni başlayan birisi için zor, aşina olan birisi için kolay. ustalaşması ikisi için de çok zor.

    * bu dili öğrenmeniz demek, bir bilgisayarın nasıl çalıştığını %90 oranında anlamanız demek. (kalan %10 için assembly)

    * hesaplama, yapay zeka, donanım sürücüleri, işletim sistemleri gibi şeyler yazmak için kullanılabilir.

    6. c++

    * programlama dillerinin şahı, c'nin geliştirilmiş ve içine bir tutam nesne yönelimli programlama eklenmiş hali. c'den farkı class yapıları, template'ler vb. şeyler.

    * kendi deneyimime göre öğrenmesi de ustalaşması da zor. çünkü size yapabileceğiniz şeyler için bu kadar özgürlük tanıyan diller genelde her şeyi kod yazan kişiye bırakır. kodu yazarken ne yaptığınızı biliyor olmalısınız. yoksa tek bir dandik hatanın kaynağını gecelerce arar durursunuz.

    * oyunlar, profesyonel araçlar (adobe ürünleri, muhasebe programları) gibi akla gelebilecek karmaşık ama hızlı da çalışması gereken projeler bu dille yazılır.

    7. c#

    * c ailesinden bir dil. bu da c++'ın üzerine bir şeyler eklenmiş hali. microsoft tarafından geliştirildiği için genelde windows ortamında çalışacak uygulamalar için kullanılabilir. hatta, windows'ta çalışacak bir masaüstü uygulaması yazılacaksa bence ya c++ ya da bu kullanılmalı şu günlerde.

    * java ile aşırı derecede birbirine benziyor. öyle ki iyi java bilen birisi c#'a şöyle bir 4 saat göz gezdirip olaya tümden hakim olabilir.  ve tabiki vice-versa geçerli.

    8. objective c

    * ios uygulamaları geliştirmek için kullanmanız gereken dil. bunun yeni bir alternatifi ise swift.

    * kullananların pek bir nefret ettiklerini biliyorum.

    * bu konu hakkında fazla bilgim yok, mesaj atarsanız eklemeler yapabilirim.

    9. sql

    *açılımı structured query language olan script dili gibi bir şey. evrensel bir dil, bunu daha çok başka dillerde veritabanı bağlantıları kurmak için kullanılan bir araç olarak düşünebilirsiniz.

    * veritabanı kullanılan hemen her uygulamada kullanılır. veriyi istenen biçimde sorgulamak, kaydetmek, silmek, düzene koymak, göstermek gibi olayları bu dille yaparsınız.

    bu noktadan gerisinde kullanılan niş dillere bakmak gerekli. özel amaçlar için kullanılan programlama dilleri yani. onlar da şöyle:

    1. matlab

    * adından anlaşılacağı üzre matematikçiler, fizikçiler, istatistikçiler vb. gibi hesap kitap işi yapan bilim insanlarının genelde kullandıkları dil. 3 boyutlu grafikler, korelasyon eğrileri, formulasyon işlerini otomatik yapan kütüphaneleri mevcut. (bunları c ile yapsanız haftalar sürecektir muhtemelen)

    2. r

    * veri bilimi (data science) ile uğraşan insanlar tarafından yoğun olarak kullanılıyor. istatistikçiler, medikal alanlar, sosyal medyaların dev sınıflandırma algoritmaları vb. gibi yerlerde kendine alan buluyor.

    * matlab ile benzerliği var. geliştirme ortamı çok hoş. ayrıca ücretsiz.

    3. haskell

    * şimdi... diğer diller bir yana, haskell öbür yana. tamamen ezber bozan bir dil. öğrenmek aşırı derecede eğlenceli ama bir o kadar da yorucu. (bkz: fonksiyonel programlama)

    * matematiksel işlemleri en verimli yoldan yapmak için kullanılıyor genelde. bu dille yazılan kodlar genelde çok açık ve hoş görünüyor. bir o kadar da hızlı ve verimli.

    4. assembly

    * bilgisayara doğrudan işlemci seviyesinden emirler yağdırmak içi kullanılan dil. oldukça zor, karmaşık, tamamen kavramak için ilgili bölümlerin bazılarının lisans diploması gerekebilir (veya güçlü bir irade).

    * bugün için çok kullanım alanı kalmadı. c ile yazılan projelerde çok çok hızlı çalışması gereken kısımlar varsa c kodunun içine assemby kodu gömebiliyorsunuz, en iyi verimi almak için.

    not: aklıma geldikçe eklemeler yapacağım. hatalı/eksik gördüğünüz bir kısım varsa mesaj atın lütfen

mesaj gönder