JavaRush /Java блогы /Random-KK /Бағдарламалау тілін таңдау
Алексей Дмитревский
Деңгей
Москва

Бағдарламалау тілін таңдау

Топта жарияланған
Мен бағдарламалауды алғаш мектепте, информатика сабағында кездестірдім. Бұл n-арлы санау жүйелерінің принциптерін жалықтыратын түсініктемелер болды. Сынақ ретінде мен өз сайтымды жазуға тура келді. Сонда маған дүниеде қызықсыз әрекет жоқ сияқты көрінді. Мен қаншалықты қателестім! Өкінішке орай, мектептегі информатика пәнінің оқу жоспары АТ жұмысының толық көрінісін бермейді және бағдарламалау тілін қалай таңдау керектігі түсініксіз. Бағдарламалау тілін таңдау – 1«Қандай бағдарламалау тілін үйрену үшін таңдау керек» деген сұрақты қоймас бұрын, бастаушы қандай тілдер бар және олардың айырмашылығы неде екенін білуі керек.

Кіру шегі: жоғары, төмен, орташа

Бағдарламашылар арасында сіз «кіру шегі» туралы жиі естисіз - бұл жеке «кіші» студентке өзінің алғашқы маңызды бағдарламасын жазу және жұмыс табу үшін жеткілікті деңгейде бағдарламалау тілін меңгеру үшін қажет күш-жігер көлемін көрсететін тұжырымдама. «Кіру шегі» білімнен тұрады:
  • синтаксис ерекшеліктері мен тіл реңктері;
  • кітапханалар;
  • алгоритмдер және деректер құрылымдары.
Шындығында, тіпті Excel-де жұмыс істеуді бағдарламалаудың бір түрі деп атауға болады. Айтпақшы, бұл таныс кеңсе бағдарламасы көрінгендей қарапайым емес. Біреуі үшін кіру шегі кесте құру мүмкіндігі болады, екіншісі үшін - күрделі формулалар мен макростарды білу. Қалай болғанда да, бұл шек аз. Одан кейін квазитілдер келеді: мысалы, бағдарламалау. Содан кейін - үйренуге оңай тілдер: мысалы, PHP . Одан әрі жадпен қолмен әрекеттесуді қажет етпейтін жергілікті (әдетте ағылшын тілінен алынған) синтаксисі бар тілдер: мысалы, Java , JS . Одан кейін жадты, деректер құрылымдарын және алгоритмдерді өте мұқият өңдеуді қажет ететін тілдер бар: мысалы, C , C++ . Жас көп парадигмалық тілдерде кіруге ең жоғары кедергі болуы мүмкін, өйткені оларды меңгеру үшін басқа бағдарламалау тілдерінде бірнеше ит жеу керек: мысалы, Scala . Бірақ, ең алдымен, тілді таңдағанда, бұдан әрі не істегіңіз келетінін шешу керек: веб, кәсіпорын, жұмыс үстелі немесе мобильді қосымшаларды әзірлеу.

Веб немесе веб емес пе?

желі

Веб-бағдарламашыларды Frontend және Backend әзірлеушілеріне бөлуге болады . Бұл терминдердің нені білдіретінін түсіну керек. «Frontend» әзірлеушілері пайдаланушы көретін клиенттік жағымен айналысады. «Бакэнд» - serverде жұмыс істейтін қызметтің бағдарламалық және аппараттық бөлігі. Қандай бағдарламалау тілін таңдау керектігін шешетін Frontend әзірлеушісі үшін JavaScript және оның құрылымдары болуы керек : Angular JS, React және т.б. JS диалектілері ата-анасы сияқты танымал емес, бірақ пайдалы болуы мүмкін: CoffeeScript, TypeScript. Сондай-ақ флэш AS бар, бұрын JScript және VBScript болған, бірақ тек динозаврлар мұны есте сақтайды =) Сонымен қатар, HTML және CSS түсіну керек .
Бағдарламалау тілін таңдау – 2
Көптеген жаңадан бастаушылар JavaScript және Java дерлік бірдей нәрсе деп ойлайды; бұл тілдерді шатастырмау керек. JS бұрын «LiveScript» деп аталды және «Java» сөзінің танымал болуына байланысты қазіргі атауын алды. PHP, Python, Ruby, Pearl, Java веб-serverге қолайлы . Бұл жерде мен PHP- ге назар аударғым келеді - біз басқа тілдер туралы кейінірек айтатын боламыз - үйренуге оңай тілдердің бірі, оның кіру шегі төмен. Таныс веб-әзірлеушілердің сауалнамасы бойынша Ruby баяу, бірақ сенімді түрде танымал бола бастады: ол өзінің қысқалығы мен әдемілігі үшін жақсы көреді.

Веб емес (кәсіпорын, жұмыс үстелі, мобильді)

