JavaRush /Java Blog /Random-ID /Memilih bahasa pemrograman

Memilih bahasa pemrograman

Dipublikasikan di grup Random-ID
Saya pertama kali menemukan pemrograman di sekolah, di kelas ilmu komputer. Ini adalah beberapa penjelasan yang membosankan tentang prinsip-prinsip sistem bilangan n-ary. Nah, sebagai ujian, saya harus menulis website saya sendiri. Kemudian saya merasa tidak ada lagi aktivitas yang membosankan di dunia ini. Betapa salahnya saya! Sayangnya, kurikulum ilmu komputer sekolah tidak memberikan gambaran lengkap tentang cara kerja TI, dan tidak jelas cara memilih bahasa pemrograman. Memilih bahasa pemrograman - 1Sebelum mengajukan pertanyaan “Bahasa pemrograman mana yang harus dipilih untuk dipelajari”, seorang pemula harus membiasakan diri dengan bahasa apa saja yang ada dan apa perbedaannya.

Ambang masuk: tinggi, rendah, sedang

Di kalangan programmer, Anda sering mendengar tentang "ambang batas masuk" - sebuah konsep yang mencerminkan jumlah upaya yang diperlukan bagi seorang "junior" untuk menguasai bahasa pemrograman pada tingkat yang cukup untuk menulis program serius pertamanya dan mencari pekerjaan. “Ambang masuk” terdiri dari pengetahuan:
  • ciri sintaksis dan nuansa bahasa;
  • perpustakaan;
  • algoritma dan struktur data.
Bahkan, bekerja di Excel pun bisa disebut semacam pemrograman. Omong-omong, program perkantoran yang familiar ini tidak sesederhana kelihatannya. Di satu sisi, ambang masuknya adalah kemampuan membuat tabel, di sisi lain, pengetahuan tentang rumus kompleks dan makro. Bagaimanapun, ambang batas ini kecil. Berikutnya adalah bahasa semu: misalnya, pemrograman 1C . Lalu - bahasa yang paling mudah dipelajari: misalnya PHP . Berikutnya adalah bahasa dengan sintaksis asli (biasanya berasal dari bahasa Inggris) yang tidak memerlukan interaksi manual dengan memori: misalnya Java , JS . Lalu ada bahasa yang memerlukan penanganan memori, struktur data, dan algoritma yang sangat hati-hati: misalnya, C , C++ . Bahasa multi-paradigma muda mungkin memiliki hambatan masuk tertinggi, karena untuk menguasainya Anda perlu makan lebih dari satu anjing dalam bahasa pemrograman lain: misalnya, Scala . Namun pertama-tama, saat memilih bahasa, Anda harus memutuskan apa yang ingin Anda lakukan selanjutnya: mengembangkan aplikasi web, perusahaan, desktop, atau seluler .

Web atau bukan Web?

jaring

Pemrogram web dapat dibagi menjadi pengembang Frontend dan Backend . Penting untuk memahami apa arti istilah-istilah ini. Pengembang "frontend" berurusan dengan apa yang disebut sisi klien - apa yang akan dilihat pengguna. “Backend” adalah bagian perangkat lunak dan perangkat keras dari layanan – apa yang berjalan di server. Bagi pengembang Frontend yang memutuskan bahasa pemrograman mana yang akan dipilih, yang harus dimiliki adalah JavaScript dan kerangka kerjanya: Angular JS, React, dan lainnya. Dialek JS tidak sepopuler induknya, tetapi juga bisa berguna: CoffeeScript, TypeScript. Ada juga flash AS, dulu ada JScript dan VBScript, tapi hanya dinosaurus yang ingat itu =) Selain itu, Anda perlu memahami HTML dan CSS .
Memilih bahasa pemrograman - 2
Banyak pemula yang berpikir bahwa JavaScript dan Java hampir sama, bahasa-bahasa ini tidak perlu bingung. JS dulu disebut "LiveScript" dan mendapatkan namanya saat ini karena popularitas kata "Java". PHP, Python, Ruby, Pearl, Java cocok untuk backend web . Di sini saya ingin menarik perhatian pada PHP - kita akan membicarakan bahasa lain nanti - salah satu bahasa termudah untuk dipelajari, yang memiliki ambang masuk yang rendah. Ruby, dilihat dari survei terhadap pengembang web yang sudah dikenal, perlahan tapi pasti mendapatkan popularitas: Ruby disukai karena singkatnya dan keindahannya.

Non-Web (Perusahaan, Desktop, Seluler)

Saya secara khusus mengelompokkan bahasa pemrograman ini ke dalam kategori dengan nama yang aneh. Kebanyakan dari mereka dapat digunakan untuk menulis aplikasi perusahaan, desktop, dan bahkan seluler. Python , OOLP yang mudah dipahami, menjadi sangat populer akhir-akhir ini karena perkembangan Machine Learning : penganutnya banyak menggunakan Python. ML adalah bidang TI yang cukup muda, dan meskipun buah pertamanya telah diperoleh, saya tidak akan terburu-buru terjun ke industri ini ketika memilih bahasa pemrograman. Pertama, Anda harus SANGAT pandai matematika. Kedua, gelombang popularitas mungkin berjalan sama seperti “blockchain” atau “nanoteknologi”. Selain itu, seperti yang Anda ingat, Python digunakan dalam pengembangan web. C++ : klasik, semuanya dibangun atas dasar “kelebihan”. Bahasa ini adalah nenek moyang dari semua OOLP populer, dan seorang pemula harus memperhatikannya. Banyak aplikasi populer yang didasarkan pada itu. Namun kemungkinan besar untuk "menembak diri sendiri" dan sintaksis yang sulit dipahami meniadakan kemungkinan seorang pemula menguasai mastodon pemrograman ini. Kotlin - Java untuk para hipster - perpaduan gila antara OOP dan pemrograman fungsional. Baru-baru ini populer karena fakta bahwa pengembang berpengalaman yang beralih dari Java ke Kotlin meningkatkan produktivitasnya secara signifikan. Pengembang berpengalaman akan cepat terbiasa dengan bahasa ini. Omong-omong, hal yang sama berlaku untuk Scala, tetapi Kotlin populer di Android. Java mudah dipelajari oleh pemula. Termasuk, terima kasih kepada JavaRush : di sinilah saya mengerti cara memilih bahasa pemrograman =) Sintaks Java jelas, ada kemungkinan "menembak diri sendiri", tetapi tidak kritis.

OOP atau POP?

Pendekatan prosedural

Pendekatan berorientasi prosedur melibatkan penulisan sebuah program yang terdiri dari pernyataan berurutan yang dapat dirangkai menjadi satu kesatuan untuk secara efektif menyelesaikan serangkaian masalah tertentu. Bahasa-bahasa tersebut antara lain: C , PureBasic dan Pascal . Hal yang sama yang membuat siswa SMA dan SMP putus asa. Ada juga GO yang relatif muda . Namun, keakraban dengan bahasa prosedural sangat berguna bagi calon pengembang. Bagi saya, pendalaman bahasa prosedural dikaitkan dengan sistem Mathematica (Wolfram) dan kegiatan penelitian universitas. Berkat pendekatan algoritmik yang tepat dan prosedur sederhana, yang bergerak secara linier dari awal program hingga akhir, saya dapat menghitung nilai yang relevan dengan fisika teoretis modern. Berkat bahasa “berurutan” inilah Anda mulai memahami bahwa terkadang lebih mudah menulis kode daripada menghitung sendiri. Mempelajari PPP memberikan pelatihan algoritmik yang baik, yang hampir selalu ingin dilihat oleh pemberi kerja dalam diri seorang kandidat saat merekrut. Fondasi segala sesuatu dan semua orang di bidang TI dibangun berdasarkan bahasa prosedural, jadi jangan meremehkannya. Omong-omong, pemula yang memutuskan bahasa pemrograman mana yang akan dipelajari sering kali berpikir bahwa multithreading adalah hak prerogatif eksklusif OOP. Ini salah. Bahasa pemrograman prosedural juga memungkinkan Anda melakukan perhitungan paralel.
Memilih bahasa pemrograman - 3

Pendekatan berorientasi objek

Mereka yang memulai dengan bahasa prosedural paling sering memiliki pengetahuan yang baik tentang matematika, algoritma dan struktur data (hal ini disebabkan oleh penekanan pada bidang pengetahuan ini di universitas teknik). Namun, dalam realitas modern, pemrogram yang sukses sering kali adalah mereka yang menguasai pendekatan lain dalam pemrograman - berorientasi objek. Ideologi OOP memungkinkan untuk membangun sistem yang benar-benar global. Keunikan pendekatan ini adalah kemiripannya dengan dunia nyata:
  • berbagai objek berinteraksi satu sama lain dan ada secara independen satu sama lain.
  • objek memiliki hierarki dan mampu mengadopsi atau mengubah perilaku nenek moyangnya.
  • Anda dapat beroperasi dengan konsep abstrak, tetapi hanya objek nyata yang dapat berinteraksi.

Contoh

Bahasa berorientasi prosedural adalah alat untuk memecahkan masalah tertentu. Dan jika tugas Anda telah mengalami perubahan, bahkan perubahan kecil, kemungkinan besar Anda harus menghabiskan waktu dan tenaga untuk menulis ulang semua algoritme.

Bayangkan sebuah program yang menggambarkan dealer mobil yang menjual mobil dan truk, baik baru maupun bekas. Dalam bahasa prosedural, untuk setiap objek, Anda perlu mendeskripsikan fungsi yang memproses input atau output data untuk mobil baru, truk baru, mobil bekas, dan truk bekas. Apa yang ditawarkan OOP? Dengan pendekatan berorientasi objek, Anda hanya perlu mendeskripsikan kelas dasar TRANSPORT, yang akan menyimpan karakteristik yang melekat pada kedua jenis mobil:

  • Merek
  • Kapasitas mesin
  • Kekuatan
  • Tahun penerbitan
  • Baru atau bekas
  • Harga

Dan metode input/output informasi. Kemudian kita akan membuat objek yang mewarisi karakteristik kelas TRANSPORT: MOBIL dan TRUCK. Mereka berisi informasi terkini khusus untuk jenis transportasi ini, serta metode input-output.

Внезапно руководство салона решило расширить ассортимент и продавать еще и мотоциклы. Процедурный подход предложит переписать всю логику для новых и б/у мотоциклов с самого начала, в то время 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. Документация.

    Широчайшая база documentации: официальная documentация Oracle, обучающие порталы, постоянно развивающееся комьюнити. Ответы на большинство вопросов, возникающих в ходе разработки, можно найти за несколько minutes, главное — понять, что забивать в поисковик =)

  3. Популярность.

    Java — самый популярный язык программирования в мире: кроме вышеупомянутых Android и web разработчиков, на Java пишет почти каждый первый энтерпрайз разработчик. Enterprise — внутрикорпоративная разработка, необходимая для нужд больших корпораций.

    Ежегодно хейтеры предсказывают «смерть Java», дескать: «Oracle перестанет его поддерживать, и вообще вы ерундой занимаетесь». Это не так! Новые версии Java обещают выпускать раз в полгода. Наиболее важные нововведения и фичи последней версии можно прочитать здесь.

    Bagi saya, lambda di Java 8 adalah sebuah revolusi dan penemuan, belum lagi versi baru! Sekarang saya sedang mengerjakan proyek “retrograde”, jadi saya tidak mendalami inovasi, tetapi fakta bahwa Java tetap hidup adalah sebuah fakta.

    Memilih bahasa pemrograman - 4
  4. Android.

    Android dengan percaya diri telah menguasai lebih dari 80% pasar ponsel selama 4 tahun terakhir; TV, pemutar media, dan bahkan sistem media di mobil beroperasi di bawah sistem operasi ini. Dan pengembangan OS ini dilakukan terutama di Java. Bayangkan saja prospek apa yang terbuka. Ketika saya mendapat pekerjaan sebagai pengembang Android, saya menjadi tertarik: berapa harga produk yang saya kembangkan? Ternyata harga per tahunnya sekitar $5. Sebuah pertanyaan yang masuk akal muncul: dari mana dana untuk kantor ini, untuk gaji, kue, tenis meja, robot, dan “barang bagus” lainnya berasal? Ini masalah kuantitas: aplikasi kami memiliki 20 juta pengguna.

  5. Gaji.

    Dan sebagai penutup: gaji seorang pengembang Java adalah salah satu yang tertinggi di industri. Anda akan belajar pemrograman untuk tujuan tertentu: untuk mendapatkan pekerjaan yang bagus.

Popularitas bahasa pemrograman

Saat memilih bahasa pemrograman, Anda perlu memikirkan tujuan akhir pembelajaran - mendapatkan pekerjaan pertama Anda. Untuk menilai popularitas berbagai bahasa, saya mengunjungi portal perekrutan populer dan mulai melihat jumlah lowongan untuk berbagai permintaan di Moskow. Anda dapat melihat hasilnya di bawah ini.
Jawa: 277
ular piton: 227
php: 188
C#: 147
c++: 131
rubi: 40
skala: 24
kotlin: 20
Bahkan Python yang baru-baru ini populer tidak dapat mengungguli Java. Tapi ini adalah data subjektif: kota tertentu, hari tertentu. Ada sumber resmi, mari kita lihat. Per Oktober 2018, menurut TIOBE, Java menduduki peringkat pertama. Dalam peringkat PYPL , Java menempati posisi kedua, jauh di depan JS dan bersaing dengan Python yang “modis”.

HASIL

Inilah yang harus diperhatikan oleh seorang pemula ketika memilih bahasa pemrograman:
  • Popularitas (Jawa secara konsisten menempati posisi terdepan);
  • Ambang batas masuk (Untuk Jawa - rata-rata: rentang kompetensi yang dibutuhkan oleh pemberi kerja cukup luas);
  • Materi yang tersedia (tidak ada portal yang mirip dengan JavaRush dalam bahasa Rusia, oleh karena itu, mudah untuk menebak siapa =));
  • Area penerapan: semakin banyak industri di mana bahasa pemrograman dapat digunakan, semakin banyak spesialis yang dibutuhkan di pasar tersebut. Saya sudah berbicara tentang lintas platform, tetapi saya tidak akan bosan mengulanginya.
Tentu saja, ada jebakan di mana-mana, tetapi orang yang berjalan akan menguasai jalannya: hanya Anda yang dapat memutuskan bahasa pemrograman mana yang akan dipilih . Semoga sukses dalam studimu!
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION