Acemiler genellikle programlamayı öğrenmeye başladıklarında bu soruyu sorarlar:
"Hangi programlama dilini öğrenmeye başlamalıyım?"
Birkaç programlama dilini öğrendikten sonra, birçok geliştirici şu soruyu soracaktır:
"Hangi programlama dili en iyisidir?"
Cevabımı bu yazıda vereceğim. Ancak yanıtı almaktan daha önemli olan şudur: Yeni programlama dilleri öğrenme becerisinde ustalaşın.
Bir programlama uzmanı için yeni bir programlama dili öğrenmek kolay olmalıdır. Yeni öğrenilen programlama dilinde kod yazmaya başlamak için sadece bir haftasonuna, hatta birkaç saate ihtiyaçları vardır. İyi bir programcı, belirli bir görevi yerine getirmek için herhangi bir programlama dilini kullanabilir. Sonuçta, programlama dilleri sadece araçlardır.
Bu doğru, ama daha da önemlisi, "yeni bir programlama dilini nasıl öğreneceğinizi" öğrenmelisiniz, sadece belirli bir dili öğrenmemelisiniz. "Tüm programlama dillerini öğrenme" becerisinde ustalaşmak için bir dahi olmanıza gerek yok. Yapmanız gereken, programlama dillerinin temel bilgisine hakim olmak ve kodun aslında insanlara ve bilgisayarlara ilettiğiniz "mesaj" olduğunu bilmektir. Bu aynı zamanda bir programlama dili tasarlarken ve uygularken dikkate alınması gereken bir değiş tokuş noktasıdır. Çünkü: bazı en iyi uygulamalar.
Aşağıda ayrıntılı olarak açıklayayım.
Unutmayın, programlama dilleri sadece araçlardır, aynı zamanda programcılar tarafından icat edilirler. Dünyada binlerce programlama dili vardır ve bunlardan yalnızca 20'den fazlası BT endüstrisinde yaygın olarak kullanılmaktadır. Biraz düşünürseniz, bu programlama dillerinin bazı ortak yönleri olduğunu göreceksiniz.
Örnek olarak arabaları alalım Dünyada pek çok araba markası var. Bazı arabalar kompakt ama güçlü, bazıları ağır ve yavaş ve farklı markaların arabalarının farklı sürüş deneyimleri var.
Bu modellerden birini nasıl kullanacağınızı biliyorsanız, markaları farklı olsa da diğer modellerin çoğunu nasıl kullanacağınızı da bilirsiniz.
Neden öyle diyorsun? Çünkü farklı otomobil markalarının ortak bir yönü vardır - hepsinin motorları ve lastikleri vardır. Hepsi aynı amaca hizmet ediyor: sizi gideceğiniz yere göndermek.
Programlama dillerinin rolü, programcıların fikirlerini ifade etmelerine yardımcı olmaktır .
Programlama dili, iki yönü içeren bir tür ifade aracıdır:
Bu nedenle, kod aslında insanlara ve bilgisayarlara ilettiğiniz "mesajdır". Bu aynı zamanda bir programlama dili tasarlarken ve uygularken dikkate alınması gereken bir değiş tokuş noktasıdır. Çünkü:
Farklı programlama dillerinin farklı sözdizimi ve özellikleri vardır, ancak hepsi Turing tamamlanmıştır. Layman'ın terimleriyle: Tüm programlama dilleri herhangi bir algoritmayı uygulamak için kullanılabilir.
Tabii ki, tüm programlama dillerini öğrenmenize gerek yoktur, ancak ne kadar çok programlama dili öğrenirseniz, başarmak istediğiniz görev için doğru dili seçmek o kadar kolay olur.
Hemen hemen tüm programlama dilleri, tümü "soyutlama" ile ilgili olan birkaç tür öğe içerir:
Programlama dillerinin birçok ortak özelliği vardır, bu nedenle tüm programlama dillerini öğrenebilmemizin ana nedeni, programlama dilleri kavramının aslında çok sınırlı olmasıdır. Yaygın olarak kullanılan 15'ten fazla programlama dili kavramı yoktur:
Programlama dili kavramı, tıpkı tasarım ilkeleri gibi temelde değişmez.
Programlama dillerinin yazarları birbirlerinin fikirlerinden öğrenirler, ancak uygulama farklıdır. Bazen, C dilinin A ve B dillerinin oğlu olduğunu söyleyebiliriz, o zaman tüm programlama dilinin soyağacı şu şekilde görünebilir:
Bu kavramları iyi anlamak, programlama dillerini hızlıca öğrenmenize yardımcı olmakla kalmayacak, aynı zamanda daha iyi kod yazmanıza da olanak sağlayacaktır. Örneğin, fonksiyonel programlama dillerinin ve prosedürel programlama dillerinin kodlama stili ve soyutlaması çok farklıdır.Eğer anahtar noktalarını anlamıyorsanız, kodu iyi yazamayabilirsiniz.
Bu nedenle, programlama dili kavramlarını öğrenmemiz gerekiyor, ancak bunları nasıl öğreneceğiz?
Belli bir dil kavramı veya özelliği ile çözülmesi gereken sorunun ne olduğunu, avantajlarının ve dezavantajlarının neler olduğunu ve nasıl uygulandığını bilmek en iyisidir.
Örnek olarak GC'yi alalım, o zaman ilk soru şudur: GC nedir?
Bu Wikipedia'nın açıklamasını bulmak için İnternet'te arama yapın. GC, bellek yönetimi sorunlarını çözmek için kullanılır ve program belleği hatalarını azaltabilir. GC ile kod yazmak daha kolaydır çünkü belleği manuel olarak yönetmemize gerek yoktur, ancak bu performans pahasına olur. Programlama diliniz GC kullanıyorsa, GC'nin belleği sizin için nasıl işlediğine dikkat edin.
O halde, GC'nin nasıl çalıştığını bilmeniz gerekir. Hangi algoritmayı kullanıyorlar? Pek çok GC türü vardır ve türleri hala gelişmektedir.
Yeni bir programlama dili öğrenmeye başlamak, programlama dili kavramlarını öğrenmek için iyi bir zamandır. Örneğin, Ruby ilk nesne yönelimli programlama dilinizse, nesne yönelimli programlamanın avantajları ve dezavantajları hakkında daha fazla bilgi edinmek için bu fırsatı değerlendirebilirsiniz.
Nesne yönelimli programlamanın iyi anlaşılmasıyla, diğer nesne yönelimli programlama dillerini öğrenmek çok daha kolay olacaktır.
Sözdizimi çok karmaşık değilse, bir programlama dilini uygulamak için fazla çalışma gerektirmez. Bu projeye bir göz atabilirsiniz, Lisp'i uygulamak için herhangi bir dil kullanılabilir. 8cc, C dilinin bir derleyicisidir.Kendiniz bir derleyici yazmak istiyorsanız, bu projeye başvurabilirsiniz.
Bunlara ek olarak okuyacak bazı kitaplar da var:
"Programming Language Essentials" birçok tür tercümanı tanıtır ve "Programlama Dili Derleyici Uygulaması" da programlama dillerini öğrenmek için uygun bir kitaptır.
Bu adımları izlerseniz, hızlı bir şekilde "tüm programlama dillerini öğrenebilirsiniz".
Adım 1: Bu dilin tasarım felsefesini ve ortak dil özelliklerini anlayın
Örneğin, Ruby öğrenmek istiyorsanız, Ruby hakkında özel olana bir göz atın?
Ruby, kullanım kolaylığı ve verimliliğe odaklanan açık kaynaklı bir dinamik programlama dilidir. Sözdizimi çok zariftir ve kodun okunması ve yazılması doğaldır.
Hadi daha yakından bakalım:
Bu yüzden Ruby öğrenmeden önce anlaşılması gereken temel noktalar şunlardır:
Güçlü ve zayıf yönleri dahil olmak üzere bu dilin en önemli özelliklerini anlayın.
2. Adım: Öğreticiler veya kitaplar aracılığıyla dilbilgisini ve en iyi uygulamaları öğrenin
İkinci adımda, sözdizimi, temel GÇ, hata ayıklama araçları ve birim testlerinde ustalaşmanız gerekir.
Programlamayı öğrenmeye yeni başlıyorsanız, en iyisi "Yetkili Kılavuz" gibi, dil yazarları tarafından yazılmış kitaplar gibi kitaplar bulmak veya övgü dolu eleştiriler içeren kitapları bulmak için çevrimiçi kitapçılarda bu programlama dilini aramaktır.
Programlama konusunda deneyimliyseniz, sadece bazı basit kılavuzlar veya örnek kodlar bulun, bunu kontrol edebilirsiniz.
Unutmayın, dilbilgisi öğrenirken kodu elle yazmanız gerekir, sadece kopyalayıp yapıştırmakla kalmayın. Bu web sitesinde kod yazma pratiği yapabilirsiniz ve birisi kodunuzu gözden geçirecek ve size ücretsiz öneriler sunacaktır.
3. Adım: Yeni öğrenilen dilde daha fazla kod yazın
Şimdi, ekosistem, araçlar ve dille ilgili kitaplıklar dahil olmak üzere yeni öğrenilen dilde bir proje başlatmanız gerekiyor. Bir sayı tahmin oyunu, basit bir çevrimiçi kitapçı veya TODO uygulaması gibi basit bir şeyle başlayabilirsiniz. GitHub'da birçok benzer proje bulabilirsiniz.
Adım 4: Dilin uygulama ayrıntılarını anlayın
Bu adım tamamen gerekli değildir. Ancak, takip edilen programcılar, programlama dilinin uygulama ayrıntılarıyla ilgileneceklerdir. Bazen, programlama dillerinin uygulama detaylarını çok iyi bilmedikleri için hata yazmak kolaydır.
Şimdi bu soruyu cevaplamaya geldik. Bu sorunun cevabı birçok faktöre bağlıdır, ancak basitçe söylemek gerekirse:
Öğretmeniniz C dilini öğrenmenizi istiyorsa, o zaman C dili öğrenmeniz gereken ilk programlama dilidir, çünkü biri size öğretir ve sizin sınıf arkadaşlarınız varsa, öğrenmeniz daha kolay olacaktır.
Web uygulamaları geliştirmek istiyorsanız JavaScript / Python / Ruby öğrenin. Oyun geliştirmek istiyorsanız, C ++ öğrenin. Verileri işlemek istiyorsanız, Python / R dilini öğrenin. Android Uygulaması geliştirmek istiyorsanız Java / Kotlin öğrenin.
Öyleyse, öğrenmek için pozisyonun gerekliliklerini takip edin.
Bu aynı zamanda gerçek duruma da bağlıdır. Her programlama dilinin kendine özgü avantajları ve dezavantajları vardır. Tüm görevler için uygun bir programlama dili yoktur. Varsa, sadece birini öğrenmemiz gerekir, değil mi? Unutma, bu dünyada her derde deva yok.
Şahsen benim için en sevdiğim dil C dili / Ruby / Lua / OCaml.
Bazıları, 5 programlama dilinde uzmanlaşmadan önce kendinizi gelişmiş bir programcı olarak düşünmediğini söylüyor. Daha önce de söylediğim gibi, daha fazla programlama dili öğrenmeye odaklanmayın, daha fazla programlama dili kavramları ve tasarım ilkeleri öğrenmeye çalışın.
İş yerinde yapılandırılmış bir programlama dili kullanıyorsanız, neden işlevsel bir programlama dili öğrenmeye çalışmıyorsunuz? Diliniz dinamik olarak yazılmışsa, neden statik olarak yazılmış bir dil öğrenmeye çalışmayasınız?
Beni takip edin ve bu makaleyi iletin, "bilgi almak" için bana özel bir mesaj gönderin, 4999 yuan değerinde ücretsiz bir InfoQ mini kitabı alabilirsiniz!