Мен бұл бағдарламалау тілдерін ерекше атаумен санатқа топтадым. Олардың көпшілігі кәсіпорын, жұмыс үстелі және тіпті мобильді қосымшаларды жазу үшін пайдаланылуы мүмкін. Python , түсінуге оңай OOLP, соңғы уақытта Machine Learning дамуының арқасында керемет танымал болды : оны ұстанушылар Python-ды кеңінен пайдаланады. ML - бұл IT саласындағы өте жас сала, және алғашқы жемістер қазірдің өзінде алынғанымен, мен бағдарламалау тілін таңдағанда осы салаға енуге асықпас едім. Біріншіден, сіз математиканы өте жақсы білуіңіз керек. Екіншіден, танымалдық толқыны «блокчейн» немесе «нанотехнология» сияқты жүруі мүмкін. Бұған қоса, есіңізде болса, Python веб-әзірлеуде қолданылады. C++ : классикалық, бәрі «плюс» негізінде құрылған. Бұл тіл барлық танымал OOLP-тің бастаушысы болды және жаңадан бастаған адам оған міндетті түрде назар аударуы керек. Көптеген танымал қолданбалар соған негізделген. Бірақ «аяққа атудың» жоғары ықтималдығы және түсіну қиын синтаксис бағдарламалаудың осы мастодонын меңгеру ықтималдығын жоққа шығарады. Котлин - хипстерлерге арналған Java - OOP және функционалдық бағдарламалаудың керемет қоспасы. Жақында танымал болды, себебі Java-дан Котлинге ауысатын тәжірибелі әзірлеуші ​​оның өнімділігін айтарлықтай жақсартады. Тәжірибелі әзірлеуші ​​бұл тілге тез үйреніп кетеді. Айтпақшы, бұл Scala-ға да қатысты, бірақ Котлин Android жүйесінде танымал. Жаңадан бастаушыларға Java үйрену оңай. Соның ішінде JavaRush арқасында : мен бағдарламалау тілін қалай таңдауға болатынын дәл осы жерде түсіндім =) Java синтаксисі түсінікті, «аяққа ату» мүмкіндігі бар, бірақ маңызды емес.

OOP немесе POP?

Процедуралық тәсіл

Процедура-бағытталған тәсіл есептердің белгілі бір ауқымын тиімді шешу үшін бір бүтінге жинақталатын тізбекті мәлімдемелерден тұратын бағдарламаны жазуды қамтиды. Бұл тілдерге мыналар кіреді: C , PureBasic және Pascal . Жоғары және кіші сынып оқушыларының көңілін түсіретін де сол. Сондай-ақ салыстырмалы түрде жас GO бар . Дегенмен, әлеуетті әзірлеуші ​​үшін proceduresалық тілдермен танысу өте пайдалы. Мен үшін proceduresалық тілдерге ену Mathematica жүйесімен (Вольфрам) және университеттің ғылыми қызметімен байланысты. Дұрыс алгоритмдік тәсілдер мен қарапайым proceduresалардың арқасында, бағдарламаның басынан аяғына дейін сызықты түрде жылжи отырып, мен қазіргі теориялық физикаға сәйкес келетін мәндерді есептей алдым. Дәл осы «тізбекті» тілдердің арқасында сіз кейде өз бетіңізбен санаудан гөрі code жазу оңайырақ екенін түсіне бастайсыз. МЖӘ оқу жақсы алгоритмдік оқытуды қамтамасыз етеді, оны жұмыс беруші жұмысқа қабылдау кезінде әрдайым дерлік кандидаттан көргісі келеді. АТ-тағы барлық нәрсенің және әрбір адамның негіздері proceduresалық тілдерге негізделген, сондықтан оларды бағаламаңыз. Айтпақшы, үйрену үшін қандай бағдарламалау тілін таңдау керектігін шешетін жаңадан бастаушылар көп ағынды ООП-тың ерекше құқығы деп ойлайды. Бұл олай емес. Процедуралық бағдарламалау тілдері сонымен қатар параллельді есептеулерді орындауға мүмкіндік береді.
Бағдарламалау тілін таңдау – 3

Объектіге бағытталған тәсіл

Процедуралық тілдерден бастағандар көбінесе математиканы, алгоритмдерді және деректер құрылымдарын жақсы біледі (бұл техникалық университеттердегі білімнің осы салаларына баса назар аударуға байланысты). Дегенмен, қазіргі заманғы шындықта табысты бағдарламашылар көбінесе бағдарламалаудың басқа тәсілін - an objectілі-бағыттылықты жақсы меңгерген адамдар болып табылады. OOP идеологиясы шынымен жаһандық жүйелерді құруға мүмкіндік береді. Бұл тәсілдің ерекшелігі оның шынайы әлемге ұқсастығы болып табылады:
  • әртүрлі an objectілер бір-бірімен әрекеттеседі және бір-бірінен тәуелсіз өмір сүреді.
  • нысандар иерархияға ие және олардың ата-бабаларының мінез-құлқын қабылдауға немесе өзгертуге қабілетті.
  • Сіз дерексіз ұғымдармен жұмыс істей аласыз, бірақ тек шын мәнінде бар нысандар өзара әрекеттесе алады.

Мысал

