JavaRush /Blog Jawa /Random-JV /Milih basa pamrograman

Milih basa pamrograman

Diterbitake ing grup
Aku pisanan ketemu program ing sekolah, ing kelas ilmu komputer. Iki minangka sawetara panjelasan sing nyenengake babagan prinsip sistem nomer n-ary. Ya, minangka tes, aku kudu nulis situs webku dhewe. Banjur aku rumangsa ora ana kegiatan sing mboseni ing jagad iki. Sepira salahku! Sayange, kurikulum ilmu komputer sekolah ora menehi gambaran lengkap babagan karya IT, lan ora jelas carane milih basa pamrograman. Milih basa pamrograman - 1Sadurunge takon pitakonan "Basa pamrograman apa sing kudu dipelajari", pamula kudu ngerti basa apa sing ana lan apa bedane.

Ambang entri: dhuwur, kurang, medium

Antarane programer, sampeyan bisa kerep krungu bab "ambang entri" - konsep sing nuduhake jumlah gaweyan sing dibutuhake kanggo "junior" individu kanggo master basa program ing tingkat cekap kanggo nulis program serius pisanan lan golek proyek. "Ambang entri" kalebu kawruh:
  • fitur sintaksis lan nuansa basa;
  • perpustakaan;
  • algoritma lan struktur data.
Nyatane, malah makarya ing Excel bisa diarani minangka pemrograman. Miturut cara, program kantor sing akrab iki ora gampang kaya sing katon. Kanggo siji, batesan kanggo entri bakal dadi kemampuan kanggo mbangun tabel, kanggo liyane - kawruh babagan rumus rumit lan makro. Ing kasus apa wae, ambang iki cilik. Sabanjure teka basa-basa: contone, pemrograman 1C . Banjur - basa paling gampang kanggo sinau: contone, PHP . Sabanjure yaiku basa kanthi sintaksis asli (biasane asale saka basa Inggris) sing ora mbutuhake interaksi manual karo memori: contone, Jawa , JS . Banjur ana basa sing mbutuhake penanganan memori, struktur data lan algoritma sing ati-ati: contone, C , C ++ . Basa multi-paradigma enom duwe, mbok menawa, alangan paling dhuwur kanggo mlebu, amarga kanggo nguwasani sampeyan kudu mangan luwih saka siji asu ing basa pamrograman liyane: contone, Scala . Nanging pisanan, nalika milih basa, sampeyan kudu mutusake apa sing bakal ditindakake sabanjure: ngembangake aplikasi web, perusahaan, desktop utawa seluler .

Web utawa ora Web?

Web

Programer web bisa dipérang dadi pangembang Frontend lan Backend . Perlu dimangerteni apa tegese istilah kasebut. Pangembang "Frontend" menehi hasil karo sing diarani sisih klien - apa sing bakal dideleng pangguna. "Backend" minangka bagean piranti lunak lan piranti keras saka layanan - apa sing mlaku ing server. Kanggo pangembang Frontend sing mutusake basa pamrograman sing kudu dipilih, sing kudu ditindakake yaiku JavaScript lan kerangka kerjane: Angular JS, React lan liya-liyane. Dialek JS ora populer kaya wong tuwane, nanging bisa uga migunani: CoffeeScript, TypeScript. Ana uga lampu kilat AS, sadurunge ana JScript lan VBScript, nanging mung dinosaurus sing elinga =) Kajaba iku, sampeyan kudu ngerti HTML lan CSS .
Milih basa pamrograman - 2
Akeh pamula mikir yen JavaScript lan Jawa meh padha, basa-basa kasebut ora kudu bingung. JS biyen diarani "LiveScript" lan entuk jeneng saiki amarga popularitas tembung "Jawa". PHP, Python, Ruby, Pearl, Java cocok kanggo backend web . Ing kene aku pengin menehi perhatian marang PHP - kita bakal ngomong babagan basa liyane mengko - salah sawijining basa sing paling gampang dipelajari, sing duwe ambang entri sing sithik. Ruby, miturut survey saka pangembang web sing akrab, alon-alon nanging mesthi entuk popularitas: ditresnani amarga ringkes lan kaendahane.

Non-Web (Enterprise, Desktop, Mobile)

