Memilih bahasa pengaturcaraan pertama anda

Tentunya ini adalah salah satu soalan yang paling sering datang ke peti masuk saya ketika bercakap mengenai pengaturcaraan. Sekiranya kita akan memulakan satu siri artikel yang akan membolehkan anda belajar memprogram dan memberikan kembali pengetahuan percuma dalam bentuk sumbangan kepada perisian percuma / komuniti sumber terbuka di seluruh dunia, adalah perlu untuk menjawab asas ini jika agak sukar soalan. Bahasa pengaturcaraan apa yang harus saya pelajari?

Sedikit sejarah

Untuk mula memahami dan memilih bahasa pengaturcaraan, pertama-tama kita harus mengetahui sedikit tentang sejarah mereka, penggunaan dan fungsi mereka, dan bagaimana mereka menyelesaikan pelbagai keperluan dari masa ke masa.

Bahasa mesin (tahap rendah)

Biasa dikenali sebagai Perhimpunan, adakah bahasa pengaturcaraan yang dapat kita definisikan sebagai dialek bahasa yang lebih umum ... Kedengarannya agak rumit tetapi saya akan memberikan contohnya ... Kita tahu bahawa bahasa pengkomputeran sejagat adalah elektrik, ini bermaksud bahawa akhirnya apa yang dibaca oleh komputer 0sy 1ya, mari kita sebut ini ebahasa inggeris komputer. Dalam contoh ini, bahasa Sepanyol adalah peraturan asas, tetapi seperti yang kita ketahui, bahasa Sepanyol yang dituturkan oleh orang Latin tidak sama dengan yang dituturkan di Sepanyol, dan walaupun begitu, bahasa Sepanyol Peru tidak sama dengan bahasa Sepanyol Argentina. Jelas kita semua mempunyai perkataan yang hampir sama (0sy 1s), tetapi penggunaan dan makna mungkin berbeza mengikut konteks.

Ini berlaku pada peringkat pemproses. Apabila kita bercakap mengenai seni bina pengkomputeran, (amd64, intel, arm, ...) kita merujuk kepada dialek itu komputer sepanyol. Ini kerana syarikat yang berbeza memahami urutan dan makna dengan cara mereka sendiri, jadi beberapa butirannya berbeza-beza seperti aliran arus, atau urutan di mana mereka akan disimpan. 0sy 1s.

Bahasa pengaturcaraan ini sangat pantas, kerana berfungsi pada tahap pengaturcaraan serendah mungkin, tetapi mereka sangat bergantung pada seni bina dan tentunya sedikit lebih rumit untuk dipelajari daripada yang lain. Ini sering memerlukan asas konsep yang lebih luas untuk mengubah data dan menjalankan perkara berguna di dalamnya. Bagi peminat permainan video, contohnya ialah konsol SEGA, yang menggunakan Assembly untuk memprogram permainan mereka. Jelas pada masa itu jumlah memori minimum berbanding hari ini, dan perlu menguasai bahasa yang pantas dan menghasilkan program ringan.

Bahasa peringkat tinggi

Kumpulan besar ini merenungkan bahasa-bahasa yang muncul selepas itu Perhimpunan. Keperluan untuk mendapatkan kod mudah alih menimbulkan sekumpulan bahasa yang disebut disusun. Di antaranya, yang pertama mengambil keuntungan adalah C, yang telah mendominasi pengaturcaraan di tingkat sistem operasi sejak tahun 70-an.

Bahasa yang disusun

Mari lihat contoh praktikal dari apa yang saya komen. Mari lihat program bahasa C yang sangat mudah yang mencetak satu baris kod.

Milik. Christopher Diaz Riveros

Setelah menyusunnya, kami mempunyai perkara berikut:

Reka bentuk sendiri: Christopher Díaz Riveros

Tetapi sekarang mari kita lihat apa yang perlu kita tulis untuk mereplikasi hasil yang sama dalam kod Perhimpunan:

Milik. Christopher Diaz Riveros

Ini adalah terjemahan dari 3 baris kod kami dari simple.c, fail simple.s dibuat menggunakan arahan gcc -S simple.c dan inilah yang difahami oleh pemproses kami dalam dialek Perhimpunan. Jelas sekali untuk mewujudkan sebuah eksekusi yang terdiri daripada 0sy 1s fail perlu diproses simple.s dan hubungkannya dengan perpustakaan bersama sistem kami. Ini dilakukan dengan menggunakan a penghimpun (as) dan penyambung (ld).

Bahasa yang disusun memberikan kelebihan yang besar berbanding bahasa yang rendah, memang begitu portabel. Portabiliti memberikan kod yang dapat dijalankan pada pemproses yang berbeza tanpa perlu menghasilkan kod khusus untuk setiap seni bina. Kelebihan lain yang jelas adalah kesederhanaan yang digunakannya semasa membaca dan menulis kod. Di antara kelemahan utamanya, kita mempunyai kerumitan yang tinggi, kerana jika dibandingkan dengan jenis bahasa berikut yang akan kita lihat, kebebasan yang ditawarkan C boleh memudaratkan jika anda tidak tahu bagaimana mengawalnya, pastinya seperti menyerahkan pistol , itu mungkin terjadi kerana kurangnya pengalaman seseorang akhirnya menembak kakinya sendiri dalam usaha membersihkan pistol.

Bahasa yang ditafsirkan

Di dalam kumpulan ini kami mempunyai pelbagai bahasa, antara yang paling penting kami mempunyai Python, Ruby, Javascript, PHP, dll ... Idea asas bahasa-bahasa ini adalah untuk menyediakan cara cepat untuk membuat dan menjalankan program , ini kerana banyak proses sukar dilakukan dalam pentafsir, dan pengaturcaraan logik adalah apa yang dilaksanakan dalam kod. Mari kita lihat contoh yang sama di atas tetapi kali ini ditulis dalam Python:

Milik. Christopher Diaz Riveros

Di antara perkara yang paling luar biasa kita dapat melihat bahawa baris pertama bertugas memanggil jurubahasa (program yang akan melaksanakan aplikasi kita) dan kod berikutnya lebih "sederhana" daripada versi dalam C, kerana semua kerja berat dilakukan pada jurubahasa.

