Tüm programlama dilleri nasıl öğrenilir?

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.

Ona balık tutmayı öğretmek, ona balık tutmayı öğretmekten daha iyidir.

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.

Bir programlama dilini bir arabayla karşılaştırırsanız

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 .

Neden bu kadar çok programlama dili var

Programlama dili, iki yönü içeren bir tür ifade aracıdır:

  • Başkalarının yazdığınız kodu anlayabilmesi ve birlikte kod bakımına katılabilmesi için fikirlerinizi diğer programcılara açıklayın.
  • Fikirlerinizi bilgisayara (bir derleyici veya tercüman aracılığıyla) aktarın ve bilgisayarın talimatlarınızı uygulamasına izin verin.
  • 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ü:

  • Donanım ve bilgisayar dilleri gelişiyor. Genel olarak, programlama dillerinin kullanımı daha kolay ve fikirleri ifade etmede daha güçlü olmalıdır.
  • Bilgisayar uygulamaları yaygınlaştıkça, gittikçe daha fazla alanın bilgisayar kullanması gerekir, bu nedenle farklı alanlardaki sorunları çözmek için farklı programlama dilleri icat edilir.
  • Farklı programlama dilleri, farklı düşünme stillerini temsil eder.
  • 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.

    Programlama dili temeli

    Hemen hemen tüm programlama dilleri, tümü "soyutlama" ile ilgili olan birkaç tür öğe içerir:

  • Veri türleri ve veri soyutlaması;
  • Kontrol akışı ve kontrol soyutlaması;
  • Düşük seviyeli soyutlama
  • Belirli alanlara ekler ve soyutlamalar.
  • 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:

    • süreç;
    • Özyineleme
    • Statik tip
    • Dinamik tip
    • Çıkarım türü;
    • lambda ifadesi;
    • Nesne odaklı
    • Çöp toplama
    • Işaretçi;
    • Süreklilik
    • Metaprogramlama
    • Makro
    • anormal.

    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.

    Dilbilgisine değil, dil kavramlarına odaklanın

    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.

    Kendi kendinize bir programlama dili icat edin veya uygulayın

    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.

    Yeni bir dil öğrenmek için adımlar

    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:

    • Ruby, kullanım kolaylığı ve verimliliğe odaklanır ve kodun okunması kolaydır;
    • Ruby yorumlanır ve yürütülür, bu nedenle GC kullanılır, bu da bazı görevler için performansın bir sorun olabileceği anlamına gelir;
    • Ruby'de her şey bir nesnedir, dolayısıyla nesne yönelimli bir programlama dilidir ve tamamen nesne yönelimli;
    • Ruby çok esnektir ve bazı şeylerini yeniden tanımlayabiliriz.

    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.

    Peki, önce hangi dili öğrenmeliyim?

    Şimdi bu soruyu cevaplamaya geldik. Bu sorunun cevabı birçok faktöre bağlıdır, ancak basitçe söylemek gerekirse:

    1: Sana öğreten var mı? Yoksa bir programlama dili kursu mu alıyorsunuz?

    Öğ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.

    2: Ne için kullanmayı planlıyorsunuz?

    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.

    3: Bir iş bulmak için kullanmanız gerekiyor mu?

    Öyleyse, öğrenmek için pozisyonun gerekliliklerini takip edin.

    En iyi programlama dili hangisidir?

    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!

    "Tian Dadı" hizmeti ilkbaharda çiftçilik ve ilkbahar ekimi
    önceki
    Oyuna giren devler ve üreticilerin çabaları için "aktif hale getirilmiş" video konferans nedir?
    Sonraki
    Uygulama çağında, yaklaşık 900 milyon İnternet kullanıcısının kişisel gizlilik güvenliği sorunları nasıl çözülür?
    Kötü niyetli işletim ve bakım nedeniyle, Weimeng 36 saat boyunca kapalı kaldı Şirketler risk önleme yeteneklerini nasıl güçlendirebilir?
    Karısı cephede, kocası Pekin'i koruyor, sağlık polisi aile çifti: çoğu çocuklarını görmek için eve gitmek istiyor
    Ar-Ge ekibinin öğrenme maliyeti yılda kişi başına 300 yuan'a nasıl düşürülür?
    Real Madrid'in tersine çevirmesi adaletsizlik değil, Casemiro'nun hatası uzun zamandır önceden bildiriliyor
    Guangming Partisi Üyelerinin Savaş Salgını | Karantina Gözlem Noktasını Koruyan "Beyazlı Savaşçılar"
    Wuhan: "Virüs Örneği Kuryesi" Liu Senbo
    Wuhan annesinin karantina günlüğü: Bir ömür boyu en iyi arkadaşım olan Ma Xiaofen'e teşekkür etmek istiyorum
    "Salgın" hat bilgisi | Kuzey Guangdong İkinci Hastanesi, hastalarla 30 günlük doğrudan temas
    "Pandemik" Hat Günlüğü: Persevere! En yorucu anda
    Bajiao Caddesi'nden eski parti üyeleri, salgının önlenmesi ve kontrolünü desteklemek için gönüllü bağışlar yaptı
    100 Milyar Yuan Sanayi Zincirinde "Kaynak Çiçek Uçuyor" "Çin Güç Vadisi" ni ziyaret edin
    To Top