Процедуралық-бағытталған тілдер нақты мәселелерді шешуге арналған құралдар болып табылады. Егер сіздің тапсырмаңыз, тіпті шамалы болса да, өзгеріске ұшыраған болса, барлық алгоритмдерді қайта жазуға уақыт пен күш жұмсауыңыз мүмкін.

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

    Ең кең құжаттама базасы: ресми Oracle құжаттамасы, оқыту порталдары, үнемі дамып келе жатқан қауымдастық. Әзірлеу кезінде туындайтын көптеген сұрақтарға жауаптарды бірнеше minutes ішінде табуға болады, ең бастысы - іздеу жүйесіне не теру керектігін түсіну =)

  3. Танымалдық.

    Java әлемдегі ең танымал бағдарламалау тілі болып табылады: жоғарыда аталған Android және веб-әзірлеушілерден басқа, әрбір бірінші рет кәсіпорын әзірлеушілері Java тілінде жазады. Кәсіпорын – бұл ірі корпорациялардың қажеттіліктері үшін қажетті ішкі даму.

    Жыл сайын жек көретіндер «Яваның өлімін» болжайды, олар: « Oracle оны қолдауды тоқтатады, ал жалпы сіз бос сөз істеп жатырсыз » дейді. Бұл олай емес! Java-ның жаңа нұсқалары әр алты ай сайын шығарылады деп уәде етілген. Соңғы нұсқаның ең маңызды жаңалықтары мен мүмкіндіктерін осы жерден оқуға болады .

    Мен үшін Java 8-дегі ламбдалар жаңа нұсқаларды айтпағанда, революция және жаңалық болды! Қазір мен «ретроградтық» жобамен жұмыс істеп жатырмын, сондықтан мен инновацияларға араласпаймын, бірақ Java әлі де өмір сүретіні - бұл факт.

    Бағдарламалау тілін таңдау – 4
  4. Android.

    Android соңғы 4 жылда ұялы телефондар нарығының 80%-дан астамын сенімді түрде иеленді ; теледидарлар, медиа ойнатқыштар және тіпті автомобильдердегі медиа жүйелер осы операциялық жүйеде жұмыс істейді. Және бұл ОЖ үшін әзірлеу негізінен Java тілінде жүзеге асырылады. Қандай перспективалар ашылып жатқанын елестетіп көріңіз. Мен Android әзірлеушісі ретінде жұмысқа орналасқанда, мені қызықтырды: мен жасап жатқан өнім қанша тұрады? Жылына шамамен 5 доллар тұратыны белгілі болды. Ақылға қонымды сұрақ туындады: бұл кеңсеге, жалақыға, печеньеге, теннис үстеліне, роботтарға және басқа да «жақсы заттарға» қаражат қайдан келді? Бұл сандық мәселе: біздің қосымшамызда 20 миллион пайдаланушы бар.

  5. Жалақылар.

    Ал десерт үшін: Java әзірлеушісінің жалақысы саладағы ең жоғары жалақының бірі болып табылады. Сіз белгілі бір мақсат үшін бағдарламалауды үйренесіз: жақсы жұмысқа орналасу.

Бағдарламалау тілінің танымалдылығы

Бағдарламалау тілін таңдағанда оқудың түпкі мақсаты – бірінші жұмысты алу туралы ойлану керек. Әртүрлі тілдердің танымалдылығын бағалау үшін мен танымал рекрутинг порталына кіріп , Мәскеуге әртүрлі сұраныстар бойынша бос жұмыс орындарының санын қарай бастадым. Нәтижелерді төменде көре аласыз.
Java: 277
питон: 227
php: 188
c#: 147
c++: 131
рубин: 40
скала: 24
Котлин: 20
Тіпті жақында танымал Python Java-дан озып кете алмады. Бірақ бұл субъективті деректер: белгілі бір қала, белгілі бір күн. Ресми дереккөздер бар, соларға жүгінейік. 2018 жылдың қазан айындағы жағдай бойынша, TIOBE мәліметтері бойынша Java бірінші орында тұр. PYPL рейтингінде Java екінші орын алады, JS-тен әлдеқайда алда және «сәнді» Python-мен бәсекелеседі.

НӘТИЖЕЛЕР

Бағдарламалау тілін таңдауда жаңадан бастаушы мыналарға назар аударуы керек:
  • Танымалдық (Java тұрақты түрде жетекші орын алады);
  • Кіру шегі (Java үшін – орташа: жұмыс беруші талап ететін құзыреттер ауқымы айтарлықтай кең);
  • Қол жетімді материалдар (орыс тілінде JavaRush-қа ұқсас порталдар жоқ, сондықтан пальма кім екенін болжайды =));
  • Қолдану салалары: бағдарламалау тілін қолдануға болатын салалар неғұрлым көп болса, нарықта соғұрлым көп мамандар қажет. Мен кросс-платформа туралы айттым, бірақ оны қайталаудан жалықпаймын.
Әрине, барлық жерде тұзақтар бар, бірақ жаяу жүрген адам жолды меңгереді: тек сіз қандай бағдарламалау тілін таңдау керектігін шеше аласыз . Оқуларыңызға сәттілік!
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION