JavaRush /Java Blogu /Random-AZ /Proqramlaşdırma dilinin seçilməsi

Proqramlaşdırma dilinin seçilməsi

Qrupda dərc edilmişdir
Proqramlaşdırma ilə ilk dəfə məktəbdə, informatika dərslərində rastlaşdım. Bunlar n-ar say sistemlərinin prinsiplərinin bəzi yorucu izahları idi. Yaxşı, bir sınaq olaraq, öz veb saytımı yazmalı oldum. Sonra mənə elə gəldi ki, dünyada daha darıxdırıcı fəaliyyət yoxdur. Nə qədər səhv etdim! Təəssüf ki, məktəb informatika kurikulumunda İT-nin işi haqqında tam təsəvvür yoxdur və proqramlaşdırma dilinin necə seçiləcəyi aydın deyil. Proqramlaşdırma dilinin seçilməsi - 1“Hansı proqramlaşdırma dilini öyrənmək üçün seçmək lazımdır” sualını verməzdən əvvəl yeni başlayanlar hansı dillərin mövcudluğu və onların fərqləri ilə tanış olmalıdırlar.

Giriş həddi: yüksək, aşağı, orta

Proqramçılar arasında tez-tez "giriş həddi" haqqında eşitmək olar - fərdi "kiçik" üçün ilk ciddi proqramını yazmaq və iş tapmaq üçün kifayət qədər səviyyədə proqramlaşdırma dilini mənimsəmək üçün tələb olunan səylərin miqdarını əks etdirən konsepsiya. “Giriş həddi” biliklərdən ibarətdir:
  • dilin sintaksisinin xüsusiyyətlərini və nüanslarını;
  • kitabxanalar;
  • alqoritmlər və məlumat strukturları.
Əslində, hətta Excel-də işləməyi bir növ proqramlaşdırma adlandırmaq olar. Yeri gəlmişkən, bu tanış ofis proqramı göründüyü qədər sadə deyil. Biri üçün giriş həddi cədvəl qurmaq bacarığı, digəri üçün mürəkkəb düsturlar və makrolar haqqında bilik olacaq. Hər halda, bu hədd kiçikdir. Sonra kvazi dillər gəlir: məsələn, 1C proqramlaşdırma. Sonra - öyrənmək üçün ən asan dillər: məsələn, PHP . Sonra yaddaşla əl ilə qarşılıqlı əlaqə tələb etməyən yerli (adətən ingilis dilindən alınmış) sintaksisi olan dillərdir: məsələn, Java , JS . Sonra yaddaşın, məlumat strukturlarının və alqoritmlərin son dərəcə diqqətli işləməsini tələb edən dillər var: məsələn, C , C++ . Gənc çox paradiqma dilləri, bəlkə də, giriş üçün ən yüksək maneəyə malikdir, çünki onları mənimsəmək üçün digər proqramlaşdırma dillərində birdən çox it yemək lazımdır: məsələn, Scala . Ancaq ilk növbədə, dil seçərkən, bundan sonra nə etmək istədiyinizə qərar verməlisiniz: veb, müəssisə, iş masası və ya mobil proqramlar hazırlamaq.

Veb yoxsa Veb yox?

Veb