Aku khusus nglumpukake basa pamrograman kasebut dadi kategori kanthi jeneng sing aneh. Umume bisa digunakake kanggo nulis perusahaan, desktop, lan malah aplikasi seluler. Python , OOLP sing gampang dimangerteni, bubar dadi populer amarga pangembangan Machine Learning : para penganut akeh nggunakake Python. ML minangka wilayah sing cukup enom ing IT, lan sanajan woh-wohan pisanan wis ditampa, aku ora bakal cepet-cepet nyilem ing industri iki nalika milih basa pamrograman. Kaping pisanan, sampeyan kudu pinter matematika. Kapindho, gelombang popularitas bisa uga padha karo "blockchain" utawa "nanoteknologi". Kajaba iku, nalika sampeyan ngelingi, Python digunakake ing pangembangan web. C ++ : klasik, kabeh wis dibangun ing basis saka "plus". Basa iki minangka leluhur saka kabeh OOLP sing populer, lan pamula mesthine kudu menehi perhatian. Akeh aplikasi populer adhedhasar iku. Nanging kemungkinan dhuwur "nembak dhewe ing sikil" lan sintaks sing angel dimangerteni negate kemungkinan pamula nguwasani program mastodon iki. Kotlin - Java kanggo hipsters - campuran gila OOP lan program fungsional. Bubar populer amarga pangembang sing berpengalaman sing ngalih saka Jawa menyang Kotlin kanthi signifikan nambah produktivitas. Pangembang sing berpengalaman bakal cepet digunakake ing basa iki. Miturut cara, padha ditrapake kanggo Scala, nanging Kotlin populer ing Android. Jawa iku gampang kanggo pamula sinau. Kalebu, thanks kanggo JavaRush : ing kene aku ngerti carane milih basa pamrograman =) Sintaks Java jelas, ana kemungkinan "nembak dhewe ing sikil", nanging ora kritis.

OOP utawa POP?

Pendekatan prosedural

Pendekatan berorientasi prosedur kalebu nulis program sing kasusun saka statement sekuensial sing bisa dirakit dadi siji kanggo ngrampungake masalah tartamtu kanthi efektif. Basa kasebut kalebu: C , PureBasic lan Pascal . Semono uga sing ndadekke rasa kuciwa marang para siswa SMA lan SMP. Ana uga GO sing relatif enom . Nanging, akrab karo basa prosedural migunani banget kanggo pangembang potensial. Kanggo kula, kecemplung ing basa prosedural digandhengake karo sistem Mathematica (Wolfram) lan kegiatan riset universitas. Thanks kanggo pendekatan algoritmik sing tepat lan tata cara sing prasaja, obah kanthi linear saka wiwitan program nganti pungkasan, aku bisa ngetung nilai sing cocog karo fisika teoritis modern. Thanks kanggo basa "sekuensial" iki, mula sampeyan ngerti manawa kadhangkala luwih gampang nulis kode tinimbang ngitung dhewe. Sinau PPP nyedhiyakake latihan algoritma sing apik, sing meh tansah pengin dideleng ing calon nalika nyewa. Dasar kabeh lan kabeh wong ing IT dibangun ing basa prosedural, mula aja ngremehake. Miturut cara, pamula sing mutusake basa pamrograman sing dipilih kanggo sinau asring mikir manawa multithreading minangka prerogatif eksklusif OOP. Iki salah. Basa pemrograman prosedural uga ngidini sampeyan nindakake petungan paralel.
Milih basa pamrograman - 3

Pendekatan berorientasi obyek

Wong-wong sing miwiti nganggo basa prosedural paling kerep duwe kawruh sing apik babagan matématika, algoritma lan struktur data (iki amarga penekanan ing bidang kawruh ing universitas teknis). Nanging, ing kasunyatan modern, programer sukses asring sing wis nguwasani pendekatan liyane kanggo program - object-oriented. Ideologi OOP ndadekake iku bisa kanggo mbangun sistem saestu global. Keanehan pendekatan iki yaiku mirip karo jagad nyata:
  • macem-macem obyek sesambungan karo saben liyane lan ana independen saka saben liyane.
  • obyek duwe hirarki lan bisa ngadopsi utawa ngganti prilaku leluhure.
  • Sampeyan bisa operate karo konsep abstrak, nanging mung obyek tenan ana bisa sesambungan.

Tuladha

Basa berorientasi prosedural minangka alat kanggo ngrampungake masalah tartamtu. Lan yen tugas sampeyan wis ngalami owah-owahan, sanajan cilik, sampeyan bakal kudu nglampahi wektu lan gaweyan kanggo nulis ulang kabeh 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. Документация.

    Basis dokumentasi paling jembar: dokumentasi Oracle resmi, portal pelatihan, komunitas sing terus berkembang. Jawaban kanggo paling pitakonan sing muncul sajrone pembangunan bisa ditemokake ing sawetara menit, sing utama yaiku ngerti apa sing kudu diketik ing mesin telusur =)

  3. Popularitas.

    Java minangka basa pamrograman sing paling populer ing donya: saliyane pangembang Android lan web sing kasebut ing ndhuwur, meh saben pangembang perusahaan pisanan nulis ing Jawa. Enterprise minangka pangembangan internal sing dibutuhake kanggo kabutuhan perusahaan gedhe.

    Saben taun, para sengit prédhiksi "mati Jawa", ujare: " Oracle bakal mandheg ndhukung, lan umume sampeyan nindakake omong kosong ." Iki salah! Versi Jawa anyar dijanjekake bakal dirilis saben nem sasi. Inovasi lan fitur paling penting saka versi paling anyar bisa diwaca kene .

    Kanggo kula, lambdas ing Jawa 8 minangka revolusi lan panemuan, ora kanggo sebutno versi anyar! Saiki aku lagi nggarap proyek "retrograde", mula aku ora nyelidiki inovasi, nanging kasunyatan sing urip ing Jawa iku kasunyatan.

    Milih basa pamrograman - 4
  4. Android.

    Android kanthi yakin nguwasani luwih saka 80% pasar ponsel sajrone 4 taun kepungkur; TV, pamuter media lan malah sistem media ing mobil beroperasi ing sistem operasi iki. Lan pangembangan kanggo OS iki ditindakake utamane ing Jawa. Bayangake apa prospek sing mbukak. Nalika aku entuk pakaryan minangka pangembang Android, aku dadi kasengsem: pinten biaya prodhuk sing lagi dikembangake? Pranyata rega saben taun kira-kira $5. Pitakonan sing cukup muncul: saka ngendi dana kanggo kantor iki, kanggo gaji, cookie, meja tenis, robot lan "barang-barang apik" liyane? Iku masalah kuantitas: aplikasi kita duwe 20 yuta pangguna.

  5. Gajih.

    Lan kanggo panganan cuci mulut: gaji pangembang Jawa minangka salah sawijining sing paling dhuwur ing industri. Sampeyan bakal sinau pemrograman kanggo tujuan tartamtu: entuk kerja sing apik.

Popularitas basa pamrograman

Nalika milih basa pamrograman, sampeyan kudu mikir babagan tujuan utama sinau - entuk kerja pertama. Kanggo netepake popularitas basa sing beda-beda, aku lunga menyang portal rekrutmen populer lan wiwit ndeleng nomer lowongan kanggo macem-macem panjalukan kanggo Moskow. Sampeyan bisa ndeleng asil ing ngisor iki.
Jawa: 277
python: 227
php: 188
c#: 147
c++: 131
rubi: 40
skala: 24
kotlin: 20
Malah Python sing bubar populer ora bisa ndhisiki Jawa. Nanging iki data subyektif: kutha tartamtu, dina tartamtu. Ana sumber resmi, ayo goleki. Wiwit Oktober 2018, miturut TIOBE, Jawa dadi peringkat pertama. Ing peringkat PYPL , Jawa njupuk Panggonan liya, adoh ahead saka JS lan saingan karo Python "modis".

Asil

Mangkene apa sing kudu digatekake pamula nalika milih basa pamrograman:
  • Popularitas (Jawa terus-terusan manggoni posisi utama);
  • Ambang entri (Kanggo Jawa - rata-rata: jangkoan kompetensi sing dibutuhake dening majikan cukup jembar);
  • Bahan sing kasedhiya (ora ana portal sing padha karo JavaRush ing basa Rusia, mula palem bisa ngira sapa =));
  • Wilayah aplikasi: luwih akeh industri ing ngendi basa pamrograman bisa digunakake, luwih akeh spesialis sing dibutuhake ing pasar. Aku wis ngomong babagan cross-platform, nanging aku ora bakal bosen mbaleni.
Mesthi wae ana pitfalls ing endi wae, nanging sing mlaku bakal nguwasani dalan: mung sampeyan sing bisa milih basa pamrograman . Good luck ing pasinaon!
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION