CodeGym /Java Blog /Acak /Memilih bahasa pemrograman
John Squirrels
Level 41
San Francisco

Memilih bahasa pemrograman

Dipublikasikan di grup Acak
Saya pertama kali menemukan pemrograman di sekolah, dalam pelajaran tentang ilmu komputer. Ini terdiri dari beberapa penjelasan yang membosankan tentang cara kerja sistem bilangan n-ary. Dan, tentu saja, ada ujian yang mengharuskan Anda membuat situs web sendiri. Pada saat itu, menurut saya tidak ada pekerjaan yang lebih membosankan. Betapa salahnya saya! Sayangnya, program ilmu komputer sekolah menengah tidak memberikan gambaran lengkap tentang pekerjaan TI, dan tidak menjelaskan cara memilih bahasa pemrograman. Sebelum bertanya "Bahasa pemrograman apa yang harus saya pelajari?", seorang pemula harus membiasakan diri dengan bahasa apa yang ada di luar sana dan bagaimana perbedaannya satu sama lain. Memilih bahasa pemrograman - 1

Ambang masuk: Tinggi, rendah, sedang

Pemrogram sering berbicara tentang "ambang masuk" - sebuah konsep yang mencerminkan jumlah upaya yang diperlukan untuk setiap "pengembang junior" untuk menguasai bahasa pemrograman dengan cukup baik untuk menulis program serius pertamanya dan mencari pekerjaan. The "entry threshold" terdiri dari pengetahuan tentang:
  • kekhasan sintaksis dan nuansa bahasa
  • perpustakaan
  • algoritma dan struktur data.
Bekerja di Excel bahkan bisa disebut semacam pemrograman. Omong-omong, program perkantoran yang familiar ini tidak sesederhana kelihatannya. Untuk satu pengguna, ambang entri mungkin merupakan kemampuan untuk membuat tabel. Untuk yang lain, itu mungkin pengetahuan tentang formula dan makro yang kompleks. Dalam kedua kasus, ambang ini kecil. Berikutnya datang quasi-bahasa, seperti 1C -pemrograman. Lalu ada bahasa yang paling sederhana untuk dipelajari, misalnya PHP . Selanjutnya, kami memiliki bahasa dengan sintaks asli (biasanya berasal dari bahasa Inggris) yang tidak mengharuskan Anda menangani manajemen memori, misalnya Java dan JS . Lalu ada bahasa yang membutuhkan penanganan memori, struktur data, dan algoritma yang sangat hati-hati, misalnya, C danC++ . Bahasa multi-paradigma muda, misalnya, Scala , mungkin memiliki ambang masuk tertinggi, karena menguasainya mengharuskan Anda menyelami begitu banyak paradigma pemrograman. Namun sebelum Anda memilih bahasa, Anda harus memutuskan apa yang ingin Anda lakukan selanjutnya: mengembangkan untuk web, perusahaan, desktop, atau perangkat seluler .

Web atau bukan web?

Web

Pemrogram web dapat dibagi menjadi pengembang Frontend dan Backend . Anda harus memahami apa arti istilah-istilah ini. Pengembang frontend terlibat di sisi klien, yaitu apa yang dilihat pengguna. "Backend" adalah tentang memanipulasi dan menyimpan data — bagian dari layanan yang berjalan di server. Untuk pengembang Frontend yang memutuskan bahasa pemrograman mana yang akan dipelajari, kerangka kerja JavaScript dan JavaScript (Angular JS, React, dan lainnya) sangat penting. Dialek JS, seperti CoffeeScript dan TypeScript, tidak sepopuler induknya, tetapi juga bisa berguna. Ada juga Flash AS, dan dulu ada JScript dan VBScript, tapi hanya dinosaurus yang mengingat ini =) Selain itu semua, Anda perlu memahami HTMLdan CSS . Memilih bahasa pemrograman - 2Banyak pemula berpikir bahwa JavaScript dan Java adalah hal yang hampir sama. Jangan bingung bahasa-bahasa ini. JS sebelumnya bernama "LiveScript" dan mendapatkan namanya saat ini hanya karena popularitas kata "Java". Untuk pengembang backend web , PHP, Python, Ruby, Perl, dan Java cocok. Di sini saya ingin fokus pada PHP (kita akan membicarakan bahasa lainnya nanti). PHP adalah salah satu bahasa termudah untuk dipelajari, memiliki ambang masuk yang rendah. Menurut survei pengembang web terkenal, Ruby perlahan tapi pasti mendapatkan popularitas — Ruby disukai karena keringkasan dan keindahannya.