Veb proqramçıları FrontendBackend tərtibatçılarına bölmək olar . Bu terminlərin nə demək olduğunu başa düşməyə dəyər. "Frontend" tərtibatçıları sözdə müştəri tərəfi ilə məşğul olurlar - istifadəçinin görəcəyi şey. “Backend” xidmətin proqram və aparat hissəsidir – serverdə işləyənlər. Hansı proqramlaşdırma dilini seçəcəyinə qərar verən Frontend tərtibatçısı üçün mütləq JavaScript və onun çərçivələri olmalıdır : Angular JS, React və s. JS dialektləri ana kimi məşhur deyil, lakin faydalı ola bilər: CoffeeScript, TypeScript. Flash AS da var, əvvəllər JScript və VBScript var idi, lakin yalnız dinozavrlar bunu xatırlayır =) Bundan əlavə, HTMLCSS-ni başa düşmək lazımdır .
Proqramlaşdırma dilinin seçilməsi - 2
Bir çox yeni başlayanlar JavaScript və Java-nın demək olar ki, eyni şey olduğunu düşünür; bu dilləri qarışdırmaq olmaz. JS əvvəllər “LiveScript” adlanırdı və indiki adını məhz “Java” sözünün populyarlığına görə almışdır. PHP, Python, Ruby, Pearl, Java web backend üçün uyğundur . Burada PHP -yə diqqəti cəlb etmək istərdim - başqa dillər haqqında daha sonra danışacağıq - öyrənilməsi ən asan dillərdən biri, giriş həddi aşağıdır. Ruby, tanış veb tərtibatçılarının sorğusuna əsasən, yavaş-yavaş, lakin şübhəsiz ki, populyarlıq qazanır: qısalığı və gözəlliyi ilə sevilir.

Qeyri-Veb (Müəssisə, Masaüstü, Mobil)

Mən xüsusi olaraq bu proqramlaşdırma dillərini belə qəribə adla bir kateqoriyaya qruplaşdırdım. Onların əksəriyyəti müəssisə, iş masası və hətta mobil proqramlar yazmaq üçün istifadə edilə bilər. Python , asan başa düşülən OOLP, Maşın Öyrənməsinin inkişafı sayəsində son zamanlarda inanılmaz dərəcədə populyarlaşdı : onun tərəfdarları Python-dan geniş istifadə edirlər. ML İT sahəsində kifayət qədər gənc bir sahədir və ilk meyvələr artıq alınsa da, proqramlaşdırma dilini seçərkən bu sənayeyə dalmağa tələsməzdim. Birincisi, riyaziyyatda çox yaxşı olmalısan. İkincisi, populyarlıq dalğası “blokçeyn” və ya “nanotexnologiya” ilə eyni şəkildə gedə bilər. Bundan əlavə, xatırladığınız kimi, Python veb inkişafında istifadə olunur. C++ : klassik, hər şey “artılar” əsasında qurulub. Bu dil bütün populyar OOLP-lərin əcdadı idi və bir başlanğıc mütləq ona diqqət yetirməlidir. Bir çox məşhur proqramlar buna əsaslanır. Ancaq "özünüzü ayağınıza vurma" ehtimalının yüksək olması və çətin başa düşülən sintaksis bir başlanğıcın proqramlaşdırmanın bu mastodonunu mənimsəməsi ehtimalını rədd edir. Kotlin - hipsterlər üçün Java - OOP və funksional proqramlaşdırmanın çılğın qarışığı. Java-dan Kotlin-ə keçən təcrübəli tərtibatçının məhsuldarlığını əhəmiyyətli dərəcədə yaxşılaşdırdığı üçün son zamanlarda populyarlaşdı. Təcrübəli tərtibatçı bu dilə tez öyrəşəcək. Yeri gəlmişkən, eyni şey Scala-ya da aiddir, lakin Kotlin Android-də məşhurdur. Java yeni başlayanlar üçün öyrənmək asandır. O cümlədən, JavaRush sayəsində : proqramlaşdırma dilini necə seçməyi burada başa düşdüm =) Java sintaksisi aydındır, "özünüzü ayağınıza vurmaq" ehtimalı var, lakin kritik deyil.

OOP yoxsa POP?

Prosessual yanaşma

Prosedur yönümlü yanaşma, müəyyən bir sıra problemlərin effektiv həlli üçün vahid bütövlükdə yığıla bilən ardıcıl ifadələrdən ibarət proqramın yazılmasını nəzərdə tutur. Bu dillərə daxildir: C , PureBasicPascal . Orta məktəb və kiçik tələbələrə ümidsizlik gətirən eyni şeylər. Nisbətən gənc GO da var . Bununla belə, prosedur dilləri ilə tanışlıq potensial tərtibatçı üçün çox faydalıdır. Mənim üçün prosedur dillərinə immersion Mathematica sistemi (Wolfram) və universitetin tədqiqat fəaliyyəti ilə bağlıdır. Düzgün alqoritmik yanaşmalar və sadə prosedurlar sayəsində, proqramın əvvəlindən sonuna qədər xətti hərəkət edərək, müasir nəzəri fizikaya uyğun olan dəyərləri hesablaya bildim. Məhz bu "ardıcıl" dillər sayəsində başa düşməyə başlayırsınız ki, bəzən kod yazmaq öz başınıza saymaqdan daha asandır. PPP-nin öyrənilməsi, işəgötürənin işə götürərkən demək olar ki, həmişə namizəddə görmək istədiyi yaxşı alqoritmik təlim təmin edir. İT-də hər şeyin və hər kəsin əsasları prosedur dilləri üzərində qurulur, ona görə də onları qiymətləndirməyin. Yeri gəlmişkən, öyrənmək üçün hansı proqramlaşdırma dilini seçəcəyinə qərar verən yeni başlayanlar çox vaxt düşünürlər ki, multithreading OOP-un müstəsna hüququdur. Bu səhvdir. Prosedur proqramlaşdırma dilləri də paralel hesablamalar aparmağa imkan verir.
Proqramlaşdırma dilinin seçilməsi - 3

Obyekt yönümlü yanaşma

Prosedur dilləri ilə başlayanlar ən çox riyaziyyat, alqoritmlər və məlumat strukturları haqqında yaxşı biliyə malikdirlər (bu, texniki universitetlərdə bu bilik sahələrinə vurğu ilə bağlıdır). Bununla belə, müasir reallıqlarda müvəffəqiyyətli proqramçılar çox vaxt proqramlaşdırmaya başqa bir yanaşma - obyekt yönümlü yanaşmanı yaxşı mənimsəmişlərdir. OOP ideologiyası həqiqətən qlobal sistemlər qurmağa imkan verir. Bu yanaşmanın özəlliyi onun real dünyaya oxşarlığıdır:
  • müxtəlif obyektlər bir-biri ilə qarşılıqlı əlaqədə olur və bir-birindən asılı olmayaraq mövcuddur.
  • obyektlər bir iyerarxiyaya malikdir və əcdadlarının davranışını mənimsəməyə və ya dəyişdirməyə qadirdir.
  • Siz mücərrəd anlayışlarla işləyə bilərsiniz, lakin yalnız həqiqətən mövcud olan obyektlər qarşılıqlı əlaqədə ola bilər.

Misal

