У периоду када су се појавили први компјутерски системи, постојало је акутно питање како “научити” машину да сагледа задатке које је особа назначила. Овде се појавио термин "компјутерско програмирање". Данас многи корисници који нису упознати са основама и суптилностима ових процеса сматрају да је то нешто из домена фантазије, недоступно обичном човјеку на улици. Међутим, ако желите, можете овладати програмирањем и већином. Али немојмо ићи испред себе и положити све, како кажу, на полице.
Ако погледате основне интерпретације овог термина, није тешко извући најједноставнији закључак. Шта је програмирање? Ово је писање програма.
Одмах се поставља питање шта је програм. Програм или апликација је, грубо речено, скуп специјализованих команди, инструкција, директива или извршних скрипти које треба да изврши машина, и на нивоу и „гвоздених“ уређаја, и других укључених средстава.
Да би било јасно шта је програмирање, можете дати најједноставнији примјер. Инсталирана корисничка апликација, која има за циљ да оствари одређени задатак, бави се не само РАМ-ом и процесором, већ и другим физичким уређајима преко својих управљачких алата, названих драјвери, који су такође програми.
Говорећи о томе шта је програмирање у модерној интерпретацији, треба да обратите пажњу на историју његовог настанка. У ствари, аутоматизовано извршавање одређених акција, на пример, у области математичких прорачуна, човечанству је познато већ дуже време.
Подсјетимо се барем на старогрчку, у којој је кориштен уређај са зупчаницима различитих величина, што нам је омогућило да изводимо једноставне аритметичке операције. То је био прави прототип модерног калкулатора.
Године 1206. појавио се јединствени апарат за праћење такозваног метонског циклуса, који је изградио Ал-Јазари, који је тада користио сложене механизме засноване на стезаљкама и зупцима.
Само 1804, свет је видео жакард разбој, који је био у стању да репродукује узорке на тканинама, створеним на основу бушених картица.
Али прави пробој био је програмабилни аналитички уређај који је развио Цхарлес Баббаге, који, нажалост, никада није изграђен за живота.
Али, 1846. године, Бајронова кћерка је направила први светски програм за аналитичку машину која је решила Берноуллијеву једначину. Наравно, програмски алгоритми које је користила грофица Ада Аугуста Ловелаце били су веома примитивни, али су положили саму зрну која је коришћена за креирање модерних компјутерских програма. Сматра се да је мајка програмирања широм света.
Било који компјутерски програм мора бити извршен од стране машине на неки начин. Није довољно за њу да пишу, кажу, да ураде ово и оно. За то су направљени програмски језици.
Али, написати низ наредби на неком језику, којих данас има много, није довољно. Уређај и даље неће прихватити текст фразе или математичке формуле.
Употреба бинарног (бинарног) кода који се састоји од низова нула и оних који се перципирају било којим компјутерским уређајем постаје универзални алат. Али како превести семантичке фразе и формуле у овај облик? У ту сврху користе се компајлери, који листу наредби претварају у бинарни код који је строј разумљив. Можете пронаћи тернарни и хексадецимални код, али се они ретко користе.
Јасно је да је било изузетно тешко ући у бинарне наредбе чак и на примитивним уређајима, јер особа по природи једноставно није у стању запамтити такве секвенце.
Дакле, да би се објединили такви процеси, измишљене су такозване мнемоничке шифре, које су у облику текстуалних команди биле пуне аналогије бинарних комбинација. Команда текста, као што је већ јасно, много је лакше запамтити него дуга секвенца која се састоји од нула и јединица.
Али ово није крај. Програмски алгоритми који су се користили у зору развоја захтевали су унос нове вредности, названу варијабла.
Суштина његове употребе у било ком програмском језику је да се додели одређена област меморије у којој се чува вредност, ознака слова. Да би се мнемонички кодови превели у инструкције и променљиве у подручју меморије, коришћени су алати који се зову преводиоци. И сви језици који су користили ову технику названи су монтажери.
Исте саме језички алати на којима се компјутерски програми пишу (или су написани у догледно вријеме) могу се подијелити на оне ниског и високог нивоа.
Ако се једна старија генерација сети, чак иу совјетским временима, основни језик је предавао у школама у часовима информатике. Њиме су тадашње Иамаха КУВТ машине могле креирати примитивне програме математичких прорачуна, програмирати једноставне слике или музику која звучи из системске динамике. За математику је било могуће користити логичке операторе као што су “ако”, “онда”, “иначе”. Али проблем свих оних који су темељно научили овај језик био је да не могу савладати нове алате.
Да не спомињемо да је асемблерски језик произвео праву револуцију и да се и данас користи, појавили су се сасвим специфични начини, на пример, структурни или објектно оријентисани програмски језици (ООП).
Сигурно је повезати језик Ц + / ++ са ООП-ом, на основу наредби од којих су креирани исти Виндовс оперативни системи. Програмирање на "Ц" је прилично компликовано, међутим, ако желите, можете га савладати. Како кажу, постојала би жеља. Можете ићи на исте течајеве програмирања или користити релевантну литературу за обуку. Међутим, као што већина стручњака вјерује, још увијек је могуће продријети у основе језика, али је изузетно тешко развити своје знање у пракси. Овде неће помоћи никакви радови попут књига "Програмирање за лутке".
Али вратимо се на језике. Релативно недавно, појавили су се језици засновани на тумачима (.НЕТ Фрамеворк, Питхон, Јава, Перл, итд.). Уместо машинског кода, они генеришу посебан бајтни код, који је бинарни код виртуелне машине.
Успут, програмирање у Јави се може овладати највише без много труда. На пример, за мобилне уређаје базиране на Андроид системима, можете користити Андроид Студио и Јава СДК паралелно и инсталирати Генимотион као тестер. Можете учинити још лакше тако што ћете се обратити онлине дизајнеру Апп Инвентор, у којем се креира низ наредби као што је слагање загонетки.
Концепт парадигми није настао од нуле. У најопштијем схватању парадигме, оне представљају одређени поглед на свет око нас и акције које се могу предузети у односу на њега. У компјутерском свету, овај термин се схвата као нека врста генерализације у односу на рад програма.
Постоје апликације фокусиране искључиво на једну парадигму или извођење само једног задатка, али сви модерни језици и програми који су створени на њиховој основи решавају неколико проблема. Отуда термин мултитаскинг.
У садашњој фази развоја рачунарске технологије приоритет за многе програмере су ООП и Јава програмирање. Имајте на уму да пакете Јава платформе подржава било који од тренутно познатих оперативних система, да не спомињемо мобилне уређаје.
Иако је, као што се верује, језик Ц + / ++ доминантан, не треба занемарити асемблер. Изненађујуће, већина вируса је написана на њему. А ако узмемо у обзир веб програмирање, рецимо, засновано на Делпхију, опћенито се отварају такве широке могућности и перспективе које многи почетнички програмери уопће не знају о томе.
Питања која се односе на самостално учење, директно зависе од тога шта тачно желите да научите. Књижевност у облику књига „Програмирање за лутке“ пружа само дјелимичне одговоре без навођења главних аспеката у погледу употребе одређеног језика. Ово, да тако кажемо, за заједничко разумевање. Програмски курсеви су такође контроверзно питање, јер у овом случају све зависи не само од перцепције ученика, већ и од тога које знање има наставник, како даје материјал, итд. Али ако је било потребно проучавати одређени језик или методу програмирања, то није проблем у овом добу Интернета. Можете чак пронаћи онлине курсеве или детаљан опис лекција на истој Јава платформи, програмирање Андроид или иОС уређаја.
Оно што је програмирање уопште, мислим, већ је свима јасно. Овдје су, међутим, дотакнута само опћа питања без навођења употребе сваког језика, алата за писање апликација или сродних софтверских модула, тумачења или превођења наредби, као и од тога како се све то ради на процесору, РАМ-у или на нивоу оперативног система. Све ово је прилично тешко разумјети, а неспремној особи неће бити тако лако да схвати суштину свих тих процеса. Међутим, ако желите и имате довољно висок степен мотивације, можете учити било који језик, ау будућности можете постати програмер високе класе.