Bukan web (perusahaan, desktop, seluler)

Saya sengaja menggabungkan bahasa pemrograman berikut ke dalam kategori ini dengan nama yang aneh. Anda dapat menggunakan sebagian besar dari mereka untuk menulis aplikasi perusahaan, desktop, dan bahkan seluler. Python adalah bahasa pemrograman berorientasi objek yang mudah dipahami dan baru-baru ini menjadi sangat populer karena pertumbuhan pembelajaran mesin (ML): Pengembang ML memanfaatkan Python secara ekstensif. MLadalah area yang cukup baru di bidang TI, dan meskipun kami telah melihatnya membuahkan hasil, saya tidak akan terburu-buru memasuki industri ini saat memilih bahasa pemrograman. Pertama, Anda memerlukan pemahaman matematika yang SANGAT BAIK. Kedua, gelombang popularitas dapat berlalu dengan cara yang sama seperti yang terjadi pada "blockchain" atau "nanoteknologi". Yang mengatakan, Anda mungkin ingat bahwa Python digunakan dalam pengembangan web. C++: bahasa klasik di mana semuanya dibangun di atas operator "plus-plus". Bahasa ini adalah nenek moyang dari semua bahasa pemrograman berorientasi objek yang populer, dan seorang pemula harus memperhatikannya. Banyak aplikasi populer telah ditulis menggunakan itu. Tetapi peluang bagus untuk "menembak diri sendiri" dan sintaks yang sulit dipahami membuat kemungkinan nol bahwa seorang pemula akan menguasai mastodon pemrograman ini. Kotlin, yang seperti Java untuk para hipsters, adalah perpaduan gila antara OOP dan pemrograman fungsional. Baru-baru ini populer karena fakta bahwa pengembang berpengalaman yang beralih dari Java ke Kotlin dapat meningkatkan produktivitasnya secara serius. Pengembang yang berpengalaman akan segera terbiasa dengan bahasa pemrograman ini. Omong-omong, hal yang sama berlaku untuk Scala, tetapi Kotlin populer di dunia Android. Java mudah dipelajari oleh pemula. Terutama dengan bantuan CodeGym =) Sintaks Java dapat dimengerti dan meskipun ada risiko "menembak diri sendiri", itu tidak kritis.

OOP atau POP?

Pendekatan prosedural

Pendekatan berorientasi prosedur melibatkan penulisan program yang terdiri dari pernyataan berurutan yang dapat dirakit menjadi satu kesatuan untuk secara efektif memecahkan serangkaian masalah tertentu. Bahasa tersebut termasuk C , PureBasic dan Pascal . Dengan kata lain, bahasa yang membawa keputusasaan bagi siswa sekolah menengah dan sarjana. Ada juga GO yang relatif mudabahasa. Yang mengatakan, menjadi akrab dengan bahasa prosedural sangat berguna bagi pengembang potensial. Perendaman saya dalam bahasa prosedural datang dengan sistem Wolfram Mathematica dan penelitian universitas. Algoritma yang tepat dan prosedur sederhana, bergerak secara linear dari awal program hingga akhir, memungkinkan saya menghitung nilai yang relevan dengan fisika teoretis modern. Bahasa pemrograman "berurutan" ini hanya untuk membantu Anda memahami bahwa terkadang lebih mudah untuk menulis kode yang melakukan penghitungan secara manual. Pemrograman berorientasi prosedur pembelajaran (POP) memberikan pelatihan algoritmik yang baik, yang hampir selalu ingin dilihat oleh pemberi kerja dalam calon pekerjaan. Benar-benar semua yang ada di TI dibangun di atas dasar bahasa prosedural, jadi jangan meremehkannya. Omong-omong, pemula yang memutuskan bahasa pemrograman mana yang akan dipelajari sering berpikir bahwa hanya bahasa OOP yang mendukung multithreading. Ini tidak benar. Bahasa pemrograman prosedural juga memungkinkan perhitungan paralel. Memilih bahasa pemrograman - 3

