JavaRush /Blog Java /Random-MS /Memilih bahasa pengaturcaraan

Memilih bahasa pengaturcaraan

Diterbitkan dalam kumpulan
Saya pertama kali menemui pengaturcaraan di sekolah, dalam kelas sains komputer. Ini adalah beberapa penjelasan yang membosankan tentang prinsip sistem nombor n-ary. Nah, sebagai ujian, saya terpaksa menulis laman web saya sendiri. Kemudian nampaknya saya tidak ada lagi aktiviti yang membosankan di dunia. Betapa salah saya! Malangnya, kurikulum sains komputer sekolah tidak memberikan gambaran lengkap tentang kerja IT, dan tidak jelas cara memilih bahasa pengaturcaraan. Memilih bahasa pengaturcaraan - 1Sebelum bertanya soalan "Bahasa pengaturcaraan mana yang hendak dipelajari," seorang pemula harus membiasakan dirinya dengan bahasa apa yang wujud dan apakah perbezaannya.

Ambang kemasukan: tinggi, rendah, sederhana

Di kalangan pengaturcara, anda sering mendengar tentang "ambang kemasukan" - konsep yang mencerminkan jumlah usaha yang diperlukan untuk "junior" individu untuk menguasai bahasa pengaturcaraan pada tahap yang mencukupi untuk menulis program serius pertamanya dan mencari pekerjaan. "Ambang kemasukan" terdiri daripada pengetahuan:
  • ciri sintaks dan nuansa bahasa;
  • perpustakaan;
  • algoritma dan struktur data.
Malah, walaupun bekerja dalam Excel boleh dipanggil sejenis pengaturcaraan. By the way, program pejabat yang biasa ini tidak semudah yang disangka. Untuk satu, ambang untuk kemasukan ialah keupayaan untuk membina jadual, untuk yang lain - pengetahuan tentang formula dan makro yang kompleks. Walau apa pun, ambang ini kecil. Seterusnya datang bahasa separa: contohnya, pengaturcaraan 1C . Kemudian - bahasa yang paling mudah dipelajari: contohnya, PHP . Seterusnya ialah bahasa dengan sintaks asli (biasanya berasal dari bahasa Inggeris) yang tidak memerlukan interaksi manual dengan memori: contohnya, Java , JS . Kemudian terdapat bahasa yang memerlukan pengendalian memori, struktur data dan algoritma yang sangat berhati-hati: contohnya, C , C++ . Bahasa berbilang paradigma muda mempunyai, mungkin, halangan tertinggi untuk masuk, kerana untuk menguasainya, anda perlu makan lebih daripada satu anjing dalam bahasa pengaturcaraan lain: contohnya, Scala . Tetapi pertama sekali, apabila memilih bahasa, anda harus memutuskan perkara yang anda mahu lakukan seterusnya: membangunkan aplikasi web, perusahaan, desktop atau mudah alih .

Web atau bukan Web?

Web

Pengaturcara web boleh dibahagikan kepada pembangun Frontend dan Backend . Perlu memahami maksud istilah ini. Pembangun "Frontend" berurusan dengan apa yang dipanggil bahagian pelanggan - perkara yang akan dilihat oleh pengguna. “Backend” ialah bahagian perisian dan perkakasan perkhidmatan - yang dijalankan pada pelayan. Untuk pembangun Frontend memutuskan bahasa pengaturcaraan yang hendak dipilih, yang mesti ada ialah JavaScript dan rangka kerjanya: Angular JS, React dan lain-lain. Dialek JS tidak sepopular induknya, tetapi juga boleh berguna: CoffeeScript, TypeScript. Terdapat juga kilat AS, sebelum ada JScript dan VBScript, tetapi hanya dinosaur yang ingat itu =) Selain itu, anda perlu memahami HTML dan CSS .
Memilih bahasa pengaturcaraan - 2
Ramai pemula berpendapat bahawa JavaScript dan Java adalah perkara yang hampir sama; bahasa-bahasa ini tidak boleh dikelirukan. JS pernah dipanggil "LiveScript" dan mendapat nama semasanya dengan tepat kerana populariti perkataan "Java". PHP, Python, Ruby, Pearl, Java sesuai untuk backend web . Di sini saya ingin menarik perhatian kepada PHP - kita akan bercakap tentang bahasa lain kemudian - salah satu bahasa paling mudah untuk dipelajari, yang mempunyai ambang kemasukan yang rendah. Ruby, berdasarkan kaji selidik pembangun web biasa, perlahan-lahan tetapi pasti mendapat populariti: ia digemari kerana ringkas dan cantik.

Bukan Web (Perusahaan, Desktop, Mudah Alih)

Saya secara khusus mengumpulkan bahasa pengaturcaraan ini ke dalam kategori dengan nama yang begitu pelik. Kebanyakannya boleh digunakan untuk menulis aplikasi perusahaan, desktop, dan juga mudah alih. Python , OOLP yang mudah difahami, telah menjadi sangat popular baru-baru ini disebabkan oleh pembangunan Pembelajaran Mesin : penganutnya menggunakan Python secara meluas. ML adalah bidang yang agak muda dalam IT, dan walaupun buah pertama telah diterima, saya tidak akan tergesa-gesa untuk menyelami industri ini apabila memilih bahasa pengaturcaraan. Pertama, anda perlu SANGAT pandai dalam matematik. Kedua, gelombang populariti mungkin berjalan dengan cara yang sama seperti "chain blok" atau "teknologi nano". Di samping itu, seperti yang anda ingat, Python digunakan dalam pembangunan web. C++ : klasik, semuanya dibina berdasarkan "tambah". Bahasa ini adalah nenek moyang semua OOLP yang popular, dan seorang pemula pastinya perlu memberi perhatian kepadanya. Banyak aplikasi popular berdasarkannya. Tetapi kebarangkalian tinggi untuk "menembak diri sendiri" dan sintaks yang sukar difahami menafikan kemungkinan seorang pemula menguasai mastodon pengaturcaraan ini. Kotlin - Java untuk hipster - gabungan gila OOP dan pengaturcaraan berfungsi. Baru-baru ini popular kerana pembangun berpengalaman yang beralih dari Java ke Kotlin dengan ketara meningkatkan produktivitinya. Pembangun yang berpengalaman akan cepat terbiasa dengan bahasa ini. Ngomong-ngomong, perkara yang sama berlaku untuk Scala, tetapi Kotlin popular di Android. Java mudah dipelajari oleh pemula. Termasuk, terima kasih kepada JavaRush : di sinilah saya memahami cara memilih bahasa pengaturcaraan =) Sintaks Java adalah jelas, ada kemungkinan "menembak diri sendiri", tetapi tidak kritikal.

OOP atau POP?

Pendekatan prosedur

Pendekatan berorientasikan prosedur melibatkan penulisan program yang terdiri daripada pernyataan berurutan yang boleh dihimpunkan menjadi satu keseluruhan untuk menyelesaikan pelbagai masalah tertentu dengan berkesan. Bahasa-bahasa ini termasuk: C , PureBasic dan Pascal . Perkara yang sama yang membawa keputusasaan kepada pelajar sekolah menengah dan rendah. Terdapat juga GO yang agak muda . Walau bagaimanapun, kebiasaan dengan bahasa prosedur sangat berguna untuk pembangun yang berpotensi. Bagi saya, rendaman dalam bahasa prosedur dikaitkan dengan sistem Mathematica (Wolfram) dan aktiviti penyelidikan universiti. Terima kasih kepada pendekatan algoritma yang betul dan prosedur mudah, bergerak secara linear dari permulaan program hingga ke penghujungnya, saya dapat mengira nilai yang berkaitan dengan fizik teori moden. Terima kasih kepada bahasa "berurutan" ini anda mula memahami bahawa kadang-kadang lebih mudah untuk menulis kod daripada mengira sendiri. Mempelajari PPP menyediakan latihan algoritma yang baik, yang hampir selalu ingin dilihat oleh majikan dalam diri calon apabila mengambil pekerja. Asas segala-galanya dan semua orang dalam IT dibina berdasarkan bahasa prosedur, jadi jangan memandang rendah mereka. Ngomong-ngomong, pemula yang memutuskan bahasa pengaturcaraan yang hendak dipilih untuk dipelajari sering berfikir bahawa multithreading adalah hak eksklusif OOP. Ini adalah salah. Bahasa pengaturcaraan prosedural juga membolehkan anda melakukan pengiraan selari.
Memilih bahasa pengaturcaraan - 3