Milik. Christopher Diaz Riveros

Bahasa yang ditafsirkan memberikan tahap keselamatan yang lebih besar kepada pengembang, kerana mereka mempunyai kawalan keselamatan yang lebih ketat (HATI-HATI bahawa ia tidak sempurna, kerana yang terbaik dapat membuat kesalahan) dan kita tidak lagi menghadapi risiko menembak senjata tanpa menyedari kerana pada percubaan pertama, jurubahasa akan memberi amaran dan pelaksanaannya akan dibatalkan. Kelemahan utama menjadi jelas ketika menjalankan program, kerana lebih lambat daripada rakan perduaan, ini disebabkan oleh jumlah pemprosesan yang lebih besar untuk memastikan kod tersebut berfungsi. Sekiranya program ini tidak memerlukan tarikh akhir yang sangat pendek, perbezaannya mungkin tidak disedari, tetapi jika kita berbicara mengenai ribuan atau berjuta-juta data sesaat, perbezaannya dapat dilihat secara eksponensial dalam bahasa yang disusun.

Menaip

Ini adalah ciri bahasa pengaturcaraan, ini boleh dengan kuat lemah ditaip. Saya akan meninggalkan topik ini untuk catatan lain, kerana perlu dan ingin tahu untuk memahami bagaimana memori disimpan dalam program, tetapi buat masa ini kita hanya perlu membezakan: Bahasa yang sangat ditaip adalah bahasa yang memerlukan mengetahui jenisnya data yang akan dikendalikan pada pemboleh ubah atau pemalar, sementara lemah jenis boleh melakukan penukaran sehingga tersirat dan semuanya akan bergantung pada hierarki penukaran diikuti oleh bahasa. (Sekiranya tidak difahami sekarang, tidak ada masalah, kami akan membiarkannya nanti)

Paradigma

Seperti semua perkara di dunia GNU / Linux, bahasa pengaturcaraan didasarkan pada paradigma, dan komuniti dihasilkan di sekitarnya. Contohnya kita mempunyai Yayasan Python o Ruby o PHP o Bash (dalam kes ini adalah komuniti GNU). Apa yang ingin saya sampaikan dengan ini adalah bahawa saya tidak dapat menyatakan sebilangan besar kebaikan dan keburukan yang dimiliki oleh masing-masing, tetapi saya dapat memberitahu anda bahawa di mana terdapat bahasa pengaturcaraan percuma, ada komuniti untuk belajar dan mengambil bahagian. Perlu disebutkan bahawa banyak jika tidak semua penafsir bahasa ditulis dalam C, atau beberapa kata terbitan yang dekat, dan perkembangannya biasanya dilakukan oleh sekelompok kecil masyarakat, yang bertanggung jawab mengambil keputusan yang akan mempengaruhi semua pengguna bahasa. Institusi bahkan boleh dibentuk untuk memastikan perkembangan bahasa yang betul, seperti halnya dengan C.

Yang hendak dipilih?

Kami sudah banyak bercakap mengenai bahasa dan saya masih tidak menjawab perkara yang paling penting 😛. Tetapi saya berharap bahawa setelah meneliti artikel kecil ini, tidak perlu bagi saya untuk memberitahu anda bahasa mana yang harus dipilih, kerana dengan maklumat ini, anda sepenuhnya dapat mencari bahasa yang menimbulkan rasa ingin tahu. Jelas sekali jika anda ingin belajar memprogram dalam bahasa Perhimpunan akan memakan masa yang lama sebelum anda dapat melakukan sesuatu yang berfungsi, waktunya akan sangat berkurang jika anda memilih bahasa yang disusun, di mana selain mempunyai kemudahan untuk menggunakan * sistem NIX, anda akan dapat mempelajari maklumat mengenai pengoperasian sistem yang sama, kerana bersentuhan dengan C atau derivatif membuat anda dalam satu atau lain cara belajar bagaimana sistem operasi berfungsi secara umum. Akhirnya, jika anda ingin mempelajari sesuatu yang ringan dan yang membolehkan anda melakukan banyak perkara tanpa perlu memahami banyak, bahasa yang ditafsirkan adalah cara yang menyenangkan untuk belajar dan mengembangkan kemahiran pengaturcaraan.

Belajar dengan sesuatu yang menarik

Ini adalah nasihat terbaik yang dapat saya berikan kepada anda, jika anda ingin mempelajari sesuatu, anda perlu mencari sesuatu yang menarik terlebih dahulu, jika tidak, agak sukar untuk mengatasi kelengkungan pembelajaran khas dari mana-mana bahasa pengaturcaraan. Andaikan anda menguruskan sistem, sekiranya anda perlu mempelajari bahasa yang sesuai skrip (ditafsirkan), di dalamnya kita mempunyai Perl, Python, Bash, dll dan lain-lain ... Mungkin milik anda adalah permainan, terdapat banyak projek dalam bahasa seperti Javascript, Lua, C ++, bergantung pada jenis permainan yang anda mahukan untuk bermain. Mungkin anda ingin membuat alat di tingkat sistem, kerana kami mempunyai C, Python, Perl, kerana anda akan melihat beberapa diulang, dan ini kerana banyak bahasa dapat digunakan untuk banyak tugas, sebab itulah definisi daripada bahasa serbaguna dalam kebanyakan ini.

Mulakan projek

Dengan ini saya tidak bermaksud bahawa anda membuat penyusun berikut, atau bahkan bahasa pengaturcaraan berikut, sebuah projek boleh memperbaiki bug kecil dalam program kegemaran anda, bahkan mungkin dapat membantu meningkatkan dokumentasi. Mengapa dokumentasi? kerana tidak ada cara yang lebih baik untuk belajar bagaimana perisian berfungsi daripada dengan membaca dan membantu menulis dokumentasinya, kerana setelah kod sumber, ia adalah sumber maklumat terbaik yang akan anda dapati mengenai program ini. Sebentar lagi kita akan melihat bagaimana membaca kod projek dan memahami fungsi dan nilai yang mereka perolehi.

Terima kasih banyak kerana sampai di sini dan seperti biasa, komen anda membantu saya menghasilkan kandungan yang lebih baik dan tahu ke mana harus fokus, Salam.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   Anonymous kata

    Seperti biasa 10 !!!!!! Terima kasih untuk artikel anda. Salam dan banyak lagi yang akan datang !!!!

    1.    ChrisADR kata

      Terima kasih banyak 🙂 mendorong saya untuk terus menulis. Sorakan

  2.   Ruben kata

    Saya rasa adalah satu kesalahan untuk mengemukakan soalan "bahasa mana yang harus dipilih?" Saya adalah salah seorang yang berpendapat bahawa bahasa adalah yang paling sedikit, yang penting adalah mempelajari asas-asas pengaturcaraan dan "berfikir secara komputasi." Tentukan sintaks, taipnya, jika menyokong OOP, kegunaannya, dll. Saya rasa ia adalah sesuatu yang akan datang secara semula jadi dalam kajian ini dan bagaimanapun, setiap pengaturcara mengetahui lebih daripada 1, 2 dan 3 bahasa ... dan terima kasih kepada konsep pengaturcaraan (dan bukan sintaksis) yang dimilikinya, dia dapat untuk memprogramkan dalam bahasa yang belum anda lalui.
    Walau bagaimanapun, bagi yang memulakan, saya berpendapat bahawa bahasa yang baik boleh menjadi Python kerana kesederhanaannya, tetapi yang paling penting, untuk melangkah lebih jauh, pelajari algoritma dan ketahui bagaimana sesuatu berfungsi "di dalam".

    Salam ChrisADR

    1.    ChrisADR kata

      Hai Rubén, terima kasih kerana berkongsi
      Ada sesuatu yang saya pelajari dari masa ke masa dalam dunia pengaturcaraan, dan itu adalah "dia yang banyak membuat liputan tidak memerah" dan dengan ungkapan terkenal ini saya maksudkan bahawa berkali-kali, dan terutama yang paling bersemangat, memutuskan untuk cubalah sebentar, dan dapatkan giliran yang sangat cepat dari segi bagaimana anda belajar membuat kod. Saya percaya, dan adalah pendapat peribadi, bahawa pemaju yang baik harus mengetahui dan menguasai bahasa penyusun dan bahasa pentafsir, selain mempunyai pengertian tentang beberapa dialek Perhimpunan.
      Sebabnya adalah berikut, prototaip mestilah sesuatu yang mudah dan cepat, mudah dihasilkan dan yang secara amnya menunjukkan hasilnya, tetapi jika tidak mencukupi, mesti ada "rancangan B" untuk digunakan ketika jurubahasa telah sampai ke hadnya.
      Mengetahui dialek Perhimpunan bukan sahaja memberi anda keyakinan tetapi juga mengajar anda untuk berfikir "secara komputasi", tetapi jelas bahagian ini adalah yang paling rumit dari semuanya, dan pastinya sesuatu yang tidak dapat dicapai oleh semua pengaturcara.
      Tetapi kembali kepada topik ini, kerana idea utama yang saya fikirkan adalah, "pilih bahasa dan berlatih BANYAK", kerana satu-satunya cara untuk menjadi mahir dalam pengaturcaraan adalah dengan membaca dan menulis kod, dan ini adalah sesuatu yang telah saya pelajari dari komuniti kernel Apabila anda menyimpan sintaks yang sama untuk masa yang lama, anda berhenti melihat borang dan mula bimbang tentang LATAR BELAKANG. Idea untuk memilih bahasa atau sintaks sejak awal adalah bahawa seseorang dapat membiasakan membaca dan menulis sedemikian rupa sehingga seseorang dapat mulai membaca MAKSUD program dan bukannya sintaks program.
      Inilah sebab utama untuk posting ini, bahawa masing-masing memilih bahasa mereka sehingga berikut ini kita dapat menjelaskan konsepnya, mungkin dengan ini keraguan dapat dijelaskan 🙂
      Salam dan terima kasih kerana berkongsi.

  3.   Deibis Contreras kata

    terima kasih untuk jawatan itu bagus.

    salam

    1.    ChrisADR kata

      Helo Deibis, terima kasih untuk anda berkongsi 🙂 Salam

  4.   JorgeFS kata

    Nasihat saya: apa-apa selain PHP. Dua puluh tahun yang lalu PHP mengerti keberadaannya kerana tahap kerumitan yang tinggi dalam memprogram Web dalam bahasa lain menggunakan CGI. Tetapi hari ini terdapat banyak Kerangka kerja untuk menjadikan pembangunan Web lebih menyeronokkan dalam bahasa yang hebat, seperti Django untuk Python, Spring untuk Java atau Rails for Ruby. Walaupun PHP kini muncul di semua carta populariti bahasa, pada pendapat saya PHP akan kehilangan kaitannya dari masa ke masa.
    Saya sangat menyarankan bermula dengan C \ C ++ untuk memahami realiti pengaturcaraan, walaupun keluk pembelajarannya curam.
    Greetings.

    1.    ChrisADR kata

      Hai Jorge, terima kasih kerana berkongsi, hanya mengingat Laravel, yang merupakan Kerangka yang cukup mantap personally Saya secara peribadi tidak pernah menyukai Spring atau Java untuk pembangunan web, saya merasa agak membebankan, tetapi saya rasa ia adalah sebahagian daripada masa yang mereka lalui pasaran, pada masa itu mereka adalah perintis dan tentunya alternatif moden (Js, Python dan Ruby) pada masa ini telah dapat memperbaiki cara penyampaian kod yang boleh dibaca dan diubah tanpa banyak kerja.
      Saya juga cenderung kepada orang yang belajar C / C ++ pada suatu ketika dalam hidup mereka, saya bermula dengan Java, tetapi saya rasa itulah keindahan pengaturcaraan, anda boleh memulakan dengan apa sahaja yang anda mahukan, asalkan anda konsisten, ia akan tolong menolong 🙂 Ceria

    2.    Ruben kata

      Saya tidak boleh tidak bersetuju dengan anda lagi. Saya bermula bertahun-tahun yang lalu dengan C dan VB, kemudian menumpukan perhatian pada PHP dan JS (sejak saya menumpukan perhatian pada pembangunan web) dan kemudian semasa belajar, saya belajar terutamanya C / C ++ dan Java.
      PHP mempunyai beberapa kelebihan yang tidak dapat saya senaraikan dalam mesej ini. PHP7 cepat (lebih cepat daripada Python ... tanpa menggunakan hhvm, cache yang berbeza, kerangka kerja seperti Phalcon atau bytecode dalam kes Python), ia mempunyai sejumlah besar perpustakaan dan kerangka kerja, ia mempunyai sejumlah besar fungsi yang langsung dilaksanakan untuk digunakan mereka pada bila-bila masa, sintaksnya yang serupa dengan C menjadikannya sangat mudah untuk berpindah ke bahasa lain.
      30% laman web di seluruh dunia dibuat dengan WordPress (PHP) dan nampaknya tidak akan berubah, Wikipedia menggunakannya, Facebook (dengan hhvm) dan sebilangan besar laman web, secara keseluruhan, 80%.

      Saya mengingatkan anda bahawa Ruby on Rails seperti Django berumur 12 tahun! Kuota apa yang telah mereka capai pada masa ini? Dan tentu saja, kita bercakap mengenai 2 kerangka kerja yang secara praktikal mempunyai monopoli dan tidak ada jenis pemecahan. Apa alternatif lain yang saya ada? Mengatakan bahawa PHP akan kehilangan kaitannya sangat tidak masuk akal.

      Sekarang Python dalam bidang fesyen kerana mempunyai keluk pembelajaran yang cepat, itu adalah bahasa yang mudah dan mereka menjualnya kepada anda sebagai «menjadi pengaturcara dalam 20 jam dengan Python dan mengusahakannya», dengan sokongan syarikat seperti Google dan bahawa sekarang Fesyen mencari bahasa baru (Go, Dart….) untuk membezakan diri anda dalam CV (atau sebagai kelahiran 50 kerangka kerja harian untuk Javascript!), tidak bermaksud perkara berubah.

      Ruby adalah bahasa yang sangat menarik, tetapi begitu banyak dengan corak yang sudah ada sehingga saya sukar untuk mempercayai bahawa ia menjadi lebih popular daripada PHP. Sudah tentu, Ruby saya rasa adalah bahasa terburuk untuk memulakan pengaturcaraan semua.
      Saya faham bahawa anda memberitahu saya bahawa Python boleh menyeronokkan untuk diprogramkan, walaupun Ruby dengan keanehan yang tak terhingga ... tetapi Spring dengan Java? Benarkah? Java boleh menjadi banyak perkara ... tetapi lebih menyenangkan daripada Python dan PHP?

      Semuanya sangat baik untuk bermula dengan Python, tetapi kerana anda hanya berpegang pada Python, anda menghadapi risiko bahawa banyak syarikat akan percaya bahawa tahap pengaturcaraan anda tidak "mendalam" (walaupun anda sangat mahir di Python). Ini kerana anda bersaing dengan bahasa "serbaguna" lain seperti C ++ atau Java. Anda boleh memprogram di Python tanpa mengetahui perbezaan apa itu pointer, operasi bitwise, bagaimana pengumpul sampah berfungsi dan sebagainya.
      Python mungkin paling mirip dengan "pengaturcaraan klasik" yang ada dan dapat dilihat sebagai "bahasa kanak-kanak" (dapatkan kiasan), dan pada gilirannya adalah kelebihan dan kekurangan.

      1.    JorgeFS kata

        "Python mungkin paling mirip dengan 'pengaturcaraan klasik' yang ada dan dapat dilihat sebagai 'bahasa untuk kanak-kanak' (memahami kiasan), dan pada gilirannya adalah kelebihan dan kekurangan." LOL, ini adalah salah satu perkara paling lucu yang pernah saya nyatakan mengenai Python. Adakah anda pernah benar-benar belajar Python?
        Sudah berapa lama di seluruh dunia di luar PHP?
        Kawan PHP masih lahir. PHP (\ d +) mempunyai banyak kesulitan kerana reka bentuk awal yang sangat buruk dan untuk mengekalkan komuniti pengguna, ia terus menyeret semua kesilapan reka bentuk awal dengan sangat teliti. PHP dilahirkan tanpa modulariti, dengan banyak fungsi gaya C (yang omong-omong, saya tidak tahu dari mana anda berasal kerana sintaksnya serupa dengan C, ia dapat dengan mudah dibawa ke bahasa lain). Bahasa tahap tinggi, sebagaimana seharusnya PHP bersikap, mempunyai perkara jelek seperti jejak fungsi ini yang tersenarai di laman rasminya http://php.net/manual/en/indexes.functions.phpIni kerana ia dilahirkan tanpa modulariti, jadi semuanya kotor bercampur dan tanpa ruang nama.
        Ini adalah sekeping kod PHP:
        "Stream_notification_callback");
        stream_context_set_params ($ ctx, $ params);
        var_dump (stream_context_get_params ($ ctx));
        ?>
        pada satu ketika anda boleh menentukan dari mana semua fungsi 'aliran' ini diimport? TIDAK, anda boleh mengatakan bahawa mereka adalah fungsi buildin, tetapi kemudian keseluruhan ekosistem adalah fungsi buildin? Oleh itu, terdapat banyak sampah dalam kod PHP, bahawa jika anda tidak dapat memahami kerumitan dan kegunaan reka bentuk buruk seperti itu, maafkan saya tetapi masih ada banyak dunia untuk dilihat.
        Wordpress adalah penyelesaian perisian yang sangat baik, tetapi ini tidak bermaksud bahawa ia mempunyai asas teknologi yang baik. Anda boleh menggunakan tukul dengan batu dan mengetatkan paku dengan gigi, dan anda masih boleh melakukan kerja pertukangan yang sangat baik, tetapi tentu saja, dengan kerja yang lebih banyak daripada tukang kayu lain yang menggunakan tukul yang baik.

        Sebaliknya: "menjadi pengaturcara dalam 20 jam dengan Python dan kerjakanlah", saya tidak pernah melihat kebodohan seperti itu. Anda boleh membuat laman web dalam PHP dalam 20 jam dan tanpa mengetahui bagaimana pengaturcaraan Web berfungsi, atau pengaturcaraan itu sendiri. Sebenarnya, inilah sebabnya PHP begitu popular, kerana pemula yang memasuki dunia ini melihat PHP sebagai titik perkembangan pesat (sebab itulah begitu banyak kod PHP sangat menyedihkan).
        Mengenai kekurangan Python, satu-satunya yang berjaya ialah bekerja dengan petunjuk, tetapi bagaimanapun, Python adalah bahasa tingkat tinggi (seperti Java) dan ia tidak menggunakannya pada tahap sintaks; tetapi operasi bitwise, serius ?, maksud anda x << y, x >> y: https://wiki.python.org/moin/BitwiseOperators. Saya sangat memahami perkara pengutip sampah: https://docs.python.org/3/library/gc.html.
        Jurang PHP:
        -PHP mempunyai reka bentuk pengaturcaraan berorientasikan objek (OOP) yang sangat buruk.
        -Anda belum boleh membebani operator.
        - Kejutan, function overloading dalam PHP bukanlah yang anda harapkan secara semula jadi dari konsep ini.
        … .. dan saya bosan hehe.
        Greetings.

        1.    Ruben kata

          Saya memasukkan tanda kurung "memahami kiasan" (dengan membandingkan Python dengan C ++ / Java dalam persekitaran kerja yang sama), jelas bahawa anda tidak memahaminya. Saya dapat memberitahu anda bahawa pengaturcara C ++ dapat belajar Python dengan cara yang jauh lebih pantas daripada pengaturcara Python dapat belajar C ++, sama seperti tidak menghairankan bahawa gaji rata-rata pengaturcara C / C ++ lebih tinggi daripada Python satu.
          Saya dapat menerangkannya kepada anda dengan contoh lain, walaupun dengan gambar! tetapi nampaknya anda hanya menumpukan pada dekontekstualisasi dan mengejek apa yang saya letakkan.

          Tidak ada kalanya saya mengatakan bahawa PHP adalah bahasa terbaik di dunia atau mempunyai reka bentuk teladan, saya tidak tahu dari mana anda mendapatkannya. Saya berpendapat bahawa sebelum menilai pengetahuan orang lain, anda harus meningkatkan pemahaman membaca anda. Apa yang benar (dan saya katakan dalam mesej saya) adalah bahawa berkembang dengannya sangat tangkas, di samping keseluruhan ekosistem kerangka kerja, perpustakaan dan utiliti yang dapat anda temukan.
          Juga, perbandingan apa yang kita buat? Python sebagai bahasa serbaguna atau untuk web? Sekiranya demikian, mengapa kita membandingkannya dengan PHP? PHP mempunyai bidang tertentu, dan di bidang itulah Python (dengan bahagian 0.2%, yang tidak berubah sepanjang tahun ini) pucat di sebelah PHP.
          Sekarang kita akan melihat trend PHP; dari 82,4% pada Januari 2017 hingga 83.1% pada Januari 2018: https://w3techs.com/technologies/history_overview/programming_language

          Adakah Python akan menurunkan PHP? Pada tahun berapa? dalam lima tahun apa? dekad?
          Python akan dapat digunakan dalam banyak tugas lain, dan bahkan lebih banyak digunakan daripada PHP, tetapi Python sebagai bahasa pengembangan web jauh dari jarak yang relevan, 0.2% stagnasi berbanding 83.1% (dengan kenaikan tahun ini) .

          Anda juga menganggap hal-hal yang tidak diingini dengan mengatakan bahawa saya tidak berkeliaran di luar PHP, mengisyaratkan bahawa saya hanya mengenali PHP, sedangkan saya sudah lama tidak memprogram di PHP haha. Pada masa ini, atas sebab kerja, saya kebanyakan memprogram di Jawa.
          Saya juga tidak mengatakan bahawa dengan memprogram di Python, anda tidak mempunyai pengetahuan mengenai bitwise, pengumpul sampah atau penunjuk arah. Sebaliknya, anda boleh membuat program di Python tanpa mengetahui apa ini. Walau bagaimanapun, saya sangat meragukan bahawa itu adalah masalah untuk pengaturcara C ++. Dan jelas saya melakukan perbandingan ketika Python memasuki bidang "bahasa serba guna", bukan untuk pengaturcaraan web.

          Menjadi pengaturcara dalam 20 jam hanyalah gurauan, keterlaluan. Walau bagaimanapun, saya boleh meletakkan anda di sini pelbagai pautan mengenai platform dan kursus pendidikan dalam talian yang menjanjikan perkara serupa. Jangan salahkan saya, salahkannya di pasaran pekerjaan yang menganggap bahawa menjadi "programmer pakar" adalah masalah mengikuti kursus selama 20 jam. Dan Python menjadi salah satu bahasa bergaya dan juga, dengan keluk pembelajaran terpantas ... putih dan sebotol.

          Saya menegaskan, anda mendasarkan mesej anda dengan mengatakan betapa buruknya PHP (yang pada bahagian tertentu, saya setuju). Nampaknya betul bagi saya, kecuali bahawa mesej saya bukan mengenai perkara itu, tetapi mengapa PHP akan terus digunakan dan tidak akan hilang esok seperti yang anda fikirkan.

          Sesuatu ucapan

  5.   tiada siapa kata

    C -> Go -> (Lisp | Haskell | Java | apa sahaja)

    1.    ChrisADR kata

      Baru-baru ini seorang pembaca menghantar cadangan untuk buku Go ke e-mel saya, pastinya bahasa yang perlu dipertimbangkan pada masa akan datang dan mungkin ada catatan di sini 🙂 Banyak grafik untuk dikongsi

  6.   mvr1981 kata

    Baiklah ... dan apa yang saya aturkan? Mengapa belajar bahasa pengaturcaraan hari ini dengan pengaturcara yang baik dan berpengalaman yang sudah ada? Masalah apa yang dapat saya selesaikan yang belum dapat diselesaikan oleh orang lain dengan cara yang lebih efisien? ... Ringkasnya: Bagaimana yang asli menjadi pengaturcara hari ini? Bagaimana saya boleh berkolaborasi dengan orang lain tanpa ditendang atau dikecualikan oleh kekurangan pengetahuan dan pengalaman saya?

    1.    ChrisADR kata

      Halo mvr1981, soalan yang sangat menarik 🙂 kami akan menggulungnya dari yang terakhir hingga yang pertama.

      Bagaimana saya boleh berkolaborasi dengan orang lain tanpa ditendang atau dikecualikan oleh kekurangan pengetahuan dan pengalaman saya?

      Sekiranya anda tidak mahu ditendang, langkah pertama adalah mempelajari prosesnya, anda tidak dapat membayangkan jumlah orang yang datang ke projek yang ingin melakukan sesuatu secara eksklusif dengan cara mereka, mahu masyarakat menyesuaikan diri dengan kehendak mereka. Sudah tentu seperti saya datang ke rumah anda dan membuat kekacauan dan tidak menghormati keluarga anda (begitulah rasanya berkali-kali). Sekiranya anda ingin mengelakkan perkara ini terjadi, perhatikan panduan untuk memberi sumbangan, cara untuk melakukannya, dan jangan hantar sesuatu yang tidak lengkap, jika anda memerlukan pertolongan selalu ada cara untuk berkomunikasi, tetapi pekerjaan yang buruk mungkin akan buat kesan pertama yang buruk. Sekiranya anda tidak mahu mengecualikan diri anda, anda boleh melihatnya sebagai pengaturcara tidak berguna yang tidak tahu apa yang sedang dilakukannya atau yang sedang dalam perjalanan untuk menjadi pengaturcara yang sangat baik, dan itu hanya berlaku dengan latihan dan tentunya dengan pepijat di sepanjang jalan. Saya telah berkali-kali salah sebelum memperoleh status pembangun saya di Gentoo, dan itu tidak menghalang saya untuk mencuba walaupun "masa yang buruk".

      Sejauh mana asalnya untuk menjadi pengaturcara hari ini?

      -Ini bukan mengenai keaslian, ini adalah keperluan hari ini, hanya memikirkan perkara berikut, 20 atau 30 tahun yang lalu, menaip adalah keperluan, banyak pekerjaan menyimpulkan bahawa anda tahu atau sekurang-kurangnya dapat melakukannya. Hari ini mengetahui bahawa Office adalah suatu keperluan, praktikalnya tidak ada pekerjaan yang tidak meletakkan anda di hadapan dokumen Office. Esok, tidak lama lagi, pengaturcaraan akan menjadi keperluan. Dan ini juga berlaku dari sudut pandang peribadi, mengetahui apa yang berlaku dalam program yang anda percayakan perkara yang penting seperti wang, kesihatan, keluarga, adalah sesuatu yang logik bagi saya, kerana anda hanya dapat mengetahui batasan mereka jika anda tahu bagaimana mereka bekerja dan untuk mengetahuinya, anda perlu tahu bagaimana program.

      Masalah apa yang boleh saya selesaikan yang belum diselesaikan oleh orang lain dengan cara yang lebih cekap?

      -Anda akan terkejut dengan jumlah ciri-ciri yang diperlukan hari ini, dan untuk mengatakan yang sebenarnya, tidak menjadi masalah bahawa terdapat pengaturcara terbaik di dunia dalam komuniti, karya akan selalu lebih besar daripada kapasiti kerja pemaju, saya dapat mengesahkannya di Gentoo, di sana adalah orang yang mengembangkan kernel, orang yang bekerja untuk Google, Sony, dan lain-lain ... satu-satunya perkara yang kita semua mempunyai kesamaan ialah tidak ada yang mempunyai banyak masa yang mereka inginkan untuk dapat melakukan semua kerja yang belum selesai.

      Mengapa belajar bahasa pengaturcaraan hari ini dengan pengaturcara yang baik dan berpengalaman yang sudah ada?

      -Ini dijawab dalam soalan kedua 😉 Tetapi sekarang saya dapat menambahkan bahawa generasi mesti dapat menyokong karya yang telah dibangunkan, dengan ini saya bermaksud bahawa pembangun yang "berpengalaman" itu secara beransur-ansur akan hilang dan diperlukan untuk " lebih muda »Pembangun memikul tanggungjawab dan membantu menjaga kitaran hidup, komuniti yang tidak mempunyai orang muda dan tidak berpengalaman cenderung hilang dari masa ke masa, tepatnya kerana tidak akan ada peluang untuk menyebarkan pengetahuan.

      Dan apa yang saya jadualkan?

      -Ini mungkin perkara yang paling sukar untuk dijawab, tetapi saya akan cuba memberikan contoh poco yang baru-baru ini saya mula mengalami masalah dengan GNOME 24 dan kaitannya dengan Wayland yang menghalang program seperti Shutter mengambil tangkapan skrin. Ini adalah masalah bagi saya kerana ketika saya menulis artikel saya, saya perlu menunjukkan apa yang saya katakan 🙂 melihat-lihat sedikit saya datang ke aplikasi Tangkapan Skrin GNOME, agak "minimalis" untuk sedikitnya. Di antara fungsinya, ada yang mengambil wilayah layar, tetapi apa yang akan terjadi jika saya tidak mengambil foto dengan baik? Baiklah, saya harus keluar dan masuk semula ke program ini, sesuatu yang pasti membosankan, butang yang bertuliskan «Retake» atau sesuatu seperti itu yang membolehkan saya mengambil tangkapan baru tanpa perlu keluar dan masuk lagi akan membantu saya. projek pengaturcaraan, saya tidak pernah memprogramkan apa-apa dalam kerangka GNOME jadi jelas saya banyak belajar sebelum menghantar "tampalan" saya dengan butang baru, tetapi sepanjang saya belajar untuk memprogram dan semoga ini ciri ia akan membantu lebih dari satu apabila ia tersedia untuk semua orang.

      Ini adalah contoh, ini adalah sesuatu yang sederhana dan pastinya mana-mana pengaturcara "pakar" yang lain sudah dapat melakukannya, tetapi kerana kekurangan masa yang nyata, tidak seperti itu, sekarang saya adalah orang yang mempunyai kemungkinan melakukan itu, tanpa benar-benar menjadi pengaturcara super.

      Sekarang bergantung kepada anda untuk mencari sesuatu yang akan menjadikan hidup anda "lebih sederhana" dalam perisian yang sering anda gunakan, keindahannya ialah jika kita mengikuti nasihat yang akan saya berikan dalam artikel berikut, bahasa tidak akan menjadi masalah, kerana Anda akan mengetahui asas-asasnya untuk mula memahami kod yang anda baca dan mengubahnya untuk melakukan apa yang anda mahukan, itu adalah perasaan yang sangat istimewa 🙂

      Salam dan terima kasih sekali lagi

      1.    tiada siapa kata

        Saya rasa hanya setelah saya membuka program menangkap gnome, perkara paling mudah adalah pergi ke pintasan papan kekunci dan menetapkan tiga kombinasi cetak untuk menangkap semua cetak alt untuk menangkap tetingkap aktif dan cetakan super untuk membuat pilihan dari tangkapan wilayah, jalan pintas yang ada ada di sini, ini hanya untuk menetapkannya

        1.    ChrisADR kata

          Itulah sebabnya kami memberi anda contoh 🙂 kerana perkara kecil seperti butang itu sedang diprogramkan, mereka dapat menolong beberapa orang kerana mereka tidak dapat disedari oleh orang lain, tetapi mereka pasti memenuhi objektif utama, membantu belajar memprogram, dan memberi jalan kepada ciri baru, Selepas butang itu banyak perkara dapat dimulakan, seperti pengurusan sesi, atau layar pratonton dari semua foto yang diambil, atau singkatnya, banyak perkara yang dapat dilakukan. Ideanya ialah anda menjumpai sesuatu yang membuat anda merasa ingin tahu, mana-mana perisian yang berjalan di sistem anda mungkin memerlukan penambahbaikan atau ciri baru yang disebabkan oleh kekurangan masa atau kakitangan belum dilaksanakan 🙂

      2.    mvr1981 kata

        Terima kasih pada awak. adalah jawapan yang sangat baik.

    2.    Rang Undang-Undang kata

      Oleh itu, bagi seseorang yang tidak akan menjadi profesional dalam bidang ini, adalah perlu untuk melihat di mana persekitaran mereka bekerja, baik untuk tugas pentadbiran dan arahan, sangat menarik untuk diketahui, misalnya, Python / Basic dan mengetahui bagaimana untuk memprogram makro dalam pakej pejabat seperti LibreOffice atau MS Office. Ada kalanya ini dapat menjimatkan banyak waktu kerja untuk anda atau pekerja lain yang mengelilingi anda dan meminta mereka melakukan tugas berulang, anda boleh membuat papan pemuka untuk mengira nisbah utama syarikat dengan cepat setelah berhubung dengan pangkalan data dan melakukan beberapa pertanyaan SQL.
      Seperti semua perkara, jika anda mengetahui alat yang ada di hujung jari anda, anda boleh memikirkan cara memanfaatkannya sepenuhnya. Tidak semuanya dibuat.

  7.   Marcelo kata

    Guillermo, setuju sepenuhnya dengan anda, "Tidak semuanya diciptakan" dan apa yang dicipta dapat diubah suai. Anda mesti memanfaatkan sepenuhnya alat dan menggunakan alat yang paling sesuai dengan keperluan anda.

  8.   Ricardo kata

    Untuk pengaturcaraan, bahasa pertama yang dapat dipelajari adalah bahasa Inggeris, kemudian bahasa yang paling menarik bagi mereka dan kelihatan paling indah bagi mereka.

    1.    ChrisADR kata

      Saya tidak menulisnya, tetapi benar 🙂 mengetahui bahasa Inggeris banyak membantu kerana kebanyakan bahasa ditulis di dalamnya, tetapi juga kerana jumlah maklumat langsung yang lebih banyak juga Terima kasih banyak untuk berkongsi

  9.   Ruben salgado kata

    Artikel yang sangat baik, selain memberi motivasi.

    1.    ChrisADR kata

      Baik hati, terima kasih banyak 🙂 Salam

  10.   Gonzalo Martinez kata

    Pengaturcaraan adalah mengetahui cara menaakul dan menerjemahkan penaakulan itu menjadi petunjuk.

    Dua penjelasan mengenai artikel tersebut:

    1) Berdasarkan pengalaman saya sebagai guru pengaturcaraan selama hampir 10 tahun, tidak kira bahasa apa yang anda pelajari, tetapi bagaimana anda belajar dan betapa kompleksnya.

    Saya berpendapat bahawa bahasa yang dapat dipelajari secara tersusun, dan kemudian beralih ke perkara lain yang lebih kompleks, lebih mudah daripada memulakan dengan bahasa seperti Java dari awal.

    Lebih mudah untuk mempelajari sesuatu seperti Hello World di C atau Pascal sebagai asas, daripada dengan beberapa baris (PROGRAM untuk Pascal, atau #include Dalam kes C) anda boleh mula mengembangkan algoritma dan membuat kod program dengan logiknya secara langsung, seperti di Java, yang dengan sendirinya memerlukan kelas, kaedah, dan beberapa perkara lain yang bagi pemula adalah maklumat yang berlebihan tidak perlu, dan itu mungkin diabaikan dan beralih ke perkara lain, tetapi mereka adalah konsep yang ada, dan pada pendapat saya, mengabaikan perkara bukanlah cara yang baik untuk belajar, terutama jika bahasa memaksa anda menggunakannya. Ini seperti memulakan latihan sasaran untuk pertama kalinya dengan M-16, dan menembak selama berbulan-bulan dalam mod separa automatik memegang pegangan dengan kedua tangan seperti pistol.

    2) Sama ada bahasa ditafsirkan atau disusun bergantung pada pelaksanaannya, bukan pada bahasa itu sendiri. Sebagai contoh, jika Python digunakan, untuk aplikasi web yang menggunakan wsgi (baik mod_wsgi dalam apache, atau uwsgi untuk Nginx), kod python disusun ketika memulakan modul yang sesuai, menghasilkan fail .pyc

    Terdapat juga penjana fail binari untuk java (yang menghasilkan binari asli dan bukannya bytecode), atau penyusun skrip php dalam binari murni.

    Mengenai apa yang mereka katakan tentang PHP, itu hanyalah bahasa yang dirancang pada era lain, dengan mempertimbangkan hal-hal lain, dan tanpa mempertimbangkan aspek yang tidak ada pada masa itu. Jelas bahawa fakta bahawa ia adalah yang paling banyak digunakan tidak menjadikannya yang terbaik untuk apa pun di dunia, tetapi ada kenyataan: ia adalah bahasa yang dengannya paling banyak peluang mendapat pekerjaan dalam semua pengaturcaraan. Mengetahui ia tidak menyakitkan, walaupun anda tidak menyukainya.

    Walaupun saya, yang telah bekerja sebagai Pentadbir Sistem selama beberapa tahun dan meninggalkan pekerjaan pembangun, saya sering memasukkan kod PHP ke dalam sesuatu.

    1.    ChrisADR kata

      Hai Gonzalo, terima kasih kerana berkongsi,

      Sudah tentu membicarakan maklumat yang berlebihan yang tidak perlu, mengetahui bahawa bahasa yang sama dapat ditafsirkan atau disusun adalah sesuatu yang tidak diperlukan pada tahap ini 🙂 Tentunya pelaksanaannya penting, tetapi jika kita mengatakan bahawa pada tahap ini, kita tidak menghasilkan lebih dari sekadar kekeliruan. Dengan cara yang sama, masalah pengaturcaraan berorientasi objek tidak ditangani, atau konsep lain yang harus dilakukan secara bertahap agar tidak membuat orang pusing.

      Oleh kerana ruang terhad, objektif utama siaran ini adalah untuk menunjukkan kepada pembaca yang ingin memprogram bahawa terdapat dua dunia bahasa yang hebat, bahawa tafsiran "tradisional" lebih "sederhana", bahawa penyusunan "tradisional" sedikit lebih "kompleks" tetapi semestinya tahap kerumitan untuk memiliki pemahaman yang lebih mantap dan terserah kepada setiap orang untuk memilih bahasa, kerana bergantung pada pendekatan pengaturcaraan, mereka akan dapat memilih projek kegemaran mereka dan di pada masa yang sama mereka akan dapat memahami apa yang mereka baca dan / atau tulis 🙂

      Terima kasih sekali lagi, salam.

      1.    Gonzalo Martinez kata

        Ini adalah kesalahan, tidak ada bahasa yang disusun atau ditafsirkan, ada jurubahasa dan penyusun untuk setiap bahasa, baik untuk kes yang berbeza.

        Bukan terlalu banyak maklumat untuk menyebutnya sekarang, adalah kesalahan untuk membuat pernyataan sedemikian. Pada pendapat saya, adalah lebih produktif untuk mengabaikan juru bahasa sekiranya anda tidak mahu memuat maklumat.

        1.    ChrisADR kata

          Terima kasih atas penjelasannya, saya akan mempertimbangkannya semasa saya kembali ke topik ini. Sorakan

  11.   Ares kata

    Bahasa apa yang anda cadangkan untuk pelayan memandangkan php tidak disukai?
    Perkara yang sama untuk pangkalan data, saya tidak tahu sama ada akan ada yang lebih baik dan lebih moden daripada mySQL.

    1.    ChrisADR kata

      PHP tidak digemari ... Setiap bahasa mempunyai kitaran hidupnya, dan php sudah tentu menjadi bahasa yang memasuki skala "matang", yang menjadikannya berguna di peringkat perniagaan, di mana kestabilan adalah di atas segalanya ... Seperti beberapa bank di mana ia masih dikembangkan di java, yang lebih "matang" daripada php dan tentunya mempunyai pengikut dan pengkritiknya ... Dan belum lagi COBOL ...

      Sekiranya apa yang anda cari adalah keseragaman dan kemodenan, javascript menjadi salah satu kegemaran dari apa yang disebut sebagai "pemaju tumpukan penuh", walaupun paradigma ruby ​​atau "kesederhanaan" python juga merupakan rujukan yang baik .... Malah perl boleh menjadi pilihan bergantung pada keperluan 🙂

      Pada masa ini ORM (pemeta relasional objek) mendapat banyak kekuatan dari segi pengurusan data hubungan. Ia beralih dari sintaks SQL ke kelas dan pengendalian atribut ... Hampir semua bahasa (jika tidak semua) mengendalikan beberapa ORM.

      . Mongo DB adalah alternatif kepada pangkalan data hubungan yang telah menjadi sangat penting; namun, perlu mengetahui kebaikan dan keburukannya dan mengesahkan apakah itu adalah penyelesaian terbaik bergantung pada keperluan khusus.

      Saya harap ia dapat membantu anda, salam 🙂

      1.    Ares kata

        Terima kasih, saya akan periksa itu.

      2.    Ares kata

        Saya terlupa.

        Apa yang anda cadangkan untuk saya bekerjasama dengan JAVA di Linux ?.
        Sekiranya anda dapat membezakan antara percuma dan tertutup dengan lebih baik.

        1.    ChrisADR kata

          Eclipse dan NetBeans adalah sumber terbuka, saya tidak pasti sama ada terdapat perisian yang bebas sepenuhnya, saya mempunyai kebiasaan menggunakan vim kerana kadangkala jumlah kod yang menggunakan keseluruhan IDE menjadi lambat dan terdedah kepada kesalahan pelaksanaan. Salam 🙂

        2.    paulzeta kata

          Untuk bekerja dengan java di Linux, saya menggunakan IntelliJ saya cadangkan anda.

          1.    ChrisADR kata

            PS, IntelliJ adalah perisian proprietari 🙂

  12.   je kata

    Orang juga ingat bahawa ... Saya bekerja di bank dan saya memberitahu anda bahawa bahasa pengaturcaraan mengambil tempat duduk belakang untuk membiarkan prosedur SQL dan Disimpan lebih dahulu.

    1.    Gonzalo Martinez kata

      Anda harus memperhitungkan prosedur yang disimpan, tetapi dengan tidak menggunakan bahasa mudah alih antara mesin, sekurang-kurangnya dalam pengalaman saya, selalu menghindarinya kecuali jika tidak ada pilihan lain.