Pendekatan berorientasi objek

Mereka yang memulai dengan bahasa prosedural biasanya fasih dalam matematika, algoritme, dan struktur data (karena penekanan universitas teknik pada bidang ini). Namun, kenyataan hari ini adalah bahwa pemrogram yang sukses biasanya adalah mereka yang telah menguasai pendekatan pemrograman yang berbeda: paradigma berorientasi objek. Ideologi OOP memungkinkan Anda membangun sistem yang benar-benar global. Fitur dari pendekatan ini adalah kemiripannya dengan dunia nyata:
  • Objek yang berbeda berinteraksi satu sama lain dan ada secara independen satu sama lain.
  • Objek memiliki hierarki dan dapat mengadopsi atau mengubah perilaku nenek moyangnya.
  • Anda dapat menggunakan konsep abstrak, tetapi hanya objek yang benar-benar ada yang dapat berinteraksi.

Contoh

Bahasa berorientasi prosedur adalah alat untuk memecahkan masalah tertentu. Jika tugas Anda berubah, meskipun sedikit, Anda mungkin 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, Anda perlu mendefinisikan fungsi yang memproses input atau output data untuk setiap entitas: mobil baru, truk baru, mobil bekas, dan truk bekas. Apa yang ditawarkan OOP? Dengan pendekatan berorientasi objek, kita hanya perlu mendefinisikan kelas dasar Kendaraan yang menyimpan karakteristik yang dimiliki oleh semua jenis kendaraan:

  • Membuat
  • Perpindahan mesin
  • Daya kuda
  • Tahun
  • Baru atau bekas
  • Harga

Dan metode untuk menerima dan mengirimkan informasi. Kemudian kami membuat objek yang mewarisi karakteristik kelas Kendaraan: Mobil dan Truk. Mereka berisi informasi yang berkaitan dengan jenis kendaraan ini, serta metode input/output.

Tiba-tiba, manajemen dealer memutuskan untuk memperluas lineup dengan menawarkan sepeda motor. Di bawah pendekatan prosedural, kami harus membuat ulang semua logika untuk sepeda motor baru dan bekas, sementara bahasa OOP memungkinkan kami membuat kelas Sepeda Motor baru yang mewarisi semua karakteristik superkelas Kendaraan dan berisi penyempurnaan khusus sepeda motor.

Dan apa jadinya jika kita menambahkan berbagai kendaraan? Implementasi prosedural akan membutuhkan lebih banyak pekerjaan daripada OOP. Terlebih lagi, semakin besar barisan, semakin sedikit operasi yang melibatkan objek yang diperlukan.

Jadi, OOP adalah gaya pemrograman yang memungkinkan Anda menggabungkan data dan metode menjadi satu entitas dan bekerja dengannya sebagai objek terpadu. Entitas dapat diatur dalam hierarki dan berinteraksi satu sama lain tanpa mempelajari detail implementasi internal satu sama lain. Saya akan menunjukkan tiga alasan mengapa OOP adalah pendekatan yang lebih progresif bagi saya:
  1. OOP melibatkan pengembangan independen modul individu, yang memungkinkan programmer atau tim untuk memilih metode dan batasan kontak dan pertukaran informasi.
  2. Kode yang dipartisi menjadi modul kecil jauh lebih mudah dibaca daripada prosedur monolitik. Akibatnya, orang luar dapat dengan cepat memahami kode Anda, dan Anda juga dapat bergabung dengan proyek baru jika diperlukan.
  3. Satu kelas dapat diubah tanpa memengaruhi interaksi yang lain, tetapi perubahan semacam itu dapat memengaruhi hierarki objek anak. Setelah Anda menguasai pendekatan ini, memperluas dan memodifikasi program menjadi hal yang sepele.