Prosedur yönümlü dillər konkret problemlərin həlli üçün alətlərdir. Və əgər tapşırığınız kiçik olsa belə dəyişikliyə məruz qalıbsa, çox güman ki, bütün alqoritmləri yenidən yazmağa vaxt və səy sərf etməli olacaqsınız.

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

    Ən geniş sənədləşmə bazası: rəsmi Oracle sənədləri, təlim portalları, daim inkişaf edən icma. İnkişaf zamanı yaranan əksər suallara cavablar bir neçə dəqiqə ərzində tapıla bilər, əsas odur ki, axtarış sisteminə nə yazacağını başa düş =)

  3. Populyarlıq.

    Java dünyada ən populyar proqramlaşdırma dilidir: yuxarıda qeyd olunan Android və veb tərtibatçılarına əlavə olaraq, demək olar ki, hər bir ilk müəssisə tərtibatçıları Java-da yazır. Müəssisə böyük korporasiyaların ehtiyacları üçün zəruri olan daxili inkişafdır.

    Hər il nifrət edənlər "Java-nın ölümünü" proqnozlaşdırırlar, deyirlər: " Oracle onu dəstəkləməyi dayandıracaq və ümumiyyətlə cəfəngiyat edirsiniz ." Bu səhvdir! Java-nın yeni versiyalarının hər altı aydan bir buraxılacağı vəd edilir. Ən son versiyanın ən mühüm yenilikləri və xüsusiyyətlərini burada oxuya bilərsiniz .

    Mənim üçün Java 8-də lambdalar bir inqilab və kəşf idi, yeni versiyaları demirəm! İndi mən “retrograd” layihə üzərində işləyirəm, ona görə də yeniliklərə baş vurmuram, amma Java-nın yaşaması faktdır.

    Proqramlaşdırma dilinin seçilməsi - 4
  4. Android.

    Android son 4 ildə mobil telefon bazarının 80%-dən çoxunu inamla tutur ; televizorlar, media pleyerlər və hətta avtomobillərdəki media sistemləri bu əməliyyat sistemi altında işləyir. Və bu ƏS-in inkişafı əsasən Java-da həyata keçirilir. Təsəvvür edin ki, hansı perspektivlər açılır. Android tərtibatçısı kimi işə düzələndə maraqlandım: inkişaf etdirdiyim məhsulun qiyməti nə qədərdir? Məlum oldu ki, illik qiymət təxminən 5 dollardır. Ağlabatan bir sual yarandı: bu ofis üçün maaşlar, peçenyelər, tennis stolu, robotlar və digər "gözəl şeylər" üçün vəsait haradan gəldi? Bu, kəmiyyət məsələsidir: tətbiqimizin 20 milyon istifadəçisi var.

  5. Maaşlar.

    Və desert üçün: Java tərtibatçısının maaşı sənayedə ən yüksək maaşlardan biridir. Siz müəyyən bir məqsəd üçün proqramlaşdırmanı öyrənəcəksiniz: yaxşı bir iş əldə etmək.

Proqramlaşdırma dilinin populyarlığı

Proqramlaşdırma dilini seçərkən öyrənməyin son məqsədi - ilk işinizi əldə etmək barədə düşünməlisiniz. Müxtəlif dillərin populyarlığını qiymətləndirmək üçün məşhur bir işə qəbul portalına getdim və Moskva üçün müxtəlif sorğular üçün vakansiyaların sayına baxmağa başladım. Nəticələri aşağıda görə bilərsiniz.
Java: 277
piton: 227
php: 188
c#: 147
c++: 131
yaqut: 40
skala: 24
kotlin: 20
Hətta bu yaxınlarda məşhur olan Python Java-dan irəli gedə bilmədi. Ancaq bunlar subyektiv məlumatlardır: konkret şəhər, konkret gün. Rəsmi mənbələr var, onlara müraciət edək. 2018-ci ilin oktyabr ayına olan məlumata görə, TIOBE-ə görə , Java birinci yerdədir. PYPL reytinqində Java, JS-i çox qabaqlayaraq ikinci yeri tutur və “dəbli” Python ilə rəqabət aparır.

NƏTİCƏLƏR

Proqramlaşdırma dilini seçərkən yeni başlayanlar aşağıdakılara diqqət yetirməlidirlər:
  • Populyarlıq (Java ardıcıl olaraq aparıcı mövqe tutur);
  • Giriş həddi (Java üçün - orta: işəgötürənin tələb etdiyi səlahiyyətlər diapazonu kifayət qədər genişdir);
  • Mövcud materiallar (rus dilində JavaRush-a bənzər portallar yoxdur, buna görə də xurma kimin olduğunu təxmin etməyə gedir =));
  • Tətbiq sahələri: proqramlaşdırma dilinin istifadə oluna biləcəyi sənaye nə qədər çox olsa, bazarda bir o qədər çox mütəxəssis tələb olunur. Mən artıq cross-platforma haqqında danışmışam, amma onu təkrarlamaqdan yorulmayacağam.
Əlbəttə ki, hər yerdə tələlər var, amma yeriyən adam yolu mənimsəyəcək: hansı proqramlaşdırma dilini seçəcəyinizə yalnız siz qərar verə bilərsiniz . Təhsilinizdə uğurlar!
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION