JavaRush /Блоги Java /Random-TG /Интихоби забони барномасозӣ

Интихоби забони барномасозӣ

Дар гурӯҳ нашр шудааст
Ман бори аввал бо барномасозӣ дар мактаб, дар дарсҳои информатика дучор шудам. Инҳо баъзе шарҳҳои дилгиркунанда дар бораи принсипҳои системаҳои рақамии n-ary буданд. Хуб, ҳамчун санҷиш, ман бояд вебсайти худро нависам. Баъд ба назарам чунин менамуд, ки дар дунё дигар кори дилгиркунанда нест. Чӣ қадар хато кардам! Мутаассифона, дар барномаи таълимии фанни информатикаи мактабҳо тасвири пурраи кори IT дода нашудааст ва чӣ гуна интихоб кардани забони барномасозӣ маълум нест. Интихоби забони барномасозӣ - 1Пеш аз додани саволи "Кадом забони барномасозиро барои омӯхтан интихоб кардан лозим аст", навомӯз бояд бо кадом забонҳо ва фарқиятҳои онҳо шинос шавад.

Ҳадди дохилшавӣ: баланд, паст, миёна

Дар байни барномасозон, шумо метавонед аксар вақт дар бораи "ҳадди дохилшавӣ" - консепсияе шунидаед, ки миқдори заҳматеро, ки барои як фарди "ҷавон" барои азхуд кардани забони барномасозӣ дар сатҳи кофӣ барои навиштани аввалин барномаи ҷиддии худ ва пайдо кардани ҷои кор лозим аст, инъикос мекунад. "Адди дохилшавӣ" аз дониш иборат аст:
  • хусусиятхои синтаксис ва тобишхои забон;
  • китобхонаҳо;
  • алгоритмҳо ва сохторҳои додаҳо.
Дар асл, ҳатто кор дар Excel метавонад як навъ барномасозӣ номида мешавад. Воқеан, ин барномаи офиси шинос он қадар содда нест, ки ба назар мерасад. Барои яке, ҳадди барои воридшавӣ қобorяти сохтани ҷадвал хоҳад буд, барои дигаре - дониши формулаҳои мураккаб ва макросҳо. Дар ҳар сурат, ин остона хурд аст. Баъдан квазизабонҳо меоянд: масалан, барномасозии 1С . Сипас - осонтарин забонҳо барои омӯхтан: масалан, PHP . Баъдан забонҳое ҳастанд, ки синтаксиси модарӣ (одатан аз забони англисӣ гирифта шудаанд), ки ба ҳамкории дастӣ бо хотира ниёз надоранд: масалан, Java , JS . Пас забонҳое ҳастанд, ки коркарди ниҳоят эҳтиёткоронаи хотира, сохторҳои додаҳо ва алгоритмҳоро талаб мекунанд: масалан, C , C++ . Забонҳои ҷавони парадигмавӣ, эҳтимолан, монеаи баландтарин барои ворид шудан доранд, зеро барои азхуд кардани онҳо шумо бояд беш аз як сагро дар дигар забонҳои барномасозӣ бихӯред: масалан, Scala . Аммо пеш аз ҳама, ҳангоми интихоби забон, шумо бояд қарор кунед, ки минбаъд чӣ кор кардан мехоҳед: таҳияи веб, корхона, мизи корӣ ё барномаҳои мобилӣ .

Веб ё веб нест?

Веб

Барномасозони вебро метавон ба таҳиягарони Frontend ва Backend тақсим кард . Бояд фаҳмем, ки ин истилоҳҳо чӣ маъно доранд. Таҳиягарони "Frontend" бо ҷониби ба истилоҳ муштарӣ сарукор доранд - он чизе ки корбар хоҳад дид. "Backend" қисми нармафзор ва сахтафзори хидмат мебошад, ки дар 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 барои пуштибонии веб мувофиқанд . Дар ин ҷо ман мехоҳам таваҷҷӯҳро ба PHP ҷалб намоям - мо баъдтар дар бораи забонҳои дигар сӯҳбат хоҳем кард - яке аз осонтарин забонҳои омӯхтан, ки ҳадди ақали вуруд дорад. Руби, тибқи назарсанҷии таҳиягарони маъруфи веб, оҳиста-оҳиста, вале бешубҳа маъруфият пайдо мекунад: онро барои кӯтоҳӣ ва зебоии худ дӯст медоранд.

Ғайривеб (корхона, мизи корӣ, мобилӣ)

Ман махсусан ин забонҳои барномасозиро ба категория бо чунин номи аҷиб гурӯҳбандӣ кардам. Аксари онҳо метавонанд барои навиштани корхона, мизи корӣ ва ҳатто барномаҳои мобилӣ истифода шаванд. Python , як OOLP осон фаҳмо, ба наздикӣ аз ҳисоби рушди Machine Learning бениҳоят маъмул шуд : пайравони он Python-ро васеъ истифода мебаранд. ML як соҳаи хеле ҷавон дар IT аст ва гарчанде ки меваҳои аввал аллакай гирифта шудаанд, ман ҳангоми интихоби забони барномасозӣ шитоб намекунам, ки ба ин соҳа ворид шавам. Аввалан, шумо бояд дар математика хеле хуб бошед. Сониян, мавҷи маъруфият метавонад ба ҳамон роҳе равад, ки бо “блокчейн” ё “нанотехнология” меравад. Илова бар ин, тавре ки шумо дар ёд доред, Python дар таҳияи веб истифода мешавад. C++ : классикӣ, ҳама чиз дар асоси "плюсҳо" сохта шудааст. Ин забон пешвои ҳама OOLP-ҳои маъмул буд ва як шурӯъкунанда бояд ҳатман ба он диққат диҳад. Бисёр барномаҳои маъмул дар асоси он. Аммо эҳтимоли баланди "паррондан ба пои худ" ва синтаксиси душворфаҳм эҳтимоли азхуд кардани ин мастодони барномасозиро рад мекунад. Kotlin - Java барои hipsters - омехтаи девона аз OOP ва барномасозии функсионалӣ. Ба наздикӣ маъмул аст, зеро таҳиягари ботаҷрибае, ки аз Java ба Котлин мегузарад, маҳсулнокии худро ба таври назаррас беҳтар мекунад. Таҳиягари ботаҷриба зуд ба ин забон одат мекунад. Воқеан, ин ба Scala дахл дорад, аммо Котлин дар Android маъмул аст. Java барои шурӯъкунандагон омӯхтан осон аст. Аз ҷумла, ба шарофати JavaRush : маҳз дар ҳамин ҷо ман фаҳмидам, ки чӣ гуна забони барномасозиро интихоб кардан лозим аст =) Синтаксиси Java равшан аст, имкони "паррондан ба пои худ" вуҷуд дорад, аммо муҳим нест.

OOP ё POP?

Муносибати мурофиавӣ

Равиши ба тартиб нигаронидашуда навиштани барномаеро дар бар мегирад, ки аз изҳороти пайдарпай иборат аст, ки барои ҳалли самараноки доираи мушаххаси масъалаҳо ба як ягона ҷамъ оварда мешаванд. Ба ин забонҳо дохил мешаванд: C , PureBasic ва Pascal . Ҳамонҳое, ки хонандагони мактаби миёна ва навҷавононро ноумедӣ меоранд. Инчунин як GO нисбатан ҷавон вуҷуд дорад . Аммо, шиносоӣ бо забонҳои мурофиавӣ барои таҳиягари эҳтимолӣ хеле муфид аст. Барои ман, таъмид ба забонҳои мурофиавӣ бо системаи Mathematica (Wolfram) ва фаъолияти тадқиқотии донишгоҳ алоқаманд аст. Ба шарофати равишҳои дурусти алгоритмӣ ва расмиёти оддӣ, ки аз аввали барнома то охири он ба таври хаттӣ ҳаракат карда, ман тавонистам арзишҳоеро ҳисоб кунам, ки ба физикаи назариявии муосир мувофиқанд. Маҳз ба шарофати ин забонҳои "пайвандӣ" шумо мефаҳмед, ки баъзан навиштани code назар ба ҳисоб кардани худ осонтар аст. Омӯзиши PPP омӯзиши хуби алгоритмиро фароҳам меорад, ки корфармо онро қариб ҳамеша ҳангоми ба кор қабул кардан мехоҳад дар номзад бинад. Асосҳои ҳама чиз ва ҳама дар IT бар забонҳои мурофиавӣ сохта шудаанд, бинобар ин онҳоро нодида нагиред. Дар омади гап, шурӯъкунандагоне, ки қарор медиҳанд, ки кадом забони барномасозиро барои омӯхтан интихоб кунанд, аксар вақт фикр мекунанд, ки мултипликатсия имтиёзи истисноии OOP аст. Ин нодуруст аст. Забонҳои барномасозии мурофиавӣ инчунин ба шумо имкон медиҳанд, ки ҳисобҳои параллелӣ анҷом диҳед.
Интихоби забони барномасозӣ - 3