Ingatlah bahwa satu pendekatan tidak bertentangan dengan yang lain, tetapi OOP masih lebih tinggi dalam hierarki. Jadi, mengapa saya merekomendasikan Java? Saya akan menyoroti alasan berikut:
  1. Lintas platform.

    Java bekerja di mana saja berkat mesin virtual Java (JVM). Salah satu keunggulan utama bahasa ini adalah sifatnya lintas platform: tidak perlu memikirkan pustaka mana yang akan ditambahkan atau arsitektur prosesor tertentu. "Tulis sekali, jalankan di mana saja."

  2. Dokumentasi.

    Ada basis dokumentasi yang sangat besar: dokumentasi resmi Oracle, portal pelatihan, dan komunitas yang terus berkembang. Jawaban atas sebagian besar pertanyaan yang muncul selama pengembangan dapat ditemukan dalam beberapa menit. Yang utama adalah memahami apa yang harus dimasukkan ke dalam mesin pencari =)

  3. Kepopuleran.

    Java adalah bahasa pemrograman paling populer di dunia: selain pengembang Android dan web yang disebutkan di atas, hampir setiap pengembang perusahaan menulis di Jawa. Perusahaan mengacu pada pengembangan perusahaan internal yang diperlukan untuk kebutuhan perusahaan besar.

    Setiap tahun, pembenci memprediksi "kematian Jawa". Mereka berkata, " Oracle akan berhenti mendukungnya. Anda benar-benar membuang-buang waktu. " Ini tidak benar! Mereka berjanji untuk merilis versi baru Java setiap enam bulan.

    Bagi saya, ekspresi lambda di Java 8 adalah revolusioner dan wahyu, belum lagi versi baru! Saat ini saya sedang mengerjakan proyek "warisan", jadi saya tidak mempelajari inovasi terbaru, tetapi faktanya Java masih hidup.

    Memilih bahasa pemrograman - 4
  4. Android.

    Selama 4 tahun terakhir, Android secara konsisten menguasai lebih dari 80% pasar ponsel . TV, pemutar media, dan bahkan sistem infotainment mobil berjalan di sistem operasi ini. Dan pengembangan aplikasi untuk OS ini terjadi terutama di Java. Bayangkan saja prospek yang terbuka. Ketika saya mendapat pekerjaan sebagai pengembang Android, saya bertanya-tanya berapa nilai produk yang saya kembangkan? Ternyata, harganya sekitar $5 per tahun. Itu menimbulkan pertanyaan, "lalu dari mana uang untuk kantor ini, gaji, ruang jajan, meja ping-pong, robot, dan fasilitas lainnya? Jawabannya terletak pada volume: aplikasi kami memiliki 20 juta pengguna.

  5. Gaji.

    Dan sekarang puncaknya: gaji pengembang Java termasuk yang tertinggi di industri ini. Lagi pula, Anda berencana mempelajari pemrograman untuk tujuan tertentu: mendapatkan pekerjaan yang baik.

Popularitas bahasa pemrograman

Ada sumber informasi resmi, jadi mari beralih ke mereka. Menurut TIOBE , Java menempati peringkat pertama pada Oktober 2019. Dalam peringkat PYPL , Java menempati peringkat kedua, jauh di depan JS dan menyaingi Python yang trendi.

Kesimpulan

Saat seorang pemula mempertimbangkan untuk memilih bahasa pemrograman, inilah yang harus dia perhatikan:
  • Popularitas (Java secara konsisten menempati posisi terdepan)
  • Ambang batas masuk (untuk Jawa, ini sedang: pemberi kerja membutuhkan keterampilan yang agak luas)
  • Bahan yang tersedia (selamat datang di CodeGym =))
  • Bidang aplikasi: semakin banyak bidang di mana bahasa pemrograman digunakan, semakin banyak spesialis yang dibutuhkan di pasar. Saya telah menyebutkan bagaimana Java mendukung pengembangan lintas platform, tetapi saya tidak pernah bosan mengulanginya.
Tentu saja, ada jebakan di mana-mana, tetapi dia yang mengambil langkah maju: hanya Anda yang dapat memutuskan bahasa pemrograman mana yang akan dipilih. Semoga berhasil dalam belajar!
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION