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ı.
Veb yoxsa Veb yox?
Veb
Veb proqramçıları Frontend və Backend 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ə, HTML və CSS-ni başa düşmək lazımdır .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 , PureBasic və Pascal . 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.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но-ориентированном подходе нужно просто описать базовый класс ТРАНСПОРТ, который будет хранить в себе характеристики, присущие и тому, и другому типу автомобилей:
И методы для ввода-вывода информации. Затем создадим an objectы, наследующие характеристики класса ТРАНСПОРТ: ЛЕГКОВУШКА и ГРУЗОВИК. Они содержат уточнённую информацию, присущую именно таким видам транспорта, а также методы ввода-вывода. Внезапно руководство салона решило расширить ассортимент и продавать еще и мотоциклы. Процедурный подход предложит переписать всю логику для новых и б/у мотоциклов с самого начала, в то время How ООП-язык позволит просто создать новый an object МОТОЦИКЛ, наследующий все характеристики суперкласса ТРАНСПОРТ и содержащий уточнения. А что будет, если добавлять разные транспортные средства? Процедурная реализация будет требовать больших трудозатрат, чем ООП. Причем чем больше ассортимент, тем меньше нужно будет делать манипуляций с an objectми. |
- ООП предполагает независимую разработку отдельных модулей, предоставляя программисту or команде выбирать способ и границы соприкосновений и обмена информацией.
- Разбиение на небольшие модули намного проще для восприятия, чем монолитные proceduresы. Благодаря этому сторонний разработчик быстро разберется в твоем codeе, а ты при необходимости войдешь в новый проект.
- Изменение одного an object может ниHow не отразиться на взаимодействии с другим, но способно повлиять на иерархию дочерних an objectов. Освоив такой подход, расширение и доработка программы становится тривиальной задачей.
-
Кроссплатформенность.
Java работает везде благодаря JVM —виртуальной машине Java. Один из главных плюсов этого языка — кроссплатформенность: не нужно думать о том, Howую библиотеку подключить, Howова архитектура у конкретного процессора. «Написано однажды —работает всегда».
-
Документация.
Ə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üş =)
-
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.
-
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.
-
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 |
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.
GO TO FULL VERSION