Муносибати ба an object нигаронидашуда

Онҳое, ки бо забонҳои мурофиавӣ оғоз кардаанд, аксар вақт дар бораи математика, алгоритмҳо ва сохторҳои додаҳо дониши хуб доранд (ин бо сабаби таваҷҷӯҳ ба ин соҳаҳои дониш дар донишгоҳҳои техникӣ мебошад). Аммо, дар воқеияти муосир, барномасозони муваффақ аксар вақт онҳое мебошанд, ки равиши дигари барномасозӣ - an object нигаронидашударо хуб азхуд кардаанд. Идеологияи OOP имкон медиҳад, ки системаҳои воқеан глобалӣ бунёд карда шаванд. Хусусияти ин равиш шабоҳати он ба ҷаҳони воқеӣ аст:
  • an objectҳои гуногун бо ҳамдигар амал мекунанд ва новобаста аз ҳамдигар вуҷуд доранд.
  • an objectҳо иерархия доранд ва қодиранд рафтори аҷдодони худро қабул ё тағир диҳанд.
  • Шумо метавонед бо мафҳумҳои абстрактӣ амал кунед, аммо танҳо 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, порталҳои омӯзишӣ, ҷомеаи доимо инкишофёбанда. Ҷавобҳоро ба аксари саволҳое, ки ҳангоми таҳия ба миён меоянд, дар тӯли чанд дақиқа пайдо кардан мумкин аст, чизи асосӣ фаҳмидани он аст, ки дар системаи ҷустуҷӯӣ чӣ нависед =)

  3. Маъруфият.

    Java маъмултарин забони барномасозӣ дар ҷаҳон аст: ба ғайр аз таҳиягарони дар боло зикршудаи Android ва веб, қариб ҳар як таҳиягари корхона бори аввал бо Java менависад. Корхона як рушди дохилӣ мебошад, ки барои эҳтиёҷоти корпоратсияҳои калон зарур аст.

    Ҳар сол нафраткунандагон "марги Java" -ро пешгӯӣ мекунанд, онҳо мегӯянд: " Oracle дастгирии онро қатъ мекунад ва шумо умуман бемаънӣ мекунед ." Ин нодуруст аст! Ваъда шудааст, ки versionҳои нави Java ҳар шаш моҳ бароварда мешаванд. Муҳимтарин навовариҳо ва хусусиятҳои versionи охиринро дар ин ҷо хондан мумкин аст .

    Барои ман, ламбдаҳо дар Java 8 инқилоб ва кашфиёт буданд, на аз versionҳои нав! Ҳоло ман дар як лоиҳаи "ретроградӣ" кор карда истодаам, аз ин рӯ ман ба навоварӣ намеравам, аммо он далел аст, ки Java зиндагӣ мекунад.

    Интихоби забони барномасозӣ - 4
  4. Android.

    Android дар тӯли 4 соли охир беш аз 80% бозори телефонҳои мобorро бо боварӣ ишғол кардааст ; телевизорҳо, плеерҳои медиавӣ ва ҳатто системаҳои медиавӣ дар мошинҳо таҳти ин системаи оператсионӣ кор мекунанд. Ва таҳияи ин ОС асосан дар 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