
Çoğu kişinin programlamayı öğrenme yolculuğu, gece geç saatlerde yapılan tek bir Google aramasıyla başlar.
Genellikle “Öğren ______” gibi bir şeydir
Peki hangi dili arayacaklarına nasıl karar veriyorlar?
Silikon Vadisi'nde hep Java hakkında şakalaşırlar. Sanırım bunu öğrenmeliyim. "
Veya:
Haskell. Şu anda çok sıcak. Haskell. "
Veya:
"Bu Go gopher çok tatlı."

Ve sonra geri kalanımız var. Muhtemelen şöyle bir şey arayacağız:
"Önce hangi programlama dilini öğrenmeliyim?"
Çok az soru o kadar sık sorulur ki tam infografik işlemlerini görürler. Ama bu onlardan biri:

– Linus Torvalds (Linux’un yaratıcısı)

İlk programlama dilinize karar vermek eğlenceli bir süreç olabilir – tıpkı “Hangi Quentin Tarantino karakterisiniz?” Gibi. kişilik testleri.
Ancak çocukken Play-Doh ile oynamaktan zevk aldığınız için Ruby’yi öğrenmek için koşmadan önce, size hatırlatmama izin verin: burada bahisler oldukça yüksek.
İlk programlama dilinizle uzaktan bile yetkin hale gelmeniz yüzlerce saat pratik yapacaktır.
Bu yüzden aşağıdaki faktörleri göz önünde bulundurmalısınız:
- dil için iş piyasası
- dil için uzun vadeli beklentiler
- dil öğrenmek ne kadar kolay
- Öğrenirken hangi projeleri geliştirebilirsin (ve motive kalabilmek için arkadaşlarınla paylaşabilirsin)
Her yıl yeni programlama dilleri ve onlarla birlikte yeni akademik makaleler geliyor. Ve yeni web çizgi romanları.
Ciddi anlamda. Geçen ayın bu gemisine bir göz atın:

İlk programlama dilini seçmek söz konusu olduğunda, seçenek sıkıntısı yoktur. Biraz daraltmak için, son 12 yılda programlama öğrenmeyle ilgili en yaygın Google aramaları şunlardır:

Java’nın iniş ve çıkışları oldu.
Python, en popüler seçenek haline geldi.
Ancak bunların altında, son birkaç yıldır popülaritesini yavaşça seçen Little Engine That Could var. Ve bu motor JavaScript.
Bu programlama dilleri hakkında konuşmadan önce, açıklığa kavuşturmama izin verin:
- Herhangi bir dilin nesnel olarak diğerinden daha iyi olduğunu tartışmıyorum
- Geliştiricilerin sonunda birden fazla dil öğrenmesi gerektiğini kabul ediyorum
- Önce bir dili iyi öğrenmeleri gerektiğini savunuyorum. Ve – muhtemelen başlığımdaki ters metinden tahmin edebileceğiniz gibi – bu dil JavaScript olmalıdır.
Şimdi programlamanın okulda nasıl öğretildiğini keşfederek başlayalım.
İçindekiler
Bilgisayar Bilimi 101

Üniversiteler geleneksel olarak programlamayı bilgisayar bilimi şemsiyesi altında öğretmişlerdir ki bu kendisi de genellikle matematiğin bir uzantısı veya bir elektrik mühendisliği derecesine bağlanma olarak görülür.
Elbette, şimdiye kadar duymuş olabileceğiniz gibi:
"Bilgisayar bilimleri eğitimi, hiç kimseyi uzman bir programcı yapamaz, tıpkı fırça ve pigment üzerinde çalışmak birini uzman bir ressam yapabilir." - Eric S. Raymond
2016 itibariyle, birçok üniversite hala programlamayı bilgisayar bilimi ve bilgisayar bilimini matematik gibi ele alıyor.
Sonuç olarak, birçok giriş seviyesi programlama kursu, C gibi düşük seviyeli soyutlama dillerine veya MATLAB gibi matematik odaklı dillere odaklanır.
Ve bölüm sandalyeler genellikle gibi yıllık programlama dili skor işaret ederek, ders kalmak TIOBE Index veya bu one IEEE :

Bu liderlik tablolarının çoğu, 10 yıl önceki halleriyle neredeyse aynı görünüyor.
Ancak değişim olur. Akademide bile.
Python , 2014 yılında en iyi ABD Bilgisayar Bilimleri programlarında en popüler eğitim dili olarak Java’yı geçti .

Ve yine başka bir değişiklik kaçınılmazdır… sonunda… olur.
Çünkü işgücünün gerçekte kullandığı dillere bakarsanız, çok farklı bir resim çiziyor:

Tüm geliştiricilerin yarısından fazlası JavaScript kullanıyor. Ön uç web geliştirme için hayati önem taşır ve arka uç geliştirmeyle gittikçe daha alakalı hale gelir. Ve oyun geliştirme ve Nesnelerin İnterneti gibi alanlara hızla genişliyor.
İş ilanlarında ayrıca JavaScript, Java dışındaki herhangi bir programlama dilinden daha fazla bahsedilir:

Indeed.com’un verileri
O bizim inşa ettiğini tesadüf değil açık kaynak topluluğunun JavaScript etrafında ‘ın müfredat. Son iki yılda 5.000’den fazla kişi ilk geliştirici işini almak için Ücretsiz Kod Kampı’nı kullandı.
JavaScript’i öğrettiğim için savunmuyorum. JavaScript öğretiyorum çünkü ilk geliştirici işine giden en kesin yol bu.
Peki JavaScript sizin için uygun mu? İlk programlama diliniz olmaya değer mi? Daha önce bahsettiğim faktörleri inceleyelim.
Faktör # 1: İş piyasası
Programlamayı tamamen entelektüel meraktan öğreniyorsanız, bu faktörü atlamaktan çekinmeyin. Ancak – programlamayı öğrenen insanların büyük çoğunluğu gibi – bu beceriyi bir iş bulmak için kullanmak istiyorsanız, bu önemli bir husustur.
Daha önce de bahsettiğim gibi, Java’dan diğer herhangi bir programlama dilinden daha fazla iş ilanında bahsediliyor. JavaScript yakın bir saniyedir.
Ancak JavaScript ile ilgili bir şey şudur: 20 yıldır ortalıkta olmasına rağmen, kısa süre önce Netflix, Walmart ve PayPal gibi şirketlerin tüm uygulamaları etrafında inşa edeceği ciddi bir araç haline geldi.
Sonuç olarak, birçok şirket JavaScript geliştiricilerini işe alıyor, ancak iş piyasasında bu kadar çok kişi yok.

Her açık Java konumu için rekabet eden 2.7 Java geliştiricisi vardır. PHP ve iOS işleri için rekabet de benzer şekilde şiddetli.
Ancak her açık JavaScript konumu için yalnızca 0,6 JavaScript geliştiricisi vardır. JavaScript becerilerine sahip geliştiriciler için bir satıcı pazarıdır.
Faktör # 2: Uzun vadeli beklentiler
Ortalama bir JavaScript projesi, ortalama Java, Python veya Ruby projesinin iki katı kadar çekme isteği alır. Üstelik JavaScript diğer tüm popüler dillerden daha hızlı büyüyor.

GitHub’ın 2016 Octoverse Durumu
JavaScript’in ekosistemi ayrıca Google, Microsoft, Facebook ve Netflix gibi şirketlerin yoğun bir para yatırımı ve mühendislik yeteneklerinden de yararlanıyor.
Örneğin, TypeScript (JavaScript’in statik olarak yazılmış bir üst kümesi) 100’den fazla açık kaynak katılımcısına sahiptir ve bunların çoğu Microsoft ve Google çalışanları üzerinde çalışmaları için ücret almaktadır.
Bu tür şirketler arası işbirliği Java ile bulmak daha zordur. Sun Microsystems’i satın alarak Java’ya etkin bir şekilde sahip olan Oracle, genellikle onu genişletmeye çalışan şirketlere dava açar .
Faktör # 3: Öğrenmenin zorluğu

XKCD çizgi romanının bir parodisidir
.
Çoğu programcı, üst düzey kodlama dillerinin öğrenilmesinin nispeten kolay olduğu konusunda hemfikirdir. JavaScript, Python ve Ruby ile birlikte bu kategoriye girer.
Üniversiteler hala Java ve C ++ gibi dilleri ilk dil olarak öğretiyor olsalar da, öğrenmeleri oldukça zordur.
Faktör # 4: Onunla inşa edebileceğiniz projeler
JavaScript’in gerçekten parladığı yer burasıdır. JavaScript, tarayıcısı olan herhangi bir cihazda, tarayıcıda çalışır. JavaScript ile temelde her şeyi oluşturabilir ve her yerde paylaşabilirsiniz.
JavaScript’in her yerde bulunması nedeniyle, Stack Overflow kurucu ortağı Jeff Atwood, şu anda meşhur olan yasasını icat etti:
“Herhangi bir uygulama olabilir JavaScript yazılacak, olacak sonunda JavaScript yazılacaktır.”
Ve her geçen ay , Atwood Yasası güçlüdür.
Java bir zamanlar her yerde çalışacağına söz vermişti. Java Uygulamalarını hatırlayabilirsiniz . Oracle onları bu yılın başlarında resmen öldürdü.
Python hemen hemen aynı sorunlardan muzdariptir:
“Yaptığım bu oyunu arkadaşıma nasıl verebilirim? Daha da iyisi, bunu telefonuma koyup okuldaki çocuklara yüklemelerine gerek kalmadan gösterebilmemin bir yolu var mı? Um. ” – James Hague, Python’u Öğretim Dili Olarak Kullanımdan Kaldırma konusunda
Buna karşılık, açık kaynak topluluğumuzun üyelerinin tarayıcılarında CodePen’de oluşturduğu bazı uygulamaları burada bulabilirsiniz. Bunları tıklayıp doğrudan tarayıcınızda kullanabilirsiniz:




Bir dili iyi öğrenin. Sonra ikincisini öğrenin.
Dilden dile atlamaya devam ederseniz, uzağa gidemezsiniz .
Temel bilgilerin ötesine geçmek için ana dilinizi iyi öğrenmeniz gerekir. O zaman ikinci diliniz çok çok daha kolay olacak.
Oradan, birçok dil öğrenerek dallara ayrılabilir ve çok yönlü bir geliştirici olabilirsiniz:
- C, bilgisayarların bellek yönetimi açısından aslında nasıl çalıştığını öğrenmenin harika bir yoludur ve yüksek performanslı bilgi işlem için kullanışlıdır.
- C ++, oyun geliştirme için harikadır.
- Python, bilim ve istatistik için harikadır.
- Büyük teknoloji şirketlerinde çalışmak istiyorsanız Java önemlidir.
Ama önce JavaScript öğrenin.
Tamam, şimdi imkansızı deneyeceğim – yorumlar bölümünden itirazları tahmin etmeye çalışacağım.
İtiraz 1: Ama JavaScript yavaş değil mi?
JavaScript – çoğu pratik amaç için – yüksek performanslı diller kadar hızlıdır.
JavaScript (Node.js) Python, Ruby ve PHP’den çok daha hızlıdır.
Ayrıca C ++, Java ve Go gibi yüksek performanslı diller kadar hızlıdır.
En kapsamlı yeni diller arası karşılaştırmanın sonuçları şunlardır:

İtiraz # 2: Ancak JavaScript statik olarak yazılmamış
Python ve Ruby gibi, JavaScript de dinamik olarak yazılmıştır, bu da kullanışlıdır. Ama başın belaya girebilir. Burada exampleArray
bir dizi olmayı düşünüyorum . Değerlerini ayarlıyorum, sonra uzunluğunu, yani içerdiği eleman sayısını kontrol ediyorum.
exampleArray = [1, 2]
-> [1, 2]
exampleArray.length
-> 2
Ama sonra yanlışlıkla onu bir dizge olarak atarım.
exampleArray = "metin"
-> "metin"
exampleArray.length
-> 4
Bu tür hatalar, dinamik olarak yazılmış dillerde her zaman olur. Çoğu geliştirici, bunları önlemek için kontroller koyar ve buna göre testler yazar.
İlk programlama dilinizde kesinlikle statik yazmanız gerekiyorsa, yine de önce JavaScript öğrenmenizi tavsiye ederim. Ardından TypeScript’i hızlı bir şekilde alabilirsiniz.
“Typescript’in bir öğrenme eğrisi var, ancak JavaScript’i zaten biliyorsanız, sorunsuz olacak.” – TypeScript üzerinde Alex Ewerlöf
İtiraz # 3: Ama gerçekten bir mobil uygulama yapmak istiyorum
Yine de önce JavaScript öğrenmenizi tavsiye ederim.
- JavaScript, Angular Cordova ve React Native gibi yerel mobil uygulamalar yapmak için çeşitli araçlar içerir .
- Mobil uygulamanızın gerçekten ilginç bir şey yapabilmesi için, muhtemelen Node.js + Express.js gibi uygun bir web geliştirme çerçevesi ile oluşturmak isteyeceğiniz uygun bir arka uca ihtiyacı olacaktır.
Ayrıca, mobil uygulama geliştirmenin en iyi günlerinin pekala geride kaldığını belirtmek gerekir.
Yeni başlayanlar için, insanlar mobil uygulamaları kullandıkları kadar, tüm geliştirici işlerinin neredeyse yarısı web geliştirmedir. Bunu, mobil uygulama geliştirmeyi içeren işlerin yalnızca% 8’i ile karşılaştırın.

verilen yanıtlara göre 49.525 geliştiricinin meslekleri
.
“Bunun için bir uygulama var” şeklindeki büyük vizyon gerçekleşmedi. Bunun yerine, çoğu akıllı telefon sahibi yeni uygulamaları indirmeyi bıraktı
Elbette – hala uygulamaları kullanıyorlar. Çoğunlukla Facebook, Google Haritalar ve bir avuç diğerleri. Bu nedenle, mobil uygulama geliştiricilerine olan talebin çoğu birkaç büyük işverende yoğunlaşmaktadır.
Bu mobil geliştirme işlerinin görünümünü tahmin etmek zor. Mobil uygulamaları geliştirmenin, sürdürmenin ve dağıtmanın birçok yönü JavaScript ile daha kolaydır. Bu yüzden Facebook ve Google gibi şirketler, bunları JavaScript kullanarak oluşturmak için daha iyi araçlara büyük yatırım yapıyor.
2016 itibariyle hemen hemen tüm geliştirme web geliştirmedir. Her şey “web” olan o büyük platforma dokunuyor. Ve evinizin etrafında konuşacağınız bir sonraki cihaz dalgası ve çocuklarınızı okuldan alan arabalar – hepsi de web kullanılarak birbirine bağlanacak.
Ve bu JavaScript anlamına gelir.
İtiraz # 4: JavaScript, 10 günde yazılmış bir oyuncak dili değil mi?
JavaScript’in ilginç bir geçmişi var .
Şüphesiz, pahasına şakalar yapan insanlar duyacaksınız.
İnsanlar da C ++ ‘dan nefret etmeyi sever. JavaScript gibi, C ++ da bu nefrete rağmen başarılı oldu ve şimdi hemen hemen her yerde.
Bu nedenle, herhangi biri size haftanın seçkin dili yerine JavaScript öğrenmekte zorlanırsa, C ++ ‘yı yaratan adamın ünlü sözlerini hatırlayın:
“Yalnızca iki tür programlama dili vardır: bu insanlar her zaman şikayet eder ve kimsenin kullanmadığı.” – Bjarne Stroustrup
Hata!
Yorumunuz Çok Kısa, Yorum yapabilmek için en az En az 10 karakter gerekli