Pendekatan berorientasikan objek

Mereka yang bermula dengan bahasa prosedur selalunya mempunyai pengetahuan yang baik tentang matematik, algoritma dan struktur data (ini disebabkan oleh penekanan pada bidang pengetahuan ini di universiti teknikal). Walau bagaimanapun, dalam realiti moden, pengaturcara yang berjaya selalunya mereka yang telah menguasai pendekatan lain untuk pengaturcaraan - berorientasikan objek. Ideologi OOP memungkinkan untuk membina sistem yang benar-benar global. Keistimewaan pendekatan ini adalah persamaannya dengan dunia nyata:
  • pelbagai objek berinteraksi antara satu sama lain dan wujud secara bebas antara satu sama lain.
  • objek mempunyai hierarki dan mampu menerima pakai atau mengubah tingkah laku nenek moyang mereka.
  • Anda boleh beroperasi dengan konsep abstrak, tetapi hanya objek yang benar-benar sedia ada boleh berinteraksi.

Contoh

Bahasa berorientasikan prosedur ialah alat untuk menyelesaikan masalah tertentu. Dan jika tugas anda telah mengalami perubahan, walaupun kecil, kemungkinan besar anda perlu menghabiskan masa dan usaha untuk menulis semula semua algoritma.

Представим программу, описывающую автосалон, который продает легковые и грузовые автомобor, How новые, так и подержанные. В proceduresном языке для каждого an object нужно описать функции, обрабатывающие ввод or вывод данных для нового легкового, нового грузового, б/у легкового и б/у грузового автомобилей. А что предлагает ООП? При an objectно-ориентированном подходе нужно просто описать базовый класс ТРАНСПОРТ, который будет хранить в себе характеристики, присущие и тому, и другому типу автомобилей:

  • Марка
  • Объем двигателя
  • Мощность
  • Год выпуска
  • Новый or б/у
  • Цена

И методы для ввода-вывода информации. Затем создадим an objectы, наследующие характеристики класса ТРАНСПОРТ: ЛЕГКОВУШКА и ГРУЗОВИК. Они содержат уточнённую информацию, присущую именно таким видам транспорта, а также методы ввода-вывода.

Внезапно руководство салона решило расширить ассортимент и продавать еще и мотоциклы. Процедурный подход предложит переписать всю логику для новых и б/у мотоциклов с самого начала, в то время How ООП-язык позволит просто создать новый an object МОТОЦИКЛ, наследующий все характеристики суперкласса ТРАНСПОРТ и содержащий уточнения.

А что будет, если добавлять разные транспортные средства? Процедурная реализация будет требовать больших трудозатрат, чем ООП. Причем чем больше ассортимент, тем меньше нужно будет делать манипуляций с an objectми.

Итак, ООП — это стиль программирования, позволяющий объединять данные и методы одной сущности и работать с ними How с цельным an objectом. Сущности могут выстраиваться в иерархии и взаимодействовать между собой, не вдаваясь в подробности внутренней реализации друг друга. Для себя я выделяю три причины, по которым ООП — более прогрессивный подход:
  1. ООП предполагает независимую разработку отдельных модулей, предоставляя программисту or команде выбирать способ и границы соприкосновений и обмена информацией.

  2. Разбиение на небольшие модули намного проще для восприятия, чем монолитные proceduresы. Благодаря этому сторонний разработчик быстро разберется в твоем codeе, а ты при необходимости войдешь в новый проект.

  3. Изменение одного an object может ниHow не отразиться на взаимодействии с другим, но способно повлиять на иерархию дочерних an objectов. Освоив такой подход, расширение и доработка программы становится тривиальной задачей.
Нужно помнить о том, что один подход не противоречит другому, но иерархически ООП всё же находится выше. Собственно, почему я рекомендую именно Java? Я бы выделил следующие причины:
  1. Кроссплатформенность.

    Java работает везде благодаря JVM —виртуальной машине Java. Один из главных плюсов этого языка — кроссплатформенность: не нужно думать о том, Howую библиотеку подключить, Howова архитектура у конкретного процессора. «Написано однажды —работает всегда».

  2. Документация.

    Pangkalan dokumentasi terluas: dokumentasi Oracle rasmi, portal latihan, komuniti yang sentiasa membangun. Jawapan kepada kebanyakan soalan yang timbul semasa pembangunan boleh didapati dalam beberapa minit, perkara utama ialah memahami apa yang perlu ditaip ke dalam enjin carian =)

  3. Populariti.

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

    Setiap tahun, pembenci meramalkan "kematian Java", mereka berkata: " Oracle akan berhenti menyokongnya, dan secara umum anda melakukan perkara karut ." Ini adalah salah! Versi baharu Java dijanjikan akan dikeluarkan setiap enam bulan. Inovasi dan ciri terpenting versi terkini boleh dibaca di sini .

    Bagi saya, lambdas di Java 8 adalah revolusi dan penemuan, apatah lagi versi baharu! Sekarang saya sedang mengusahakan projek "retrograde", jadi saya tidak mendalami inovasi, tetapi hakikat bahawa Java masih hidup adalah fakta.

    Memilih bahasa pengaturcaraan - 4
  4. Android.

    Android dengan yakin telah menduduki lebih daripada 80% pasaran telefon mudah alih selama 4 tahun yang lalu; TV, pemain media dan juga sistem media dalam kereta beroperasi di bawah sistem pengendalian ini. Dan pembangunan untuk OS ini dijalankan terutamanya di Jawa. Bayangkan apa prospek yang dibuka. Apabila saya mendapat pekerjaan sebagai pembangun Android, saya mula berminat: berapakah kos produk yang saya bangunkan? Ternyata harga setahun adalah lebih kurang $5. Persoalan yang munasabah timbul: dari mana datangnya dana untuk pejabat ini, untuk gaji, kuki, meja tenis, robot dan "perkara bagus" lain? Ini soal kuantiti: aplikasi kami mempunyai 20 juta pengguna.

  5. Gaji.

    Dan untuk pencuci mulut: gaji pemaju Java adalah salah satu yang tertinggi dalam industri. Anda akan belajar pengaturcaraan untuk tujuan tertentu: untuk mendapatkan pekerjaan yang baik.

Populariti bahasa pengaturcaraan

Apabila memilih bahasa pengaturcaraan, anda perlu memikirkan matlamat utama pembelajaran - mendapatkan pekerjaan pertama anda. Untuk menilai populariti bahasa yang berbeza, saya pergi ke portal pengambilan popular dan mula melihat bilangan kekosongan untuk pelbagai permintaan untuk Moscow. Anda boleh lihat hasilnya di bawah.
Jawa: 277
ular sawa: 227
php: 188
c#: 147
c++: 131
delima: 40
skala: 24
kotlin: 20
Malah Python yang popular baru-baru ini tidak dapat mendahului Java. Tetapi ini adalah data subjektif: bandar tertentu, hari tertentu. Terdapat sumber rasmi, mari kita beralih kepada mereka. Sehingga Oktober 2018, menurut TIOBE, Java menduduki tempat pertama. Dalam ranking PYPL , Java menduduki tempat kedua, jauh di hadapan JS dan bersaing dengan Python "bergaya".

KEPUTUSAN

Inilah perkara yang perlu diberi perhatian oleh pemula apabila memilih bahasa pengaturcaraan:
  • Populariti (Java secara konsisten menduduki kedudukan utama);
  • Ambang kemasukan (Untuk Java - purata: julat kecekapan yang diperlukan oleh majikan agak luas);
  • Bahan yang tersedia (tidak ada portal yang serupa dengan JavaRush dalam bahasa Rusia, oleh itu, tapak tangan pergi untuk meneka siapa =));
  • Bidang aplikasi: lebih banyak industri di mana bahasa pengaturcaraan boleh digunakan, lebih ramai pakar diperlukan dalam pasaran. Saya sudah bercakap tentang merentas platform, tetapi saya tidak akan jemu mengulanginya.
Sudah tentu, terdapat perangkap di mana-mana, tetapi orang yang berjalan akan menguasai jalan: hanya anda yang boleh memutuskan bahasa pengaturcaraan untuk dipilih . Semoga berjaya dalam pelajaran anda!
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION