Programlama

Hangi programlama dilini öğrenmeli?

İlk dilinizi popülerlik listesinden değil, ne yapmak istediğinizden seçin: web siteleri ve serbest çalışma için PHP ve JavaScript, veri ve yapay zeka için Python, mobil için Kotlin ve Swift ya da Flutter. İkinci dil birinciden çok daha hızlı gelir; yani bu karar göründüğü kadar belirleyici değil.

  • Ders 3 / 14
  • Başlangıç
  • Ücretsiz, kayıt yok

Her karşılaştırmadan önce tek bir soru

Bunun yanıtı, dil listesinin yarısını masadan kaldırır.

İnsanların açtığı bir şey mi yapıyorsunuz, veriyi yiyen bir şey mi?

Çıktı bir sayfaysa

PHP ve JavaScript

  • Kurumsal siteler, mağazalar, bloglar, basit bir panel
  • PHP ile yazılmış olan WordPress
  • Tarayıcı içinde hareket eden her şey
  • İlk serbest işe giden en kısa yol
Çıktı bir yanıtsa

Python

  • Veri analizi, raporlar, dağınık dosyaları temizleme
  • Yapay zeka servisleriyle çalışma ve işleri otomatikleştirme
  • İki haftada yazacağınız iş için hazır kütüphane
  • Ama ilk yerel gelire giden en hızlı yol değil

Bu ayrım her dalı kapsamaz. Mobil ve oyunlar, platformun belirlediği üçüncü bir daldır ve bu dersin dördüncü bölümü onları ele alıyor.

Son kontrol: Bu dersteki bilgiler ve araç adları bu tarihte kaynaklarıyla yeniden doğrulanır.

Önce ne yapmak istediğinizi söyleyin

"Hangi dil en iyisi" sorusunun yanıtı yok. "Yapmak istediğim şeye hangi dil daha uygun" sorusunun yanıtı ise kısa; insanı karşılaştırma döngüsünden çıkaran tek fark budur.

Sayfanın üstündeki şekil en büyük ayrımı çiziyor: insanların açtığı bir şey mi yapıyorsunuz, yoksa veriyi yiyip yanıt veren bir şey mi. Sonraki soruların neredeyse hepsi bu ikisinden birinin altına düşer.

Programlama dili bir alettir ve aletler ankete göre değil işe göre seçilir. Müşteri sitesi yapmak isteyenle satış verisini incelemek isteyenin alet çantası farklıdır ve ikisi de yanlış değildir.

Kararın yükünü hafiflettiği için erken bilmeye değen bir şey var: ikinci dil birinciden çok daha hızlı gelir. Kavramlar aynıdır, yalnızca yazım değişir. Döngü, koşul, fonksiyon ve dizi Python'da, PHP'de ve JavaScript'te tek bir fikirdir; zaman alan şey söz dizimi değil, program biçiminde düşünmeyi öğrenmektir. Yolu baştan istiyorsanız programlama yolu buradan başlıyor.

Dört yaygın hedef ve her birinin istediği dil

Önce kendi hücrenizi bulun, sonra dil adına bakın.

  • Siteler ve mağazalar

    Sunucuda PHP, tarayıcıda JavaScript. WordPress de burada.

  • Veri ve yapay zeka

    Python, çünkü kütüphaneleri siz gelmeden yıllar önce yazıldı.

  • Mobil uygulamalar

    Android icin Kotlin, iOS icin Swift ya da ikisi icin Flutter ve React Native.

  • Oyunlar

    Önce motoru seçersiniz, dil onunla gelir: Unity C# ister.

Hedef

Bu tablo tavanı değil başlangıcı gösterir. Gerçek bir projede bu hücreler karışır ve birkaç yıllık biri genellikle üçünden parçalar bilir.

Web siteleri ve serbest iş için: PHP ve JavaScript

Hedefiniz bir yıl içinde kod karşılığı para almaksa, bu dal en kısa yoldur. Zevk meselesi değil, pazarın biçimi: yeni bir geliştiriciye verilen işlerin çoğu web sitesidir, sitelerin çoğu WordPress'tir ve WordPress PHP ile yazılmıştır.

Denetlenebilir ve bugün kendi kaynağından okunmuş iki sayı: W3Techs, sunucu tarafı dili bilinen sitelerin yüzde 70,2'sinde PHP kullanıldığını, içerik yönetim sistemi bilinen sitelerin yüzde 58,9'unu WordPress'in çevirdiğini, bunun da tüm sitelerin yüzde 40,7'si ettiğini bildiriyor. İkisi de küreseldir ve İran hakkında bir şey söylemez; bizde İran pazarına dair rakam yok ve uydurmayacağız.

JavaScript ise bir seçim değil, ortamın koşuludur. Tarayıcı içinde çalışan her şey JavaScript'tir ve ikinci bir yol yoktur; site yoluna girerseniz er ya da geç ona varırsınız. İyi haber, başlamak için çok azının yettiğidir.

Bir de genellikle geç söylenen bir uyarı: PHP öğrenmek WordPress öğrenmek değildir. Birincisi bir dil, ikincisi kendi kuralları olan büyük bir yazılımdır. İşiniz WordPress olacaksa, PHP'den bir fonksiyonu, bir diziyi ve bir döngüyü okuyup yazacak kadarını öğrenin, sonra WordPress'in kendisine geçin. İlk kancayı görmeden önce altı ay saf PHP, geri gelmeyen bir zamandır.

Bu dal için önerdiğimiz sıra sade: önce HTML, sayfanın neden yapıldığını bilmek için; sonra biraz CSS; sonra sayfaya davranış katacak kadar JavaScript; iş sunucuya vardığında da PHP. Bu yolun nasıl bir işe çıktığını görmek isterseniz serbest çalışma bölümümüz insanların gerçekten sipariş ettiği projeleri gösteriyor.

Veri ve yapay zeka için: Python

Aklınızdaki iş, birinin açtığı bir sayfayla değil dosyalar, sayılar ve metinlerle uğraşıyorsa kapı Python'dır. Satış verisini incelemek, dağınık bir tabloyu temizlemek, bin dosyayı okuyup tek bir rapor çıkarmak, yapay zeka servisleriyle konuşmak: hepsi Python toprağıdır.

Teknik gerekçe basit ve dilin güzelliğiyle ilgisi yok: kütüphaneler orada. Başka bir dilde iki haftalık yazı demek olan iş, Python'da genellikle yıllarca sınanmış hazır bir kütüphaneye sahiptir. Ve neredeyse her yapay zeka servisi ilk kod örneğini Python ile yazar.

Yalnız bir dürüstlük gerekiyor: Python, ilk yerel gelire giden en kısa yol değildir. "Bana bir Python betiği yaz" siparişi, "siteme bak" siparişinden çok daha seyrektir. Kazanmak için aceleniz varsa üstteki dal daha hızlı yanıt verir; Python sonra eklenebilir.

Biz de tam bunu yaptık ve görülebiliyor: okuduğunuz site PHP, bu dersi yayımlanmadan önce denetleyen araç ise Python. İki tercih de zevk meselesi değildi; her biri bir iş için orada. Buradan başlamak isterseniz, bu yoldaki Python dersi kurulumu ve ilk betiği adım adım yürütüyor; derslerin tam listesi de aynı sayfada.

Mobil ve oyunlar: dili platform seçer

Bu iki dalda karar sizin değil, platformun. Yerel Android Kotlin demektir (ve daha eski Java kodu), yerel iOS Swift demektir; ikisine tek kod tabanı istiyorsanız bu, Dart diliyle Flutter ya da JavaScript ile React Native demektir. Oyunlarda ise genellikle dil değil motor seçersiniz: Unity C# ister, Godot'nun kendi dili vardır.

Uygulamaya yaklaşmadan önce açık bir söz: "uygulama" denen şey çoğu kez pratikte telefonda iyi çalışan bir sitedir ve yarı maliyetle, onda bir dertle işi görür. Gerçek uygulama, kameraya, bildirimlere ya da çevrimdışı çalışmaya ihtiyaç duyduğunuzda gerekir.

Bir de bize özgü bir kısıt: küresel mağazalara İran'dan yayımlamanın kendi sorunları vardır ve bunların seçtiğiniz dille ilgisi yoktur. O tartışma başka yerde, uygulama geliştirme yolunda; işi yaptırmak isterseniz uygulama tasarımı sayfamız işin biçimini anlatıyor.

Zamanınızı yiyen ve hiçbir şeyi değiştirmeyen sorular

"Hangi dil daha hızlı" sizin sorununuz değil. Yeni başlayanın yazdığı işlerde yavaşlık neredeyse her zaman kötü bir sorgudan, on megabaytlık bir görselden ya da yanlış algoritmadan gelir; dilden değil. Dil ancak diğer her şeyi doğru yaptıktan sonra darboğaz olur.

"Hangisi daha kolay" sorusunun da gerçek bir yanıtı yok. İlk iki hafta bütün diller aynı görünür: değişken, koşul, döngü. Zorluk sonra gelir ve söz diziminden değil kavramlardan gelir; işaretçiler, eşzamanlılık ve nesne modelleri her dilde zordur.

"Hangisi daha çok kazandırır" sorusunu küresel listeler yanıtlar ve o yanıt size yaramaz, çünkü küresel pazarda işe alınmıyorsunuz. Önemli olan sayı, müşterilerinizin bulunduğu şehirde ve pazarda anlam taşıyan sayıdır; o sayı bizde yok.

"Şu dil ölüyor" cümlesini de kenara koyun. Önemli olan bir dilin sosyal medyadaki itibarı değil, elinizin uzandığı yerde onunla yapılan iş olup olmadığıdır.

Yanlış seçimin bedelini de büyütmeyin: iki hafta sonra yanlış dala girdiğinizi anlarsanız iki hafta kaybettiniz. Ama altı ay "en iyi dili" arayıp hiçbir şeyi bitirmezseniz altı ayı kaybedersiniz ve bir şey de öğrenmemiş olursunuz. Küçük bir şeyi bitirmek, doğru seçmekten önemlidir.

İki ay araştırma yerine iki haftalık deneme

Bu karardan çıkış yolu daha çok araştırma değil, küçük bir deneydir. İki aday alın, aynı küçük şeyi ikisinde de yapın ve listelerin değil ellerinizin karar vermesine izin verin.

"Küçük şey", bir akşamda bitirdiğiniz ve gösterebileceğiniz bir çıktısı olan şey demektir. Örneğin: bir ad kaydeden formu olan bir sayfa ya da bir CSV dosyasını okuyup içinden üç sayı çıkaran bir betik. Karşılaştırma gerçek olsun diye aynı şeyi iki dilde de yazın.

Aşağıdaki şekil bu beş adımdır. Dördüncüsünü ciddiye alın: yaptığınızı başka birine göstermek, tek başına kod yazmanın açmadığı bir şeyi açar. İki hafta sonra adaylardan hiçbiri sizi tutmadıysa, bu da bir yanıttır.

Bizim alet çantamız da zevkten değil tam olarak bu tür bir karardan çıktı: site PHP, çünkü WordPress PHP; içerik araçları Python, çünkü işi metin işlemek; aralarındaki tutkal ise yirmi bir bash betiği, çünkü işleri başka araçları çağırmak. Üç dil, üç ayrı iş ve hiçbiri "daha iyi" olduğu için seçilmedi.

İki haftalık deneme, beş adımda

Başkalarının karşılaştırmalarını okumak yerine kendinize ait küçük bir karşılaştırma yapın.

  1. 1

    Hedefi tek cümleyle yazın

    Tek cümleye sığmıyorsa henüz hedef değil, dilektir.

  2. 2

    Beş değil, iki aday

    Beş seçenekle kaçtığınız araştırmaya geri düşersiniz.

  3. 3

    Aynı küçük şeyi ikisinde de yapın

    Bir akşamda biten ve çıktısı olan bir şey. Proje değil.

  4. 4

    Bir kişiye gösterin

    Göstermek, tek başına kod yazmanın açmadığı bir şeyi açar.

  5. 5

    Kendi deneyiminizle karar verin

    Hiçbiri tutmadıysa bu da bir yanıttır: dili değil hedefi değiştirin.

Bu deneme iki aday arasında seçim içindir, dil öğrenmek için değil. İki hafta ikisinde de iyi olmaya yetmez, buna niyet de yoktur.

Yapay zekayla hızlı yol

Bu tek soruda dil modeli kötü bir kâhin, iyi bir simülatördür. "Hangi dili öğrenmeliyim" diye sorarsanız internette yazılmış olanın ortalamasını verir ve o ortalamanın sizin şehrinizle ilgisi yoktur. Ama aynı modele küçük bir şeyi iki dilde yazdırır, sonra her yolda altı ay sonra neyle karşılaşacağınızı söyletirseniz, iki haftalık denemeyi bir akşama sıkıştırmış olursunuz. Burada hızlı ve ucuz bir model yeter; güncel tercihimiz <a class="text-link" href="/tr/ai/">yapay zeka bölümünde</a>.

  1. Hedefi dilek gibi değil kısıtlarınızla yazın: ne, kimin için, ne zamana kadar ve haftada gerçekte kaç saatiniz var.
  2. Ne "hangisi daha iyi" diye sorun; aynı tek şeyin çalışan en küçük sürümünü iki aday dilde, aynı çıktıyla isteyin.
  3. İkisini de kendiniz çalıştırın. Çalıştırılmamış kod sonuç değil, görüştür.
  4. Son olarak her yolda altı ay sonra neyle uğraşacağınızı sorun. O yanıt her popülerlik listesinden yararlıdır.

Kopyalamaya hazır şablon

Hedefim: {tek cümleyle hedef}
Kısıtlarım: {haftada kaç saat}, {hangi tarihe kadar}, {elimdeki makine ve baglanti}
Iki aday: {birinci dil} ve {ikinci dil}

Benim icin uc sey yap ve sirasini degistirme:

1. Bu hedefi gosteren, calisan en kucuk program; bir kez {birinci dil} ile,
   bir kez {ikinci dil} ile. Ikisi de tam olarak ayni ciktiyi vermeli. Parca
   degil, tam kod ver. Ayrica kurulmasi gereken her seyi ayri listele.
2. Her programin altinda, yeni baslayanin takildigi uc satiri goster ve
   nedenini soyle.
3. Sonra her yolda alti ay sonra neyle ugrasacagimi yaz: hangi araclar,
   hangi zorluklar ve genelde ne tur is siparis ediliyor.

Hangisinin daha iyi oldugunu soyleme. Ikisini de calistirdiktan sonra ben
karar verecegim.

Çıktıya güvenmeden önce: Modelin bilmediği ama yine de kendinden emin konuştuğu bir şey var: yerel pazarınız. Şehrinizde sipariş edilen işlerin listesi eğitim verisinde yoktur; bu yüzden "talep" hakkındaki her cümleyi yerel iş ilanlarına ve gruplara bakarak kendiniz tartın. İkincisi erişim: model, İran'dan kaydın ya da ödemenin çalışmadığı bir araç önerebilir. Bir yolu bir şeyin üzerine kurmadan önce ona gerçekten ulaşabildiğinizi kontrol edin.

Bu işte yapay zeka

Tutumumuz açık: dil seçiminde modeli danışman olarak değil atölye olarak kullanın. Tavsiyesi internetin ortalamasıdır; atölyesi ise aynı programı bir akşamda iki dilde önünüze koymasıdır, böylece kendi ellerinizle yargılarsınız. Aşağıdaki üç araç bu işi yapar ve bu iş için aralarındaki fark azdır.

Gerçekten işe yarayan araçlar

  • Claude İki sürümlü alıştırma için iyidir, çünkü tam kodu ve satır satır açıklamayı birlikte verir. İran, Anthropic'in desteklenen ülkeler listesinde yok; bunu Anthropic'in kendi sayfasında okuduk.
  • Gemini Farsçayı iyi anlar ve küçük bir programın ilk sürümü için yeter. Google'ın kendi sayfası Gemini web uygulamasının 230'dan fazla ülke ve bölgede çalıştığını yazıyor; İran o listede yok.
  • ChatGPT En yaygın seçim ve bu iş için kabul edilebilir. Yapay zeka bölümümüzde henüz bir sayfası yok; bu yüzden erişimi ya da fiyatı hakkında burada bir iddiada bulunmuyoruz.

Nerede geri teper

Buradaki asıl risk yanlış kod değil, kendinden emin bir yanıttır. Model, "hangi dili öğrenmeliyim" sorusunu internette yazılmış olanın ortalamasıyla yanıtlar; o yazının çoğu İngilizce ve çoğu Amerikan kaynaklıdır. Böylece size şehrinizde sipariş edilen işle ilgisi olmayan derli toplu bir yol haritası verir ve kendinden emin tonu tam da bunu gizler. İkinci risk erişimdir ve bize özgüdür: yol haritasında İran'dan kaydolamayacağınız ya da ödeyemeyeceğiniz bir araç olabilir; aynısı bu modellerin kendisi için de geçerlidir. İran, Anthropic'in iki desteklenen ülke listesinde de yok ve Google'ın Gemini ülke listesinde de yok; ikisini de üreticilerin kendi sayfalarında okuduk ve etrafından dolaşma yolları önermiyoruz. Bu yüzden tavsiyemiz modelden kader değil kod istemenizdir: kod çalıştırılıp incelenebilir, yol haritası incelenemez.

Kaynaklar: Anthropic: supported countries Google: where Gemini Apps are available W3Techs: usage statistics of PHP

Bu tavsiyenin sınırı

Bu ders şehrinizde hangi becerinin para kazandırdığını söyleyemez; İran iş piyasasına dair rakamlarımız yok ve uydurmayacağız. Burada olan iki küresel sayı ve bir ajansın deneyimidir, fazlası değil. Ayrıca bu sayfadaki her argümanı geçersiz kılan üç durum var: çalıştığınız ya da okuduğunuz yerin zaten bir dili varsa o dil kazanır; bir üniversite dersi için çalışıyorsanız dersin dili kazanır; ve sorularınızı yanıtlayabilecek bir insan varsa onun dili her optimal seçimden değerlidir, çünkü öğrenmenin en pahalı kısmı yalnız kalmaktır.

Kendi işimizden

Kendi alet çantamız, bugün sayıldı ve bu sunucuda denetlenebilir: bu sitenin teması 193 PHP dosyası ve 59.377 satır, kendi eklentilerimiz 592 PHP dosyası daha, okuduğunuz sayfa ise tam olarak iki JavaScript dosyası yüklüyor, yaklaşık on altı ve beş kilobayt. Buna karşılık bu dersi yayımlanmadan önce denetleyen araç Python: 22 dosya; biri 281 satır ve tüm işi dört dilde yasaklı karakterleri bulmak. Aralarındaki tutkal 21 bash betiği. Bu sayıların oranı bu dersin savıdır: dili biz değil, iş seçti.

Gerçek devam soruları

Yapay zeka kod yazarken dil öğrenmek hâlâ gerekli mi?

Evet, ama eski nedenle değil. Dili bilmeyen biri çalışan kodu ikna edici koddan ayıramaz ve gelen her yanıtı kabul eder. Bugün dil öğrenmek yazmaktan çok okumak ve yargılamakla ilgilidir; bu da değerini düşürmedi, yükseltti.

Önce HTML mi öğrenmeli, doğrudan Python'a mı geçmeli?

Geleneksel bir sıraya değil, dala bağlı. Site yoluna gidiyorsanız ilk şey HTML'dir, çünkü onsuz kendi çıktınızı bile göremezsiniz. Veri yoluna gidiyorsanız HTML gerekmez ve doğrudan Python'a geçmek doğrudur. Ayrıca HTML bir programlama dili değildir; bir işaretleme dilidir, koşulu ve döngüsü yoktur.

İşe alınmak için kaç dil gerekir?

Bir tane, onunla bir şey yapmış olacak düzeyde. Sekiz beceriyi yan yana yazan ilanlar giriş şartı değil dilek listesidir; tek bir gerçek proje gösteren kişi, dört dilin adını bilen kişinin önündedir. İkinci dil de genellikle kendiliğinden gelir, çünkü gerçek bir proje er ya da geç onu size dayatır.