CodeGym /Blog Java /rawak /Memilih bahasa pengaturcaraan
John Squirrels
Tahap
San Francisco

Memilih bahasa pengaturcaraan

Diterbitkan dalam kumpulan
Saya mula-mula terjumpa pengaturcaraan di sekolah, dalam pelajaran tentang sains komputer. Ini terdiri daripada beberapa penjelasan yang membosankan tentang cara sistem nombor n-ary berfungsi. Dan, sudah tentu, terdapat ujian yang memerlukan anda menulis tapak web anda sendiri. Pada masa itu, saya nampaknya tidak ada pekerjaan yang lebih membosankan. Betapa salah saya! Malangnya, program sains komputer sekolah menengah tidak memberikan gambaran lengkap tentang kerja IT dan ia tidak menerangkan cara memilih bahasa pengaturcaraan. Sebelum bertanya "Bahasa pengaturcaraan mana yang harus saya pelajari?", seorang pemula harus membiasakan dirinya dengan bahasa apa yang ada di luar sana dan bagaimana ia berbeza antara satu sama lain. Memilih bahasa pengaturcaraan - 1

Ambang kemasukan: Tinggi, rendah, sederhana

Pengaturcara sering bercakap tentang "ambang kemasukan" — konsep yang mencerminkan jumlah usaha yang diperlukan untuk mana-mana "pembangun junior" tertentu untuk menguasai bahasa pengaturcaraan dengan cukup baik untuk menulis program serius pertamanya dan mencari pekerjaan. "Ambang kemasukan" terdiri daripada pengetahuan tentang:
  • keanehan sintaksis dan nuansa bahasa
  • perpustakaan
  • algoritma dan struktur data.
Bekerja dalam Excel juga boleh dipanggil sejenis pengaturcaraan. By the way, program pejabat yang biasa ini tidak semudah yang disangka. Untuk satu pengguna, ambang kemasukan mungkin keupayaan untuk mencipta jadual. Yang lain, mungkin pengetahuan tentang formula dan makro yang kompleks. Dalam mana-mana kes, ambang ini adalah kecil. Seterusnya ialah bahasa separa, seperti pengaturcaraan 1C . Kemudian terdapat bahasa yang paling mudah untuk dipelajari, contohnya PHP . Selanjutnya, kami mempunyai bahasa dengan sintaks asli (biasanya berasal daripada bahasa Inggeris) yang tidak memerlukan anda mengendalikan pengurusan memori, contohnya Java dan JS . Kemudian terdapat bahasa yang memerlukan pengendalian memori, struktur data dan algoritma yang sangat berhati-hati, contohnya, C danC++ . Bahasa berbilang paradigma muda, contohnya, Scala , mungkin mempunyai ambang kemasukan tertinggi, kerana menguasainya memerlukan anda menyelam jauh ke dalam banyak paradigma pengaturcaraan. Tetapi sebelum anda memilih bahasa, anda harus memutuskan perkara yang anda mahu lakukan seterusnya: membangunkan untuk web, perusahaan, desktop atau peranti mudah alih .

Web atau bukan web?

Web

Pengaturcara web boleh dibahagikan kepada pembangun Frontend dan Backend . Anda harus memahami maksud istilah ini. Pembangun frontend terlibat dalam bahagian pelanggan, iaitu apa yang pengguna lihat. "Ujung belakang" adalah mengenai memanipulasi dan menyimpan data — bahagian perkhidmatan yang berjalan pada pelayan. Untuk pembangun Frontend memutuskan bahasa pengaturcaraan yang hendak dipelajari, rangka kerja JavaScript dan JavaScript (Angular JS, React dan lain-lain) adalah penting. Dialek JS, seperti CoffeeScript dan TypeScript, tidak begitu popular seperti induknya, tetapi ia juga boleh berguna. Terdapat juga Flash AS, dan pernah ada JScript dan VBScript, tetapi hanya dinosaur yang ingat ini =) Selain semua ini, anda perlu memahami HTMLdan CSS . Memilih bahasa pengaturcaraan - 2Ramai pemula berpendapat bahawa JavaScript dan Java adalah perkara yang hampir sama. Jangan mengelirukan bahasa-bahasa ini. JS dahulunya dipanggil "LiveScript" dan mendapat nama semasanya hanya kerana populariti perkataan "Java". Untuk pembangun backend web , PHP, Python, Ruby, Perl dan Java adalah sesuai. Di sini saya ingin memberi tumpuan kepada PHP (kita akan bercakap tentang bahasa lain kemudian). PHP ialah salah satu bahasa yang paling mudah dipelajari, mempunyai ambang kemasukan yang rendah. Menurut tinjauan pembangun web terkenal, Ruby perlahan-lahan tetapi pasti mendapat populariti — ia disukai kerana ringkas dan cantik.

Bukan web (perusahaan, desktop, mudah alih)

Saya sengaja menggabungkan bahasa pengaturcaraan berikut ke dalam kategori ini dengan nama yang pelik. Anda boleh menggunakan kebanyakannya untuk menulis aplikasi perusahaan, desktop dan juga mudah alih. Python ialah bahasa pengaturcaraan berorientasikan objek yang mudah difahami dan telah menjadi sangat popular baru-baru ini disebabkan pembelajaran mesin pertumbuhan (ML): Pembangun ML menggunakan Python secara meluas. MLadalah bidang yang agak baru dalam IT, dan walaupun kita telah melihatnya membuahkan hasil, saya tidak akan tergesa-gesa memasuki industri ini apabila memilih bahasa pengaturcaraan. Pertama, anda memerlukan pemahaman yang CEMERLANG tentang matematik. Kedua, gelombang populariti mungkin berlalu dengan cara yang sama seperti yang berlaku untuk "chain blok" atau "teknologi nano". Yang berkata, anda mungkin masih ingat bahawa Python digunakan dalam pembangunan web. C++: bahasa klasik di mana segala-galanya dibina pada pengendali "tambah-tambah". Bahasa ini adalah nenek moyang kepada semua bahasa pengaturcaraan berorientasikan objek yang popular, dan seorang pemula pastinya perlu memberi perhatian kepadanya. Banyak aplikasi popular telah ditulis menggunakannya. Tetapi peluang yang sangat baik untuk "menembak diri sendiri" dan sintaks yang sukar difahami membawa kepada sifar kebarangkalian bahawa seorang pemula akan menguasai mastodon pengaturcaraan ini. Kotlin, yang seperti Java untuk hipster, ialah gabungan gila OOP dan pengaturcaraan berfungsi. Ia telah popular baru-baru ini kerana fakta bahawa pembangun berpengalaman beralih dari Java ke Kotlin boleh meningkatkan produktivitinya dengan serius. Pembangun yang berpengalaman akan cepat merasa selesa dalam bahasa pengaturcaraan ini. Ngomong-ngomong, perkara yang sama berlaku untuk Scala, tetapi Kotlin popular di dunia Android. Java mudah dipelajari oleh pemula. Terutama dengan bantuan CodeGym =) Sintaks Java boleh difahami dan walaupun terdapat risiko "menembak diri sendiri di kaki", ia tidak kritikal.

OOP atau POP?

Pendekatan prosedur

Pendekatan berorientasikan prosedur melibatkan penulisan program yang terdiri daripada pernyataan berurutan yang boleh dihimpunkan menjadi satu keseluruhan yang bersatu untuk menyelesaikan satu set masalah tertentu dengan berkesan. Bahasa tersebut termasuk C , PureBasic dan Pascal . Dalam erti kata lain, bahasa yang membawa keputusasaan kepada pelajar sekolah menengah dan mahasiswa. Terdapat juga GO yang agak mudabahasa. Walau bagaimanapun, membiasakan diri dengan bahasa prosedur sangat berguna untuk pembangun yang berpotensi. Penyerapan saya dalam bahasa prosedur datang dengan sistem Wolfram Mathematica dan penyelidikan universiti. Algoritma yang betul dan prosedur mudah, bergerak secara linear dari permulaan program hingga akhir, membolehkan saya mengira nilai yang berkaitan dengan fizik teori moden. Bahasa pengaturcaraan "berurutan" ini hanyalah perkara untuk membantu anda memahami bahawa kadangkala lebih mudah untuk menulis kod yang melakukan pengiraan secara manual. Pengaturcaraan berorientasikan prosedur pembelajaran (POP) menyediakan latihan algoritma yang baik, yang hampir selalu ingin dilihat oleh majikan dalam calon pekerjaan. Segala-galanya dalam IT dibina di atas asas bahasa prosedur, jadi jangan memandang rendah mereka. By the way, pemula yang memutuskan bahasa pengaturcaraan untuk belajar sering berfikir bahawa hanya bahasa OOP menyokong multithreading. Ini tidak benar. Bahasa pengaturcaraan prosedur juga membenarkan pengiraan selari. Memilih bahasa pengaturcaraan - 3

Pendekatan berorientasikan objek

Mereka yang bermula dengan bahasa prosedur biasanya mahir dalam matematik, algoritma dan struktur data (disebabkan penekanan universiti teknikal pada bidang ini). Namun, realiti hari ini ialah pengaturcara yang berjaya biasanya mereka yang telah menguasai pendekatan yang berbeza untuk pengaturcaraan: paradigma berorientasikan objek. Ideologi OOP membolehkan anda membina sistem yang benar-benar global. Ciri pendekatan ini ialah persamaannya dengan dunia sebenar:
  • Objek yang berbeza berinteraksi antara satu sama lain dan wujud secara bebas antara satu sama lain.
  • Objek mempunyai hierarki dan boleh menerima pakai atau mengubah tingkah laku nenek moyang mereka.
  • Anda boleh menggunakan konsep abstrak, tetapi hanya objek yang benar-benar wujud boleh berinteraksi.

Contoh

Bahasa berorientasikan prosedur ialah alat untuk menyelesaikan masalah tertentu. Jika tugas anda berubah, walaupun sedikit, anda mungkin perlu meluangkan masa dan usaha untuk menulis semula semua algoritma.

Bayangkan satu program yang menerangkan pengedar kereta yang menjual kereta dan trak, kedua-dua baru dan terpakai. Dalam bahasa prosedur, anda perlu mentakrifkan fungsi yang memproses input atau output data untuk setiap entiti: kereta baharu, trak baharu, kereta terpakai dan trak terpakai. Apakah yang ditawarkan oleh OOP? Dengan pendekatan berorientasikan objek, kita hanya perlu menentukan kelas asas Kenderaan yang menyimpan ciri-ciri yang dikongsi oleh semua jenis kenderaan:

  • buat
  • Anjakan enjin
  • Kuasa kuda
  • tahun
  • Baru atau terpakai
  • harga

Dan kaedah untuk mengambil dan menghantar maklumat. Kemudian kami mencipta objek yang mewarisi ciri kelas Kenderaan: Kereta dan Lori. Ia mengandungi maklumat yang berkaitan secara khusus dengan jenis kenderaan ini, serta kaedah input/output.

Tiba-tiba, pengurusan pengedar itu memutuskan untuk mengembangkan barisan dengan turut menawarkan motosikal. Di bawah pendekatan prosedur, kami perlu mencipta semula semua logik untuk motosikal baharu dan terpakai, manakala bahasa OOP membolehkan kami mencipta kelas Motosikal baharu yang mewarisi semua ciri kelas super Kenderaan dan mengandungi penambahbaikan khusus motosikal.

Dan apa yang akan berlaku jika kita menambah pelbagai kenderaan? Pelaksanaan prosedur memerlukan lebih banyak kerja daripada OOP. Lebih-lebih lagi, lebih besar barisan, lebih sedikit operasi yang melibatkan objek akan diperlukan.

Jadi, OOP ialah gaya pengaturcaraan yang membolehkan anda menggabungkan data dan kaedah menjadi satu entiti dan berfungsi dengannya sebagai objek bersatu. Entiti boleh disusun dalam hierarki dan berinteraksi antara satu sama lain tanpa menyelidiki butiran pelaksanaan dalaman satu sama lain. Saya akan menunjukkan tiga sebab mengapa OOP adalah pendekatan yang lebih progresif untuk saya:
  1. OOP melibatkan pembangunan bebas modul individu, membenarkan pengaturcara atau pasukan memilih kaedah dan sempadan hubungan dan pertukaran maklumat.
  2. Kod yang dibahagikan kepada modul kecil adalah lebih mudah dibaca daripada prosedur monolitik. Akibatnya, orang luar boleh memahami kod anda dengan cepat, dan begitu juga, anda boleh menyertai projek baharu jika perlu.
  3. Satu kelas boleh ditukar tanpa menjejaskan interaksi yang lain, tetapi perubahan sedemikian boleh menjejaskan hierarki objek kanak-kanak. Sebaik sahaja anda menguasai pendekatan ini, mengembangkan dan mengubah suai program menjadi remeh.
Ingat bahawa satu pendekatan tidak bercanggah dengan yang lain, tetapi OOP masih lebih tinggi dalam hierarki. Jadi, mengapa saya mengesyorkan Java? Saya akan menyerlahkan sebab berikut:
  1. Merentas platform.

    Java berfungsi di mana-mana terima kasih kepada mesin maya Java (JVM). Salah satu kelebihan utama bahasa ini ialah sifat merentas platformnya: tidak perlu memikirkan perpustakaan mana yang hendak ditambah atau seni bina pemproses tertentu. "Tulis sekali, lari ke mana-mana."

  2. Dokumentasi.

    Terdapat pangkalan dokumentasi yang sangat besar: dokumentasi Oracle rasmi, portal latihan, dan komuniti yang sentiasa berkembang. Jawapan kepada kebanyakan soalan yang timbul semasa pembangunan boleh didapati dalam beberapa minit. Perkara utama ialah memahami apa yang perlu dimasukkan ke dalam enjin carian =)

  3. Populariti.

    Java ialah bahasa pengaturcaraan yang paling popular di dunia: sebagai tambahan kepada pembangun Android dan web yang disebutkan di atas, hampir setiap pembangun perusahaan menulis dalam Java. Perusahaan merujuk kepada pembangunan korporat dalaman yang diperlukan untuk keperluan syarikat besar.

    Setiap tahun, pembenci meramalkan "kematian Jawa". Mereka berkata, " Oracle akan berhenti menyokongnya. Anda benar-benar membuang masa anda. " Ini tidak benar! Mereka berjanji untuk mengeluarkan versi baharu Java setiap enam bulan.

    Bagi saya, ungkapan lambda dalam Java 8 adalah revolusioner dan wahyu, untuk tidak mengatakan apa-apa tentang versi baharu! Saya sedang mengusahakan projek "warisan", jadi saya tidak menyelidiki inovasi terkini, tetapi hakikatnya Java masih hidup.

    Memilih bahasa pengaturcaraan - 4
  4. Android.

    Selama 4 tahun yang lalu, Android secara konsisten memegang lebih daripada 80% pasaran telefon mudah alih . TV, pemain media dan juga sistem infotainment kereta dijalankan pada sistem pengendalian ini. Dan pembangunan aplikasi untuk OS ini berlaku terutamanya di Java. Bayangkan saja prospek yang semakin terbuka. Apabila saya mendapat pekerjaan sebagai pembangun Android, saya tertanya-tanya berapa nilai produk yang saya bangunkan? Ternyata, harganya adalah kira-kira $5 setahun. Itu menimbulkan persoalan, "kemudian dari mana datangnya wang untuk pejabat ini, gaji, bilik snek, meja pingpong, robot, dan faedah lain? Jawapannya terletak pada jumlah: aplikasi kami mempunyai 20 juta pengguna.

  5. Gaji.

    Dan sekarang icing pada kek: gaji pemaju Java adalah antara yang tertinggi dalam industri. Lagipun, anda merancang untuk belajar pengaturcaraan untuk tujuan tertentu: untuk mendapatkan pekerjaan yang baik.

Populariti bahasa pengaturcaraan

Terdapat sumber maklumat rasmi, jadi mari kita beralih kepada mereka. Menurut TIOBE , Java berada di kedudukan pertama pada Oktober 2019. Dalam ranking PYPL , Java berada di kedudukan kedua, jauh di hadapan JS dan menyaingi Python yang bergaya.

Kesimpulan

Sebagai seorang pemula mempertimbangkan untuk memilih bahasa pengaturcaraan, inilah yang harus dia perhatikan:
  • Populariti (Java secara konsisten menduduki kedudukan utama)
  • Ambang kemasukan (untuk Java, ia sederhana: majikan memerlukan pelbagai kemahiran yang agak luas)
  • Bahan yang tersedia (selamat datang ke CodeGym =))
  • Bidang aplikasi: lebih banyak bidang yang menggunakan bahasa pengaturcaraan, lebih ramai pakar diperlukan dalam pasaran. Saya telah menyebut bagaimana Java menyokong pembangunan merentas platform, tetapi saya tidak jemu mengulanginya.
Sudah tentu, terdapat perangkap di mana-mana, tetapi dia yang mengambil langkah bergerak ke hadapan: hanya anda yang boleh memutuskan bahasa pengaturcaraan untuk dipilih. Semoga berjaya dalam pembelajaran!
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION