İlk programlama dilinizi seçme

Elbette bu, programlama söz konusu olduğunda gelen kutuma en çok gelen sorulardan biri. Dünyanın dört bir yanındaki özgür yazılım / açık kaynak topluluklarına katkılar şeklinde ücretsiz bilgi programlamayı ve geri vermeyi öğrenmenizi sağlayacak bir dizi makale başlatacaksak, biraz zor olsa da bu temele cevap vermek gerekir. soru. Hangi programlama dilini öğrenmeliyim?

Biraz tarih

Bir programlama dilini anlamaya ve seçmeye başlamak için, öncelikle geçmişleri, kullanımları ve işlevleri ve zaman içinde farklı ihtiyaçları nasıl çözdükleri hakkında biraz bilgi sahibi olmalıyız.

Makine dilleri (düşük seviye)

Yaygın olarak bilinir Montaj, daha genel bir dilin lehçeleri olarak tanımlayabileceğimiz programlama dilleridir ... Bu biraz karmaşık gelebilir ama ben onu örnekleyeceğim ... Evrensel bilgisayar dilinin olduğunu biliyoruz elektrikBu, bir bilgisayarın nihayetinde okuduğu şeyin 0sy 1evet, hadi bunu arayalım ebilgisayar ingilizcesi. Bu örnekte, İspanyolca temel kuraldır, ancak iyi bildiğimiz gibi, Latinler tarafından konuşulan İspanyolca, İspanya'da konuşulan İspanyolca ile aynı değildir ve yine de Peru'daki İspanyolca, Arjantin'deki İspanyolca ile aynı değildir. Açıkçası hepimiz neredeyse aynı kelimelere sahibiz (0sy 1s), ancak kullanım ve anlam bağlama göre değişebilir.

Bu işlemci düzeyinde gerçekleşir. Hakkında konuştuğumuzda bilgisayar mimarileri, (amd64, intel, arm, ...) bunun lehçesine atıfta bulunuyoruz bilgisayar ispanyolca. Bunun nedeni, farklı şirketlerin düzeni ve anlamı kendi yöntemleriyle anlamasıdır, bu nedenle bazıları akımın akışı veya tutulacakları sıra gibi ayrıntılarda farklılık gösterir. 0sy 1s.

Bu programlama dilleri, mümkün olan en düşük programlama düzeyinde çalıştıkları için son derece hızlıdır, ancak mimariye oldukça bağımlıdırlar ve öğrenmeleri kesinlikle diğerlerinden biraz daha karmaşıktır. Bunlar, verileri dönüştürmek ve üzerinde faydalı şeyler yapabilmek için genellikle daha geniş bir kavram tabanı gerektirir. Video oyunu severler için bir örnek, oyunlarını programlamak için Assembly'yi kullanan SEGA konsolları olabilir. Açıkçası o zamanlar bellek miktarı bugüne kıyasla çok azdı ve hızlı olabilen ve hafif programlar üretebilen bir dilde uzmanlaşmak gerekiyordu.

Üst düzey diller

Bu büyük grup, daha sonra gelen dilleri düşünür. Montaj. Taşınabilir kod edinme ihtiyacı, adı verilen bir grup dilin ortaya çıkmasına neden oldu. derlendi. Bunlardan ilk yararlanan, 70'lerden beri işletim sistemi düzeyinde programlamaya hâkim olan C idi.

Derlenen diller

Yorumladığım şeyin pratik bir örneğini görelim. Bir satır kod yazdıran çok basit bir C dili programına bakalım.

Kendi. Christopher Diaz Riveros

Derledikten sonra aşağıdakilere sahibiz:

Kendi tasarımı: Christopher Díaz Riveros

Ama şimdi aynı sonucu Assembly kodunda çoğaltmak için ne yazmamız gerektiğini görelim:

Kendi. Christopher Diaz Riveros

Bu, 3 satırlık kodumuzun simple.c, dosya simple.s komutu kullanılarak oluşturulur gcc -S simple.c ve işlemcimizin bir lehçede anlayacağı şeydir Montaj. Açıkçası, aşağıdakilerden oluşan bir yürütülebilir dosya oluşturmak için 0sy 1Dosyanın işlenmesi gerekiyor simple.s ve bunu sistemimizin paylaşılan kitaplıklarına bağlayın. Bu, bir montajcı (as) y un conector (ld).

Derlenmiş diller, düşük seviyeli dillere göre büyük bir avantaj sağlar. taşınabilirler. Taşınabilirlik, her mimari için özel kod üretmeye gerek kalmadan farklı işlemcilerde yürütülebilen kod sağlar. Diğer bir belirgin avantaj, kodu okurken ve yazarken kullandığı basitliktir. Başlıca dezavantajları arasında yüksek bir karmaşıklığa sahibiz, çünkü göreceğimiz aşağıdaki dil türleri ile karşılaştırıldığında, C'nin sunduğu özgürlük, nasıl kontrol edileceğini bilmiyorsanız zararlı olabilir, kesinlikle bir silahı teslim etmek gibidir. Tecrübe eksikliği nedeniyle, bir kişi silahı temizlemek için kendi ayağını vurabilir.

Yorumlanan diller

Bu grup içinde çok çeşitli dillere sahibiz, bunların en önemlileri arasında Python, Ruby, Javascript, PHP vb ... Bu dillerin temel fikri, programları oluşturmak ve çalıştırmak için hızlı bir yol sağlamaktır. bunun nedeni, zor işlemlerin çoğunun yorumlayıcıda yürütülmesi ve kodda uygulanan mantık programlamasının olmasıdır. Yukarıdaki aynı örneğe bakalım ama bu sefer Python ile yazılmış:

Kendi. Christopher Diaz Riveros

En göze çarpan şeyler arasında, ilk satırın tercümanı (uygulamamızı yürütecek program) çağırmaktan sorumlu olduğunu ve sonraki kodun tüm ağır işler yapıldığı için C'deki sürümünden daha "basit" olduğunu görebiliriz. tercüman üzerinde.

Kendi. Christopher Diaz Riveros

Yorumlanan diller, geliştiriciye daha sıkı güvenlik kontrollerine sahip oldukları için (mükemmel olmadıklarına dikkat edin, çünkü en iyisi bile hata yapabilir) ve artık farkında olmadan bir silahı ateşleme riskiyle karşı karşıya kalmıyoruz. çünkü ilk denemede, tercüman bir alarm verir ve yürütme iptal edilirdi. Temel dezavantaj, program çalıştırılırken ortaya çıkar, çünkü program ikili karşılığından daha yavaştır, bu tam olarak kodun çalışmasını sağlamak için daha fazla işlemden kaynaklanmaktadır. Program çok kısa süreler gerektirmiyorsa, fark fark edilmeyebilir, ancak saniyede binlerce veya milyonlarca veriden bahsediyorsak, fark derlenen dillerde katlanarak fark edilir hale gelir.

Yazıyor

Bu, programlama dillerinin bir özelliğidir, bunlar Fuertemente zayıf yazılmış. Bu konuyu başka bir gönderi için bırakacağım, çünkü belleğin bir programda nasıl saklandığını anlamak gerekli ve merak uyandırıyor, ancak şimdilik sadece ayrımı yapmamız gerekiyor: Kesin yazılmış diller, bir değişken veya sabit üzerinde çalışılacak veri türü, zayıf türler dönüşüm gerçekleştirebilir, böylece örtük ve her şey bir dönüşüm hiyerarşisine ve ardından dile bağlı olacaktır. (Şimdi anlaşılmadıysa sorun yok, sonraya bırakacağız)

Paradigmalar

GNU / Linux dünyasındaki her şey gibi, programlama dilleri de paradigmalara göre temellendirilir ve çevrelerinde topluluklar oluşturulur. Örneğin bizde Python Vakfı o Yakut o PHP o Bash (bu durumda GNU topluluğu). Bununla ulaşmak istediğim şey, her birinin sahip olduğu çok sayıda artı ve eksiyi ifade edemem, ancak size özgür bir programlama dilinin olduğu yerde, öğrenilecek ve katılacak bir topluluk olduğunu söyleyebilirim. Tüm dil tercümanlarının olmasa da çoğunun C dilinde veya bazı yakın türevlerinde yazıldığından ve bunların geliştirilmesinin genellikle tüm dil kullanıcılarını etkileyecek kararlar almaktan sorumlu olan topluluğun daha küçük bir grubu tarafından gerçekleştirildiğini belirtmek gerekir. Hatta C.'de olduğu gibi dilin doğru gelişimini sağlamak için kurumlar bile oluşturulabilir.

Hangisini seçmeli?

Zaten diller hakkında yeterince konuştuk ve hala en önemli şeyi cevaplamıyorum 😛. Ama umarım bu küçük makaleyi inceledikten sonra size hangi dili seçeceğinizi söylememe gerek yoktur, çünkü bu bilgilerle merak uyandıracak bir dil arayabilirsin. Açıkçası, bir dilde programlamayı öğrenmek istiyorsanız Montaj işlevsel bir şeye sahip olabilmeniz uzun zaman alacaktır, derlenmiş bir dili seçerseniz, zaman büyük ölçüde azalacaktır; burada * NIX sistemlerinde taşınabilirliğe sahip olmanın yanı sıra, aynı sistem, çünkü C veya türevleri ile temas halinde olmak, bir şekilde bir işletim sisteminin genel bir şekilde nasıl çalıştığını öğrenmenizi sağlar. Son olarak, hafif bir şey öğrenmek istiyorsanız ve bu, çok fazla anlamaya gerek kalmadan çok şey yapmanıza izin veriyorsa, yorumlanmış diller, programlama becerilerini öğrenmek ve geliştirmek için eğlenceli bir yoldur.

Heyecan verici bir şeyle öğrenin

Bu size verebileceğim en iyi tavsiyedir, eğer bir şey öğrenmek istiyorsanız, önce heyecan verici bir şey bulmanız gerekir, aksi takdirde herhangi bir programlama dilinin tipik öğrenme eğrisinin üstesinden gelmek oldukça zor olacaktır. Sistemleri yönettiğinizi varsayalım; bu durumda, ideal bir dil öğrenmeniz gerekebilir. komut dosyası (yorumlanmıştır), bunların içinde Perl, Python, Bash vb. var ... Belki sizinki oyunlardır, istediğiniz oyun türüne bağlı olarak Javascript, Lua, C ++ gibi dillerde birçok proje vardır. oynamak. Belki de sistem düzeyinde bir araç oluşturmak istersiniz, çünkü C, Python, Perl'e sahibiz, bazılarının tekrarlandığını göreceğiz ve bunun nedeni birçok dilin birçok görev için kullanılabilmesidir, bu yüzden tanım nın-nin çok amaçlı diller bunların çoğunda.

Bir proje başlatın

Bununla, aşağıdaki derleyiciyi veya hatta aşağıdaki programlama dilini yarattığınızı kastetmiyorum, bir proje, en sevdiğiniz programdaki küçük bir hatayı düzeltmek, hatta dokümantasyonu geliştirmeye yardımcı olabilir. Neden dokümantasyon? çünkü yazılımın nasıl çalıştığını öğrenmenin belgelerini okuyup yazmaya yardım etmekten daha iyi bir yolu yoktur, çünkü kaynak koddan sonra, program hakkında bulacağınız en büyük bilgi kaynağıdır. Başka bir anda, bir projenin kodunu nasıl okuyacağımızı ve edindikleri işlevleri ve değerleri nasıl anlayacağımızı göreceğiz.

Buraya geldiğiniz için çok teşekkür ederim ve her zaman olduğu gibi yorumlarınız daha iyi içerik oluşturmama ve nereye odaklanmam gerektiğini bilmeme yardımcı oluyor, Selamlar.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   anonim dijo

    Her zaman olduğu gibi 10 !!!!!! Yazılarınız için teşekkürler. Selamlar ve daha fazlası gelecek !!!!

    1.    ChrisADR dijo

      Çok teşekkür ederim 🙂 yazmaya devam etmem için beni teşvik ediyor. Şerefe

  2.   Rubén dijo

    "Hangi dili seçmeliyim?" Sorusunu sormanın yanlış olduğunu düşünüyorum. Dilin en küçüğü olduğunu düşünenlerdenim, önemli olan programlamanın temellerini öğrenmek ve "hesaplamalı düşünmek". Bir söz dizimine, yazımına, OOP'yi, yardımcı programını vb. Destekleyip desteklemediğine karar verin. Stüdyoda doğal olarak gelecek bir şey olduğunu düşünüyorum ve sonuçta her programcı 1, 2 ve 3'ten fazla dili biliyor ... ve sahip olduğu programlama kavramları (ve sözdizimi değil) sayesinde henüz deneyimlemediğiniz bir dilde programlama yapmak.
    Bununla birlikte, yeni başlayanlar için, iyi bir dilin basitliği için Python olabileceğini düşünüyorum, ancak her şeyden önce biraz daha ileri gidin, algoritmaları inceleyin ve işlerin "içeride" nasıl çalıştığını bilin.

    Selamlar ChrisADR

    1.    ChrisADR dijo

      Merhaba Rubén, paylaştığınız için teşekkürler
      Zamanla programlama dünyasında öğrendiğim bir şey var ve bu "çok şey kaplayan kişi sıkıştırmaz" ve bu iyi bilinen cümle ile birçok kez ve özellikle de en hevesli olanın karar verdiğini söylüyorum. biraz deneyin ve kodlamayı nasıl öğrendiğiniz konusunda çok hızlı dönüşler yapın. İyi bir geliştiricinin bir Assembly lehçesi kavramına ek olarak, bir derleyici dili ve bir yorumlayıcı dili bilmesi ve ustalaşması gerektiğine inanıyorum ve benim kişisel görüşüm.
      Bunun nedeni şudur, prototipleme her zaman basit ve hızlı, üretilmesi kolay ve genellikle bir sonuç gösteren bir şey olmalıdır, ancak yeterli değilse, tercümanın geldiği zaman başvurulacak bir "B planı" olmalıdır. sınırı.
      Assembly'nin bir lehçesini bilmek size sadece güven vermekle kalmaz, aynı zamanda size "hesaplamalı" düşünmeyi de öğretir, ama açıkçası bu kısım hepsinden daha karmaşıktır ve kesinlikle tüm programcıların gelmediği bir şeydir.
      Ancak konuya geri dönelim, çünkü bence ana fikir "bir dil seçin ve bir LOT alıştırma yapın", çünkü programlamada gerçekten iyi olmanın tek yolu kod okumak ve yazmaktır ve bu benim de öğrendiğim bir şey çekirdek topluluğu Aynı sözdizimini uzun süre koruduğunuzda, formu görmeyi bırakırsınız ve ARKA PLAN hakkında endişelenmeye başlarsınız. Başlangıçtan itibaren bir dil veya sözdizimi seçme fikri, kişinin programın sözdizimi yerine programın ANLAMINI okumaya başlayabilecek şekilde okumaya ve yazmaya alışabilmesidir.
      Bu yazının ana nedeni bu, her birinin kendi dilini seçmesi, böylece aşağıda kavramları açıklayabiliriz, belki de bununla şüpheler netleşir 🙂
      Selamlar ve paylaştığınız için teşekkürler.

  3.   Deibis Contreras dijo

    gönderi için teşekkürler, iyiydi.

    selamlar

    1.    ChrisADR dijo

      Merhaba Deibis, paylaştığınız için teşekkürler 🙂 Selamlar

  4.   JorgeFS dijo

    Tavsiyem: PHP dışında herhangi bir şey. Yirmi yıl önce PHP, Web'i CGI kullanarak başka bir dilde programlayan yüksek düzeydeki karmaşıklık nedeniyle varlığında belli bir anlam ifade ediyordu. Ancak bugün, Python için Django, Java için Bahar veya Ruby için Rails gibi güçlü dillerde Web geliştirmeyi çok daha eğlenceli hale getirmek için çok çeşitli Çerçeveler bulunmaktadır. PHP şu anda tüm dil popülerlik çizelgelerinde görünse de, bence PHP zamanla geçerliliğini kaybedecek.
    Öğrenme eğrisi dik olmasına rağmen, programlamanın gerçekliğini anlamak için C \ C ++ ile başlamanızı şiddetle tavsiye ederim.
    Selamlar.

    1.    ChrisADR dijo

      Merhaba Jorge, paylaştığınız için teşekkürler, oldukça sağlam bir Çerçeve olan Laravel'i hatırlıyorum 🙂 Web geliştirme için Spring'i veya Java'yı kişisel olarak hiç sevmedim, oldukça külfetli buluyorum, ama sanırım bu, içinde bulundukları sürenin bir parçası Pazar, o zamanlar öncülerdi ve bugün kesinlikle modern alternatifler (Js, Python ve Ruby), fazla çalışma gerektirmeden okunabilir ve değiştirilebilir kod sunma yöntemini geliştirdi.
      İnsanların hayatlarının bir noktasında C / C ++ öğrenmesine de meyilliyim, Java ile başladım ama sanırım programlamanın güzelliği bu, istediğiniz her şeyle başlayabilirsiniz, tutarlı olduğunuz sürece yardımcı olun 🙂 Şerefe

    2.    Rubén dijo

      Artık sana karşı çıkamıyorum. Yıllar önce C ve VB ile başladım, daha sonra PHP ve JS'ye odaklandım (web geliştirmeye odaklandığımdan beri) ve daha sonra çalışırken ağırlıklı olarak C / C ++ ve Java öğrendim.
      PHP'nin bu mesajda listeleyemediğim birçok avantajı var. PHP7 hızlıdır (Python'dan daha hızlıdır ... hhvm, farklı önbellekler, Phalcon gibi çerçeveler veya Python durumunda bayt kodu kullanmadan), çok sayıda kitaplık ve çerçeveye sahiptir, kullanmak için çok sayıda doğrudan uygulanan işleve sahiptir herhangi bir zamanda, C'ye çok benzeyen sözdizimi, diğer dillere geçmeyi çok kolaylaştırır.
      Dünya çapındaki web sitelerinin% 30'u WordPress (PHP) ile yapılıyor ve bu değişmiyor gibi görünüyor, Wikipedia kullanıyor, Facebook (hhvm ile) ve çok sayıda site, toplamda% 80.

      Size Django gibi Ruby on Rails'in 12 yaşında olduğunu hatırlatırım! Bu sefer hangi kotaya ulaştılar? Ve elbette, pratikte bir tekele sahip olan ve hiçbir tür parçalanma olmayan 2 çerçeveden bahsediyoruz. Başka hangi ciddi alternatiflerim var? PHP'nin alaka düzeyini kaybedeceğini söylemek çok az mantıklı.

      Python artık hızlı bir öğrenme eğrisine sahip olduğu için moda olduğuna göre, basit bir dil ve bunu Google ve Google gibi şirketlerin desteğiyle «Python ile 20 saatte programcı ol ve üzerinde çalış» olarak satıyorlar. şimdi bir CV'de kendinizi farklılaştırmak için (veya Javascript için 50 çerçevenin günlük doğumu olarak!) yeni diller arama modası (Go, Dart….), işlerin değiştiği anlamına gelmiyor.

      Ruby çok ilginç bir dil, ancak yerleşik kalıplardan o kadar çok kopuyor ki PHP'den daha popüler hale geldiğine inanmakta zorlanıyorum. Tabii ki Ruby bence programlamaya başlamak için en kötü dil.
      Anladığım kadarıyla Python'un programlanması eğlenceli olabilir, Ruby bile tuhaflıkları ile ... ama Spring with Java? Gerçekten mi? Java birçok şey olabilir ... ama Python ve PHP'den daha eğlenceli olabilir mi?

      Python ile başlamak çok iyi, ancak sadece Python'a bağlı kaldığınız için, birçok şirketin programlama seviyenizin "derin" olmadığına inanması riskini alıyorsunuz (Python'da çok iyi olsanız bile). Bunun nedeni, C ++ veya Java gibi diğer "çok amaçlı" dillerle rekabet etmenizdir. Python'da bir işaretçi, bitsel işlemler, bir çöp toplayıcının nasıl çalıştığı ve uzun vb. Farkları bilmeden programlayabilirsiniz.
      Python, var olan ve bir "çocuk dili" olarak görülebilen (metaforu alın) "klasik programlamaya" belki de en az benzeyen ve bu da bir avantaj ve dezavantajdır.

      1.    JorgeFS dijo

        "Python, var olan ve 'çocuklar için bir dil' olarak görülebilen 'klasik programlamaya' belki de en az benzeyen (metaforu anlayın) ve bu da bir avantaj ve dezavantajdır." LOL, bu Python hakkında söylediğim en komik şeylerden biri. Hiç Python'u gerçekten öğrendin mi?
        PHP dışında dünya ne kadar zamandır var?
        Arkadaş PHP ölü doğmuştu. PHP (\ d +), çok kötü bir başlangıç ​​tasarımı nedeniyle çok fazla sürükleyicidir ve kullanıcı topluluğunu korumak için tüm bu ilk tasarım hatalarını çok derinlemesine sürüklemeye devam eder. PHP modülerlik olmadan doğdu, birçok C-tarzı işlevsellik ile doğdu (bu arada, sözdizimi C'ye benzer olduğu için buradan nereden geldiğini bilmiyorum, diğer dillere kolayca taşınabilir). PHP'nin davranması gerektiği gibi üst düzey bir dil, resmi sitesinde listelenen bu işlevler dizisi gibi çirkin şeyler içerir. http://php.net/manual/en/indexes.functions.phpBunun nedeni, modülerlik olmadan doğmuş olması, dolayısıyla her şeyin pis bir şekilde karışmış ve adsız olmasıdır.
        Bu, PHP kodunun bir parçasıdır:
        "Stream_notification_callback");
        stream_context_set_params ($ ctx, $ parametreler);
        var_dump (stream_context_get_params ($ ctx));
        ?>
        bir noktada tüm bu 'akış' işlevlerinin nereden alındığı belirlenebilir mi? HAYIR, o zaman bunların yerleşik işlevler olduğunu söyleyebilirsiniz, ancak o zaman tüm ekosistem yerleşik işlevler mi? Ve bu yüzden, PHP kodunda çok fazla çöp var, eğer böyle kötü bir tasarımın karmaşıklığını ve yararsızlığını anlayamıyorsanız, beni affedin ama yine de görecek çok şey var.
        Wordpress mükemmel bir yazılım çözümüdür, ancak bu onun iyi bir teknolojik temele sahip olduğu anlamına gelmez. Bir taşla çekiçleyip dişlerinizle çivi çakabilirsiniz ve yine de mükemmel marangozluk işleri yapabilirsiniz, ancak elbette, iyi bir çekiç kullanan başka bir marangozdan çok daha fazla işle.

        Öte yandan: "20 saat içinde Python ile programcı ol ve üzerinde çalış", hiç bu kadar aptallık görmemiştim. 20 saat içinde ve Web programlamanın nasıl çalıştığı veya programlamanın kendisi hakkında hiçbir bilginiz olmadan PHP'de bir web sitesi oluşturabilirsiniz. Aslında PHP'nin bu kadar popüler olmasının nedeni budur, çünkü bu dünyaya yeni başlayanlar PHP'yi hızlı bir gelişme noktası olarak görürler (bu yüzden bu kadar çok PHP kodu bu kadar zordur).
        Python'un eksikliklerine gelince, başarılı olduğu tek şey işaretçilerle çalışmaktı, ancak her durumda, Python yüksek seviyeli bir dildir (Java gibi) ve sözdizimi seviyesinde bunları kullanmaz; ama bitsel işlemler, ciddi mi?, bunu kastediyorsunuz x << y, x >> y: https://wiki.python.org/moin/BitwiseOperators. Çöp toplayıcı meselesini çok daha az anladım: https://docs.python.org/3/library/gc.html.
        PHP boşlukları:
        -PHP'nin çok zayıf bir nesne yönelimli programlama (OOP) tasarımı var.
        -Henüz operatörleri aşırı yükleyemezsiniz.
        -Sürpriz, function overloading PHP'de bu kavramdan doğal olarak beklediğiniz şey değildir.
        … .. ve sadece sıkıldım hehe.
        Selamlar.

        1.    Rubén dijo

          Parantez içine "metaforu anla" koydum (Python'u aynı çalışma ortamında C ++ / Java ile karşılaştırarak), anlamadığınız açık. Bir C ++ programcısının Python'u, bir Python programcısının C ++ öğrenebileceğinden çok daha hızlı bir şekilde öğrenebileceğini söyleyebilirim, tıpkı bir C / C ++ programcısının ortalama maaşının bir Python bir.
          Bunu size başka örneklerle, hatta bir çizimle açıklayabilirim! ama görünen o ki, benim koyduğum şeyi sadece bağlamdan arındırmaya ve alay etmeye odaklanıyorsun.

          Hiç bir zaman PHP'nin dünyadaki en iyi dil olduğunu veya örnek bir tasarıma sahip olduğunu söylemedim, bunu nereden anladığımı bilmiyorum. Başkalarının bilgilerini değerlendirmeden önce okuduğunu anlamanı geliştirmen gerektiğini düşünüyorum. Doğru olan (ve mesajımda da söyledim) bulabileceğiniz çerçeveler, kütüphaneler ve yardımcı programlardan oluşan tüm ekosisteme ek olarak onunla geliştirmenin çok çevik olduğudur.
          Ayrıca ne tür bir karşılaştırma yapıyoruz? Python çok amaçlı bir dil olarak mı yoksa web için mi? Bu durumda, neden PHP ile karşılaştırıyoruz? PHP'nin belirli bir alanı vardır ve bu alanda Python (bu yıl değişmeyen% 0.2'lik bir payla) PHP'nin yanında soluklaşır.
          Şimdi PHP trendlerini göreceğiz; Ocak 82,4'de% 2017'ten Ocak 83.1'de% 2018'e: https://w3techs.com/technologies/history_overview/programming_language

          Python, PHP'nin tahtını indirecek mi? Hangi yılda? hangi beş yılda? onyıl?
          Python diğer birçok görevde de kullanılabilecek ve hatta PHP'den daha yaygın olarak kullanılabilecek, ancak bir web geliştirme dili olarak Python, alakalı olmaktan ışık yılı uzakta,% 0.2'si% 83.1'e karşı duruyor (bu yıl artışla) .

          Ayrıca, PHP'nin dışına çıkmadığımı söyleyerek, sadece PHP'yi uzun süredir tam olarak PHP'de programlama yapmadığım zaman bildiğimi ima ederek, bazı şeyleri kesin olarak kabul ediyorsunuz haha. Şu anda, iş nedeniyle çoğunlukla Java'da programlıyorum.
          Python'da programlama yaparak bitsel, çöp toplayıcı veya işaretçi hakkında bilginiz olmadığını da söylemedim. Aksine, bunun ne olduğunu bile bilmeden Python'da programlayabilirsiniz. Ancak, bunun bir C ++ programcısı için geçerli olacağından oldukça şüpheliyim. Ve tabii ki karşılaştırmayı Python web programlama için değil, "çok amaçlı dil" alanına girdiğinde yapıyorum.

          20 saat içinde programcı olmak sadece bir şaka, abartıdır. Ancak, size benzer şeyler vaat eden çevrimiçi eğitim platformları ve kurslar hakkında çeşitli bağlantılar koyabilirim. Beni suçlamayın, "uzman programcı" olmanın 20 saatlik bir kurs almaktan ibaret olduğunu düşünen bir iş piyasasını suçlayın. Ve Python moda dillerden biri ve aynı zamanda en hızlı öğrenme eğrisi ile ... beyaz ve şişede.

          Israr ediyorum, mesajınızı PHP'nin ne kadar kötü olduğunu söylemeye dayandırıyorsunuz (ki bu belirli bir kısımda katılıyorum). Bana doğru geliyor, ancak mesajım bununla ilgili değil, neden PHP'nin kullanılmaya devam edeceği ve sizin düşündüğünüz gibi yarın yok olmayacağı.

          selamlar

  5.   nadie dijo

    C -> Git -> (Lisp | Haskell | Java | her neyse)

    1.    ChrisADR dijo

      Son zamanlarda bir okuyucu bana bir Go kitabı için bir öneri gönderdi, bu kesinlikle gelecekte hesaba katılması gereken bir dil ve belki de burada bir gönderi olacak 🙂 Paylaşılacak birçok grafik

  6.   mvr1981 dijo

    Peki ... ve ne programlıyorum? Zaten var olan bu kadar iyi ve deneyimli programcılarla neden bugün bir programlama dili öğrenelim? Başkalarının henüz çok daha verimli bir şekilde çözemediği hangi sorunları çözebilirim? ... Kısacası: Bugün bir programcı olmak ne kadar özgün? Bilgi ve deneyim eksikliğim tarafından tekmelenmeden veya dışlanmadan başkalarıyla nasıl işbirliği yapabilirim?

    1.    ChrisADR dijo

      Merhaba mvr1981, gerçekten ilginç sorular 🙂 Bunları sonuncudan ilkine doğru çekeceğiz.

      Bilgi ve deneyim eksikliğim tarafından tekmelenmeden veya dışlanmadan başkalarıyla nasıl işbirliği yapabilirim?

      Atılmak istemiyorsanız, ilk adım süreci öğrenmektir, projelere gelenlerin sadece kendi yöntemleriyle bir şeyler yapmak isteyen, topluluğun isteklerine uyum sağlamasını isteyen insanların sayısını hayal edemezsiniz. Bu kesinlikle benim evinize gelip ortalığı karıştırıp ailenize saygısızlık etmem gibi (çoğu kez böyle hissettiriyor). Bunun olmasını önlemek istiyorsanız, katkıda bulunmak için yönergelere, bunu yapmanın yollarına çok dikkat edin ve eksik bir şey göndermeyin, yardıma ihtiyacınız varsa her zaman iletişim kurmanın yolları vardır, ancak kötü bir iş muhtemelen kötü ilk izlenimler yaratın. Kendinizi dışlamak istemiyorsanız, size kalmışsa, onu ne yaptığını bilmeyen işe yaramaz programcı veya mükemmel bir programcı olma yolunda olan biri olarak görebilirsiniz ve bu sadece pratikle ve kesinlikle yol boyunca böceklerle. Gentoo'da geliştirici statümü kazanmadan önce birçok kez yanıldım ve bu "kötü zamana" rağmen denemekten alıkoymadı.

      Bugün bir programcı olmak ne kadar özgün?

      - Özgünlükle ilgili değil, bugün bir zorunluluk, sadece aşağıdakileri düşünün, 20-30 yıl önce, daktilo etmek bir zorunluluktu, birçok iş sizin bildiğiniz veya en azından yapabileceği sonucuna vardı. Bugün Office'i bilmek bir zorunluluktur, sizi Office belgelerinin önüne koymayan neredeyse hiçbir iş yoktur. Yarın, çok yakında programlama bir zorunluluk olacak. Bu aynı zamanda kişisel bir bakış açısından da geçerlidir; paranız, sağlığınız, aileniz kadar önemli şeyleri emanet ettiğiniz programlarda ne olduğunu bilmek benim için mantıklı bir şeydir, çünkü sınırlarını ancak nasıl olduklarını bilirseniz bilirsiniz. çalışmak ve bunu bilmek için nasıl programlanacağını bilmeniz gerekir.

      Başkalarının çok daha verimli bir şekilde çözemediği hangi sorunları çözebilirim?

      - Miktarı sizi şaşırtacak Özellikler bugün gerekli olan ve doğruyu söylemek gerekirse, toplulukta dünyanın en iyi programcılarının olması önemli değil, iş her zaman geliştiricilerin çalışma kapasitesinden daha büyük olacak, bunu Gentoo'da doğrulayabilirim, orada çekirdeği geliştiren insanlar, Google, Sony vb. için çalışan insanlar ... hepimizin ortak noktası, hiç kimsenin bekleyen tüm işleri yapmak için istediği kadar zamanı olmamasıdır.

      Zaten var olan bu kadar iyi ve deneyimli programcılarla neden bugün bir programlama dili öğrenelim?

      -Bu ikinci soruda cevaplanıyor 😉 Ama şimdi ekleyebilirim ki, zaten geliştirilmiş olan işi kuşakların destekleyebilmesi gerekiyor, yani bu "deneyimli" geliştiriciler yavaş yavaş ortadan kalkacak ve bunun için gerekli olacak " daha genç »Geliştiriciler sorumluluk alırlar ve döngüyü canlı tutmaya yardımcı olurlar, genç ve deneyimsiz insanlara sahip olmayan bir topluluk zamanla yok olmaya meyillidir, çünkü bilgi aktarma fırsatı olmayacaktır.

      Ve ne planlıyorum?

      -Bu belki de cevaplanması en zor olan şey, ancak size yakın zamanda GNOME 24 ve onun Wayland bağlantısı ile Shutter gibi programların ekran görüntüsü almasını engelleyen sorunlar yaşamaya başladığım bir örnek poco vermeye çalışacağım. Bu benim için bir sorun çünkü makalelerimi yazarken size söylediklerimi göstermem gerekiyor 🙂 biraz etrafa bakınca GNOME Screenshot uygulamasına geldim, en azından biraz "minimalist". İşlevleri arasında bir ekran bölgesi alma var ama fotoğrafı iyi çekmezsem ne olur? Pekala, programdan ayrılmam ve tekrar girmem gerekiyor, kesinlikle sıkıcı bir şey, "Tekrar çek" yazan bir düğme veya buna benzer bir şey, çıkıp tekrar girmek zorunda kalmadan yeni bir çekim yapmama izin verir. Bu küçük bir programlama projesi, GNOME çerçevesinde hiçbir şey programlamadım, bu yüzden açıkçası yeni düğmeyle "yamamı" göndermeden önce öğrenmem gereken çok şey var, ancak bu arada programlamayı öğreniyorum ve umarım bunu özellik herkesin kullanımına sunulduğunda birden fazla kişiye yardımcı olacaktır.

      Bu bir örnek, basit bir şey ve kesinlikle başka herhangi bir "uzman" programcı bunu zaten yapmış olabilirdi, ancak bariz zaman yetersizliğinden dolayı, öyle olmadı, şimdi yapma olanağına sahip olan benim aslında süper programcı olmadan.

      Şimdi, bu kadar sık ​​kullandığınız yazılımda hayatınızı "daha basit" hale getirecek bir şey bulmak size kalmıştır, bunun güzelliği, aşağıdaki makalelerde size vereceğim tavsiyelere uyarsak, dil önemli olmayacak, çünkü okudukları kodu anlamaya başlamak ve istediğiniz şeyi yapmak için değiştirmek için temel bilgileri bilecekler, bu çok özel bir duygu 🙂

      Selamlar ve tekrar teşekkürler

      1.    nadie dijo

        Sadece gnome yakalama programını açtıktan sonra, en kolay şeyin klavye kısayollarına gitmek ve aktif pencereyi yakalamak için tüm alt-baskıyı yakalamak için üç kombinasyon yazdırmak ve yakalamadan bir seçim yapmak için süper baskı atamak olduğunu düşünüyorum. bölge, mevcut kısayollar buradadır, yalnızca bunları atama meselesi

        1.    ChrisADR dijo

          Bu yüzden size bir örnek veriyoruz 🙂 bu düğme gibi küçük şeyler programlama olduğundan, başkaları tarafından fark edilmeyebilecekleri için bazılarına yardımcı olabilirler, ancak kesinlikle ana hedefi karşılıyorlar, programlamayı öğrenmeye yardımcı oluyorlar ve yeni özelliklere yol veriyorlar, Bu düğmeden sonra, bir oturum yönetimi veya çekilen tüm fotoğrafların ön izleme ekranı veya kısaca yapılabilecek birçok şey gibi birçok şey başlatılabilir. Buradaki fikir, merakınızı atlatan bir şey bulmanızdır, sisteminizde çalışan herhangi bir yazılım, zaman veya personel yetersizliği nedeniyle henüz uygulanmamış iyileştirmelere veya yeni özelliklere ihtiyaç duyabilir 🙂

      2.    mvr1981 dijo

        Sayende. çok iyi cevaplardır.

    2.    Fatura dijo

      Pekala, alanında profesyonel olmayacak biri için, hem idari görevler hem de yönergeler için hangi ortamda çalıştıklarını görmek gerekir, örneğin Python / Basic ve nasıl yapıldığını bilmek ilginç olabilir. LibreOffice veya MS Office gibi ofis paketlerinde makroları programlamak için. Bunun, sizin veya çevrenizdeki diğer işçiler için saatlerce çalışmadan tasarruf edebileceği ve tekrarlayan herhangi bir görevi gerçekleştirmelerini isteyebileceği zamanlar vardır, veritabanına bağlandıktan sonra şirketin ana oranlarını hızlı bir şekilde hesaplamak için bir gösterge panosu oluşturabilirsiniz ve biraz SQL sorgusu yapın.
      Her şey gibi, araçları parmaklarınızın ucunda biliyorsanız, ondan en iyi şekilde nasıl yararlanabileceğinizi düşünebilirsiniz. Her şey uydurma değil.

  7.   Marcelo dijo

    Guillermo, sana tamamen katılıyorum, "Her şey icat edilmedi" ve icat edilen şey değiştirilebilir. Araçlardan en iyi şekilde yararlanmalı ve ihtiyaçlarınıza en uygun olanı kullanmalısınız.

  8.   Ricardo dijo

    Programlama için öğrenilecek ilk dil İngilizce'dir, daha sonra onlara en çok hitap eden ve onlara en güzel görünen dildir.

    1.    ChrisADR dijo

      Bunu yazmamıştım ama doğru 🙂 İngilizce bilmek çok yardımcı oluyor çünkü çoğu dil içinde yazılıyor, ama aynı zamanda daha fazla miktarda ilk elden bilgi de paylaştığınız için çok teşekkür ederim

  9.   Ruben salgado dijo

    Motive etmenin yanı sıra mükemmel bir makale.

    1.    ChrisADR dijo

      Çok naziksiniz, çok teşekkür ederim 🙂 Selamlar

  10.   Gonzalo martinez dijo

    Programlama, bu akıl yürütmenin nasıl talimatlara dönüştürüleceğini bilmektir.

    Makale hakkında iki açıklama:

    1) Neredeyse 10 yıllık bir programlama öğretmeni olarak deneyimime dayanarak, hangi dille öğrendiğiniz değil, nasıl öğrendiğiniz ve ne kadar karmaşık olduğu önemli.

    Yapılandırılmış bir şekilde öğrenilebilen ve daha sonra daha karmaşık şeylere geçilebilen bir dilin, Java gibi bir dille baştan başlamaktan daha kolay olduğunu düşünüyorum.

    Temel olarak C veya Pascal'da Hello World gibi bir şey öğrenmek, birkaç satırdan daha kolaydır (Pascal söz konusu olduğunda PROGRAM veya #include C) durumunda, algoritmayı geliştirmeye ve programı kendi mantığı ile kodlamaya başlayabilirsiniz, Java'da olduğu gibi, kendi içinde bir sınıfa, bir yönteme ve yeni başlayanlar için gereksiz bir bilgi yüklemesi olan diğer bazı şeylere ihtiyaç duyar, ve bu pekala göz ardı edilebilir ve başka şeylere geçebilir, ancak bunlar orada olan kavramlardır ve bence, bir şeyleri gözden kaçırmak, özellikle dil sizi onları kullanmaya zorluyorsa, öğrenmenin iyi bir yolu değildir. İlk kez bir M-16 ile hedef antrenmanına başlamak ve yarı otomatik modda iki elinizle tutacağı bir tabanca gibi tutarak aylarca atış yapmak gibi.

    2) Bir dilin yorumlanıp derlenmemesi, dilin kendisine değil, uygulanmasına bağlıdır. Örneğin, wsgi kullanan bir web uygulaması için Python kullanılıyorsa (apache için mod_wsgi veya Nginx için uwsgi olabilir), python kodu karşılık gelen modül başlatılırken .pyc dosyaları oluşturulurken derlenir.

    Ayrıca java için ikili dosya üreteçleri (bayt kodu yerine yerel ikili dosyalar üreten) veya saf ikili dosyalarda php betikleri derleyicileri vardır.

    PHP hakkında söylediklerine gelince, bu basitçe başka bir çağda, başka şeyler düşünülerek ve o sırada var olmayan yönleri dikkate almadan tasarlanmış bir dildir. Açıkçası, en çok kullanılan gerçeği onu dünyadaki hiçbir şey için en iyisi yapmaz, ancak bir gerçeklik var: tüm programlamalarda bir iş bulma şansının en yüksek olduğu dildir. Sevmeseniz bile canınızın acıtmayacağını bilmek.

    Birkaç yıldır Sistem Yöneticisi olarak çalışan ve geliştirici işini bırakan ben bile, sık sık PHP kodunu bir şeye koymam gerekiyor.

    1.    ChrisADR dijo

      Merhaba Gonzalo, paylaştığınız için teşekkürler,

      Kesinlikle gereksiz bilgi yüklerinden bahsetmişken, aynı dilin yorumlanabileceğini veya derlenebileceğini bilmek bu aşamada gerekli olmayan bir şeydir 🙂 Kesinlikle uygulama önemlidir, ancak bu düzeyde dersek kafa karışıklığından fazlasını üretmeyiz. Aynı şekilde, nesneye yönelik programlama sorunları veya insanların başını döndürmemek için kademeli olarak dozlanması gereken diğer kavramlar ele alınmaz.

      Alan sınırlı olduğundan, yazının temel amacı iki büyük dil dünyası olduğunu programlamak isteyen okuyuculara, "geleneksel olarak" yorumlananların daha "basit" olduğunu, "geleneksel olarak" derlenenlerin biraz daha fazla olduğunu göstermektir. "karmaşık", ancak daha sağlam bir anlayışa sahip olmanın bu karmaşıklık düzeyine değdiğini ve programlama yaklaşımına bağlı olarak en sevdikleri projeleri seçebilecekleri için dili seçmenin her bir kişiye bağlı olduğunu aynı zamanda okuduklarını ve / veya yazdıklarını anlayabilecekler 🙂

      Tekrar çok teşekkür ederim selamlar.

      1.    Gonzalo martinez dijo

        Bu bir hatadır, derlenmiş veya yorumlanmış diller yoktur, her dil için farklı durumlar için yorumlayıcılar ve derleyiciler vardır.

        Şimdi bahsetmek bir bilgi yüklemesi değil, böyle bir açıklama yapmak bir hatadır. Bence, bilgi ile aşırı yüklenmek istemeseydiniz, tercümanları görmezden gelmek daha verimli olurdu.

        1.    ChrisADR dijo

          Açıklama için teşekkürler, konuya döndüğümde bunu dikkate alacağım. Şerefe

  11.   Ares dijo

    PHP'nin gözden düştüğünü dikkate alarak sunucu tarafı için hangi dili önerirsiniz?
    Aynı veri tabanları için de mySQL'den daha iyi ve daha modern bir şey olup olmayacağını bilmiyorum.

    1.    ChrisADR dijo

      PHP gözden düşmedi ... Her dilin bir yaşam döngüsü vardır ve php kesinlikle zaten "olgun" ölçeğine giren bir dildir, bu da onu istikrarın her şeyden önce olduğu işletme düzeyinde yararlı kılar ... Php'den daha "olgun" olan ve kesinlikle takipçileri ve eleştirmenleri olan javada hala geliştirildiği bazı bankalar gibi ... Ve COBOL'den bahsetmeye gerek yok ...

      Eğer aradığınız şey tekdüzelik ve modernlik ise, yakut paradigması veya python'un "basitliği" de iyi referanslar olmasına rağmen, javascript "tam yığın geliştiricilerinin" favorilerinden biri haline geliyor…. İhtiyaçlara bağlı olarak perl bile seçenek olabilir 🙂

      Günümüzde ORM (nesne ilişkisel eşleştiricileri) ilişkisel veri yönetimi açısından çok fazla güç kazanıyor. SQL sözdiziminden sınıf ve öznitelik işlemeye kadar gider ... Hemen hemen tüm diller (hepsi değilse de) bazı ORM'leri işler.

      . Mongo DB, oldukça önemli hale gelen ilişkisel veritabanlarına bir alternatiftir; ancak, artılarını ve eksilerini bilmek ve belirli ihtiyaca bağlı olarak en iyi çözüm olup olmayacağını doğrulamak gerekir.

      Umarım size yardımcı olur selamlar 🙂

      1.    Ares dijo

        Teşekkürler, kontrol edeceğim.

      2.    Ares dijo

        Unuttum.

        Linux'ta JAVA ile çalışmam için bana ne önerirsiniz?
        Ücretsiz ve kapalı arasında daha iyi ayrım yapabilirseniz.

        1.    ChrisADR dijo

          Eclipse ve NetBeans açık kaynak kodludur, tamamen özgür bir yazılım olup olmadığından emin değilim, vim kullanma alışkanlığım var çünkü bazen kod miktarı tüm bir IDE'yi yavaşlatıyor ve yürütme hatalarına yatkın hale getiriyor. Selamlar 🙂

        2.    paulzeta dijo

          Linux'ta java ile çalışmak için IntelliJ kullanıyorum Size tavsiye ederim.

          1.    ChrisADR dijo

            PS, IntelliJ tescilli bir yazılımdır 🙂

  12.   je dijo

    Çocuklar ayrıca şunu da hatırlıyorlar ... Bir bankada çalışıyorum ve size programlama dillerinin SQL ve Stored prosedürlerinin ilk önce gitmesine izin vermek için arka planda kaldığını söylüyorum.

    1.    Gonzalo martinez dijo

      Bunları depolanan prosedürleri hesaba katmalısınız, ancak motorlar arasında taşınabilir bir dil kullanmayarak, en azından benim deneyimime göre, başka bir seçenek olmadığı sürece her zaman onlardan kaçınmakla ilgilidir.