Програмер

Из Википедије, слободне енциклопедије
Иди на навигацију Иди на претрагу
Три програмера програмирају на Викиманији

Програмер, девелопер или софтверски инжењер је особа која се бави програмирањем, односно прављењем рачунарског софтвера. Израз програмер може да се односи на специјалисте у једној области рачунарства или на оне који пишу многе врсте софтвера. Особе које практикују или предају формални приступ програмирању често су познати и као програмерски аналитичари.

Примарни програмски језик програмера (асемблер, COBOL, C, C++, C#, Java, Lisp, Python, итд.) често се ставља у префикс назива професије (нпр. C програмер), а они који раде у веб окружењу често се називају веб програмери.

Низ занимања, укључујући софтверске девелопере, веб девелопере, девелопере мобилних апликација, девелопере фирмвера за уградне уређаје, софтверске инжењере и сличне, иако укључују програмирање, такође захтевају читав низ других вештина. Коришћење једноставног термина програмер за ове позиције понекад се сматра увредљивим или погрдно поједностављеним.[1][2][3][4][5]

Данас се најчешће програмирају електронски рачунари, иако је могуће програмирати и механичке уређаје, као што су посебни клавири, шиваће машине и други (тј. електро-механички уређаји).

Историја[уреди]

Ејду Лавлејс многи сматрају првим компјутерским програмером.[6]

Британска грофица и математичарка Ејда Лавлејс често се сматра првим компјутерским програмером, јер је прва објавила алгоритам за имплементацију аналитичке машине Чарлса Бебиџа, октобра 1842. године, намењену рачунању Бернулијевих бројева.[6] Како Бебиџева машина није завршена за њеног живота, Ејда никада није видела свој алгоритам како ради.

Прва особа која је покренула програм на функционалном савременом електронском рачунару био је рачунарси научник Конрад Цузе 1941. године.

Програмерски тим ENIAC-а, који се састојао од Кеј Мекнулти, Бети Џенингс, Бети Снајдер, Мерлин Вескоф, Френ Билас и Рут Лихтерман, први су редовно запослени програмери.[7][8]

Међународни дан програмера се слави 7. јануара. Влада Русије је 2009. године одредила годишњи празник професије познат под називом Дан програмера који се слави 13. септембра (12. септембра преступних година).[9] Овај празник је пре тога био незванични међународни празник.

Софтвер[уреди]

Реч "софтвер" први пут је употребљена чак 1953. године, али се у штампи није појављивала до шездесетих година прошлог века.[10] Пре овог времена, рачунаре су програмирали или корисници или неколико продаваца комерцијалних рачунара тог времена, као што су UNIVAC и IBM. Прва компанија за пружање софтверских производа и услуга била је Computer Usage Company, основана 1955. године.[11]

Софтверска индустрија се проширила почетком шездесетих година прошлог века, скоро одмах након што су продати први рачунари у масовним количинама. Универзитети, влада и пословни клијенти створили су потражњу за софтвером. Многе од ових програма написали су њихови запослени. Неки су слободно дељени између корисника одрђених машина без накнаде. Други су направљени у комерцијалне сврхе, а друге компаније, као што су Computer Sciences Corporation (основана 1959. године), почеле су да расту. Произвођачи рачунара/хардвера почели су да повезују оперативне системе, системски софтвер и окружења за програмирање са својим машинама.

Индустрија се у великој мери проширила са појавом персоналног рачунара (енгл. PC - "Personal computer") средином седамдесетих година 20. века, што је довело рачунарство на радну површину канцеларијског радника. У наредним годинама, ово је такође створило растуће тржиште за игре, апликације и помоћни софтвер. DOS, Мајкрософтов први оперативни систем, био је доминантан оперативни систем у то време.[12]

Раних година 21. века, појавио се још један успешан модел за хостовани софтвер, назван software-as-a-service или SaaS; ово је био бар трећи пут да је овај модел покушао да се пробије на тржиште. Са становиштва произвођача неког власничког софтвера, SaaS смањује забринутост због неовлашћеног копирања, јер се њему може приступити само преко Интернета, а по дефиницији се на рачунар крајњег корисника не учитава никакав клијентски софтвер. До 2014. године, дефинисана је улога клауд девелопера; у овом контексту објављена је уопштено једна од дефиниција "девелопера".[13]

Природа посла[уреди]

Рачунарски програмери пишу, тестирају, дебагују и одржавају детаљна упутства, названа рачунарски програм, које рачунари морају следити како би извршили своје функције. Програмери такође осмишљавају, дизајнирају и тестирају логичке структуре за решавање проблема помоћу рачунара. Многе техничке иновације у програмирању - напредне рачунарске технологије и софистицирани нови језици и алатке за програмирање - су редефинисали улогу програмера и узвисили велики део програмерског посла који се данас ради. Наслови и описи послова могу се разликовати у зависности од организације.

Програмери раде у многим поставкама, укључујући корпоративна одељења информационих технологија ("ИТ"), велике софтверске компаније, мале сервисне фирме и владине ентитете свих величина. Многи професионални програмери такође раде за консултантске компаније као консултанти за друге клијенте. Лиценце обично нису битне како би се радило као програмер, али ипак многи програмери поседују професионалне сертификације. Програмирање се широко сматра професијом (иако се неке власти не слажу на основу тога што се само каријера са законским захтевима за лиценцирање рачуна као професија).

Рад програмера варира у зависности од врсте посла за који пишу програме. На пример, инструкције која се односе на ажурирање финансијских евиденција веома су различите од оних које су потребне за реалистичну симулацију приликом обуке пилота. Једноставни програми се могу написати за неколико сати, а сложенији могу захтевати више од годину дана рада, док се други никада не сматрају "потпуним" већ се континуирано побољшавају све док су у употреби. У већини случајева, неколико програмера ради заједно као тим под супервизијом виших програмера.

Програмери пишу програме према спецификацијама утврђеним првенствено од стране виших програмера и системских аналитичара. Након што је процес израде завршен, посао програмера је претворити тај дизајн у логичку серију инструкција које рачунар може да прати. Програмер пише ове инструкције у једном од многих програмских језика. У зависности од сврхе програма користе се различити језици програмирања. COBOL се, на пример, најчешће користи за пословне апликације које се обично покрећу на мејнфрејм и просечним рачунарима, док се Фортран користи у науци и инжењерингу. C++ се широко користи за научне и пословне апликације. Java, C #, VB и PHP су популарни програмски језици за веб и пословне апликације. Програмери углавном знају више од једног програмског језика и, пошто су многи језици слични, они често могу релативно лако научити нове језике. У пракси програмери се често називају по језику који знају, нпр. Јава програмери, или по врсти функције коју обављају или окружењу у којем функционишу: на пример, програмери базе података, програмери мејнфрејм рачунара или веб програмери.

Приликом измене изворног кода од којих су састављени програми, програмери морају да упознају друге програмере са задатком који та рутина или функција обавља. Они то раде убацивањем коментара у изворни код тако да други могу лакше разумети програм, и документујући њихов код. Да би сачували рад, програмери често користе библиотеке основног кода које се могу модификовати или прилагодити за одређену примену. Овај приступ доноси поузданије и доследније програме и повећава продуктивност програмера елиминацијом неких рутинских корака.

Тестирање и дебаговање[уреди]

Програмери тестирају програм тако што га покрећу и траже багове (грешке). Како их проналази, програмер обично прави одговарајуће корекције, а затим поново проверава програм док не задржи прихватљиво мало багова који нису озбиљни. Овај процес се зове тестирање и дебаговање. Ово су важни делови сваког посла програмера. Програмери могу наставити да решавају ове проблеме током целог трајања програма. Ажурирање, поправљање, модификација и проширење постојећих програма понекад се назива програмирање одржавања. Програмери могу да допринесу корисничким водичима и онлајн помоћи, или могу да раде са техничким писцима за такав рад.

Квалификације и вештине[уреди]

Девелопер софтвера мора имати релевантну диплому из било које области као што су рачунарство, информационе технологије, инжењерство, програмирање или било која друга диплома везана за ИТ. Идеалан девелопер софтвера је онај који сам себе мотивише и има искуства са кључним програмским језицима као што су C++, C#, PHP, Java, C, Javascript, VB, Oracle, UML, Linux, Python, UNIX, XML, HTTP, Smalltalk или неки други алати за тестирање софтвера.[14]

Према девелоперу Ерику Синку, разлика између дизајна система, развоја софтвера и програмирања су очигледније. Већ на тренутном тржишту може се наћи сегрегација између програмера и девелопера, јер онај који имплементира није исти као онај који дизајнира структуру класе или хијерархију. Штавише, девелопери постају софтверски архитекти или архитекти система, они који дизајнирају вишеструку архитектуру или компоненту интеракције великог софтверског система.[1]

Види још[уреди]

Референце[уреди]

  1. 1,0 1,1 „Small ISVs:  You need Developers, not Programmers”. ericsink.com. Приступљено 15. 09. 2018. 
  2. ^ „Developer versus Programmer | Raymond Lewallen”. codebetter.com (на језику: енглески). Приступљено 15. 09. 2018. 
  3. ^ „Mike Diehl's WebLog - "Developers" AND "Programmers". weblogs.asp.net (на језику: енглески). Приступљено 15. 09. 2018. 
  4. ^ „The Joel on Software Discussion Group (CLOSED) - Programmer vs. Developer vs. Software Engineer”. discuss.joelonsoftware.com. Архивирано из оригинала на датум 10. 07. 2018. Приступљено 15. 09. 2018. 
  5. ^ „Programmer vs Software Developer vs Software Engineer [Archive] - Xtreme Visual Basic Talk”. www.xtremevbtalk.com (на језику: енглески). Приступљено 15. 09. 2018. 
  6. 6,0 6,1 Fuegi, J.; Francis, J. (2003). „Lovelace amp; Babbage and the creation of the 1843 'notes'. IEEE Annals of the History of Computing. 25 (4): 16—26. ISSN 1058-6180. doi:10.1109/MAHC.2003.1253887. 
  7. ^ „ENIAC Programmers Project”. ENIAC Programmers Project (на језику: енглески). Приступљено 16. 09. 2018. 
  8. ^ News, A. B. C. (12. 02. 2009). „Granny Hackers Make History”. ABC News (на језику: енглески). Приступљено 16. 09. 2018. 
  9. ^ „International Programmers' Day”. www.timeanddate.com (на језику: енглески). Приступљено 15. 09. 2018. 
  10. ^ Paul Niquette (1995). "Softword: Provenance for the Word 'Software'" adapted from Sophisticated: The Magazine. ISBN 978-1-58922-233-5.
  11. ^ Kubie, E. C. (лето 1994). „Recollections of the first software company”. IEEE Annals of the History of Computing. 16 (2): 65—71. ISSN 1058-6180. doi:10.1109/85.279238. 
  12. ^ Rebello, Kathy; Schwartz, Evan I.; Verity, John W.; Lewyn, Mark; Levine, Jonathan (28 February 1993). "Is Microsoft Too Powerful?". Businessweek Archives. Bloomberg Businessweek
  13. ^ „A portrait of the modern cloud developer”. TechRepublic (на језику: енглески). Приступљено 17. 09. 2018. 
  14. ^ „Software Engineer Skills and Responsibilities | Job Awareness: Know about Jobs and Job Descriptions.”. www.jobawareness.com (на језику: енглески). Приступљено 17. 09. 2018. 

Спољашње везе[уреди]