Programer, developer ili softverski inženjer je osoba koja se bavi programiranjem, odnosno pravljenjem računarskog softvera. Izraz programer može da se odnosi na specijaliste u jednoj oblasti računarstva ili na one koji pišu mnoge vrste softvera. Osobe koje praktikuju ili predaju formalni pristup programiranju često su poznati i kao programerski analitičari.

Tri programera programiraju na Vikimaniji

Primarni programski jezik programera (asembler, COBOL, C, C++, C#, Java, Lisp, Python, itd.) često se stavlja u prefiks naziva profesije (npr. C programer), a oni koji rade u veb okruženju često se nazivaju veb programeri.

Niz zanimanja, uključujući softverske developere, veb developere, developere mobilnih aplikacija, developere firmvera za ugradne uređaje, softverske inženjere i slične, iako uključuju programiranje, takođe zahtevaju čitav niz drugih veština. Korišćenje jednostavnog termina programer za ove pozicije ponekad se smatra uvredljivim ili pogrdno pojednostavljenim.[1][2][3][4][5]

Danas se najčešće programiraju elektronski računari, iako je moguće programirati i mehaničke uređaje, kao što su posebni klaviri, šivaće mašine i drugi (tj. elektro-mehanički uređaji).

Istorija uredi

 
Ejdu Lavlejs mnogi smatraju prvim kompjuterskim programerom.[6]

Britanska grofica i matematičarka Ejda Lavlejs često se smatra prvim kompjuterskim programerom, jer je prva objavila algoritam za implementaciju analitičke mašine Čarlsa Bebidža, oktobra 1842. godine, namenjenu računanju Bernulijevih brojeva.[6] Kako Bebidževa mašina nije završena za njenog života, Ejda nikada nije videla svoj algoritam kako radi.

Prva osoba koja je pokrenula program na funkcionalnom savremenom elektronskom računaru bio je računarsi naučnik Konrad Cuze 1941. godine.

Programerski tim ENIAC-a, koji se sastojao od Kej Meknulti, Beti Dženings, Beti Snajder, Merlin Veskof, Fren Bilas i Rut Lihterman, prvi su redovno zaposleni programeri.[7][8]

Međunarodni dan programera se slavi 7. januara. Vlada Rusije je 2009. godine odredila godišnji praznik profesije poznat pod nazivom Dan programera koji se slavi 13. septembra (12. septembra prestupnih godina).[9] Ovaj praznik je pre toga bio nezvanični međunarodni praznik.

Softver uredi

Reč "softver" prvi put je upotrebljena čak 1953. godine, ali se u štampi nije pojavljivala do šezdesetih godina prošlog veka.[10] Pre ovog vremena, računare su programirali ili korisnici ili nekoliko prodavaca komercijalnih računara tog vremena, kao što su UNIVAC i IBM. Prva kompanija za pružanje softverskih proizvoda i usluga bila je Computer Usage Company, osnovana 1955. godine.[11]

Softverska industrija se proširila početkom šezdesetih godina prošlog veka, skoro odmah nakon što su prodati prvi računari u masovnim količinama. Univerziteti, vlada i poslovni klijenti stvorili su potražnju za softverom. Mnoge od ovih programa napisali su njihovi zaposleni. Neki su slobodno deljeni između korisnika odrđenih mašina bez naknade. Drugi su napravljeni u komercijalne svrhe, a druge kompanije, kao što su Computer Sciences Corporation (osnovana 1959. godine), počele su da rastu. Proizvođači računara/hardvera počeli su da povezuju operativne sisteme, sistemski softver i okruženja za programiranje sa svojim mašinama.

Industrija se u velikoj meri proširila sa pojavom personalnog računara (engl. PC - "Personal computer") sredinom sedamdesetih godina 20. veka, što je dovelo računarstvo na radnu površinu kancelarijskog radnika. U narednim godinama, ovo je takođe stvorilo rastuće tržište za igre, aplikacije i pomoćni softver. DOS, Majkrosoftov prvi operativni sistem, bio je dominantan operativni sistem u to vreme.[12]

Ranih godina 21. veka, pojavio se još jedan uspešan model za hostovani softver, nazvan software-as-a-service ili SaaS; ovo je bio bar treći put da je ovaj model pokušao da se probije na tržište. Sa stanovištva proizvođača nekog vlasničkog softvera, SaaS smanjuje zabrinutost zbog neovlašćenog kopiranja, jer se njemu može pristupiti samo preko Interneta, a po definiciji se na računar krajnjeg korisnika ne učitava nikakav klijentski softver. Do 2014. godine, definisana je uloga klaud developera; u ovom kontekstu objavljena je uopšteno jedna od definicija "developera".[13]

Priroda posla uredi

Računarski programeri pišu, testiraju, debaguju i održavaju detaljna uputstva, nazvana računarski program, koje računari moraju slediti kako bi izvršili svoje funkcije. Programeri takođe osmišljavaju, dizajniraju i testiraju logičke strukture za rešavanje problema pomoću računara. Mnoge tehničke inovacije u programiranju - napredne računarske tehnologije i sofisticirani novi jezici i alatke za programiranje - su redefinisali ulogu programera i uzvisili veliki deo programerskog posla koji se danas radi. Naslovi i opisi poslova mogu se razlikovati u zavisnosti od organizacije.

Programeri rade u mnogim postavkama, uključujući korporativna odeljenja informacionih tehnologija ("IT"), velike softverske kompanije, male servisne firme i vladine entitete svih veličina. Mnogi profesionalni programeri takođe rade za konsultantske kompanije kao konsultanti za druge klijente. Licence obično nisu bitne kako bi se radilo kao programer, ali ipak mnogi programeri poseduju profesionalne sertifikacije. Programiranje se široko smatra profesijom (iako se neke vlasti ne slažu na osnovu toga što se samo karijera sa zakonskim zahtevima za licenciranje računa kao profesija).

Rad programera varira u zavisnosti od vrste posla za koji pišu programe. Na primer, instrukcije koja se odnose na ažuriranje finansijskih evidencija veoma su različite od onih koje su potrebne za realističnu simulaciju prilikom obuke pilota. Jednostavni programi se mogu napisati za nekoliko sati, a složeniji mogu zahtevati više od godinu dana rada, dok se drugi nikada ne smatraju "potpunim" već se kontinuirano poboljšavaju sve dok su u upotrebi. U većini slučajeva, nekoliko programera radi zajedno kao tim pod supervizijom viših programera.

Programeri pišu programe prema specifikacijama utvrđenim prvenstveno od strane viših programera i sistemskih analitičara. Nakon što je proces izrade završen, posao programera je pretvoriti taj dizajn u logičku seriju instrukcija koje računar može da prati. Programer piše ove instrukcije u jednom od mnogih programskih jezika. U zavisnosti od svrhe programa koriste se različiti jezici programiranja. COBOL se, na primer, najčešće koristi za poslovne aplikacije koje se obično pokreću na mejnfrejm i prosečnim računarima, dok se Fortran koristi u nauci i inženjeringu. C++ se široko koristi za naučne i poslovne aplikacije. Java, C #, VB i PHP su popularni programski jezici za veb i poslovne aplikacije. Programeri uglavnom znaju više od jednog programskog jezika i, pošto su mnogi jezici slični, oni često mogu relativno lako naučiti nove jezike. U praksi programeri se često nazivaju po jeziku koji znaju, npr. Java programeri, ili po vrsti funkcije koju obavljaju ili okruženju u kojem funkcionišu: na primer, programeri baze podataka, programeri mejnfrejm računara ili veb programeri.

Prilikom izmene izvornog koda od kojih su sastavljeni programi, programeri moraju da upoznaju druge programere sa zadatkom koji ta rutina ili funkcija obavlja. Oni to rade ubacivanjem komentara u izvorni kod tako da drugi mogu lakše razumeti program, i dokumentujući njihov kod. Da bi sačuvali rad, programeri često koriste biblioteke osnovnog koda koje se mogu modifikovati ili prilagoditi za određenu primenu. Ovaj pristup donosi pouzdanije i doslednije programe i povećava produktivnost programera eliminacijom nekih rutinskih koraka.

Testiranje i debagovanje uredi

Programeri testiraju program tako što ga pokreću i traže bagove (greške). Kako ih pronalazi, programer obično pravi odgovarajuće korekcije, a zatim ponovo proverava program dok ne zadrži prihvatljivo malo bagova koji nisu ozbiljni. Ovaj proces se zove testiranje i debagovanje. Ovo su važni delovi svakog posla programera. Programeri mogu nastaviti da rešavaju ove probleme tokom celog trajanja programa. Ažuriranje, popravljanje, modifikacija i proširenje postojećih programa ponekad se naziva programiranje održavanja. Programeri mogu da doprinesu korisničkim vodičima i onlajn pomoći, ili mogu da rade sa tehničkim piscima za takav rad.

Kvalifikacije i veštine uredi

Developer softvera mora imati relevantnu diplomu iz bilo koje oblasti kao što su računarstvo, informacione tehnologije, inženjerstvo, programiranje ili bilo koja druga diploma vezana za IT. Idealan developer softvera je onaj koji sam sebe motiviše i ima iskustva sa ključnim programskim jezicima kao što su C++, C#, PHP, Java, C, Javascript, VB, Oracle, UML, Linux, Python, UNIX, XML, HTTP, Smalltalk ili neki drugi alati za testiranje softvera.[14]

Prema developeru Eriku Sinku, razlika između dizajna sistema, razvoja softvera i programiranja su očiglednije. Već na trenutnom tržištu može se naći segregacija između programera i developera, jer onaj koji implementira nije isti kao onaj koji dizajnira strukturu klase ili hijerarhiju. Štaviše, developeri postaju softverski arhitekti ili arhitekti sistema, oni koji dizajniraju višestruku arhitekturu ili komponentu interakcije velikog softverskog sistema.[1]

Vidi još uredi

Reference uredi

  1. ^ a b „Small ISVs:  You need Developers, not Programmers”. ericsink.com. Pristupljeno 15. 9. 2018. 
  2. ^ „Developer versus Programmer | Raymond Lewallen”. codebetter.com (na jeziku: engleski). Arhivirano iz originala 18. 09. 2018. g. Pristupljeno 15. 9. 2018. 
  3. ^ „Mike Diehl's WebLog - "Developers" AND "Programmers". weblogs.asp.net (na jeziku: engleski). Pristupljeno 15. 9. 2018. 
  4. ^ „The Joel on Software Discussion Group (CLOSED) - Programmer vs. Developer vs. Software Engineer”. discuss.joelonsoftware.com. Arhivirano iz originala 10. 7. 2018. g. Pristupljeno 15. 9. 2018. 
  5. ^ „Programmer vs Software Developer vs Software Engineer [Archive] - Xtreme Visual Basic Talk”. www.xtremevbtalk.com (na jeziku: engleski). Pristupljeno 15. 9. 2018. 
  6. ^ a b 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 (na jeziku: engleski). Pristupljeno 16. 9. 2018. 
  8. ^ News, A. B. C. (12. 2. 2009). „Granny Hackers Make History”. ABC News (na jeziku: engleski). Pristupljeno 16. 9. 2018. 
  9. ^ „International Programmers' Day”. www.timeanddate.com (na jeziku: engleski). Pristupljeno 15. 9. 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. (leto 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 (na jeziku: engleski). Pristupljeno 17. 9. 2018. 
  14. ^ „Software Engineer Skills and Responsibilities | Job Awareness: Know about Jobs and Job Descriptions.”. www.jobawareness.com (na jeziku: engleski). Arhivirano iz originala 14. 06. 2020. g. Pristupljeno 17. 9. 2018. 

Spoljašnje veze uredi