![cover image](https://wikiwandv2-19431.kxcdn.com/_next/image?url=https://upload.wikimedia.org/wikipedia/commons/thumb/2/26/Eclipse_%2528software%2529.jpg/640px-Eclipse_%2528software%2529.jpg&w=640&q=50)
Програмирање
Процес који води од оригиналне формулације рачунарског проблема до извршних рачунарских програма / From Wikipedia, the free encyclopedia
Програмирање је термин под којим се најчешће подразумева креирање рачунарских програма, што укључује детаљну теоријску разраду проблема, налажење концептуалног решења и имплементацију коришћењем неког од програмских језика. Програмер је специјалиста за програмирање, односно креирање рачунарских програма.[1] Појам програмирање, међутим, обухвата и све остале процесе чији је циљ аутоматизовање решавања одређеног типа проблема, па тако постоји програмирање за телевизијске уређаје, веш-машине, мобилне телефоне, као и математичко програмирање и др. У најопштијем смислу програмирање значи дефинисање низа корака који се обављају један за другим у циљу извршења одређеног задатка.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/2/26/Eclipse_%28software%29.jpg/640px-Eclipse_%28software%29.jpg)
Рачунарско програмирање је поступак дизајнирања и изградње извршног рачунарског програма за постизање одређеног рачунарског резултата или за извршавање одређеног задатка. Програмирање укључује задатке као што су: анализа, генерисање алгоритама, профилисање алгоритамске тачности и потрошње ресурса, и имплементација алгоритама на изабраном програмском језику (обично се назива кодирање).[2][3] Изворни код програма написан је на једном или више језика који су програмерима разумљиви, а не на машинском коду, који директно извршава централна процесорска јединица. Сврха програмирања је да се пронађе низ упутстава која ће аутоматизовати извођење задатка (који може бити сложен као оперативни систем) на рачунару, често за решавање датог проблема. Вешто програмирање стога често захтева стручност из неколико различитих предмета, укључујући знање из апликационог домена, специјализоване алгоритме и формалну логику.
Задаци који прате и односе се на програмирање укључују: тестирање, отклањање грешака, одржавање изворног кода, имплементацију система изградње и управљање изведеним артефактима, као што је машински код рачунарских програма. Они се могу сматрати делом процеса програмирања, али често се термин развој софтвера користи за овај шири процес, а термин програмирање, имплементација или кодирање резервисан је за стварно писање кода. Софтверски инжењеринг комбинује инжењерске технике са праксама развоја софтвера. Реверзни инжењеринг је сродни процес који користе дизајнери, аналитичари и програмери да би разумели и поново креирали/поново применили програм.[4]