Programmerare - Programmer

Datorprogrammerare
Två kvinnor som använder ENIAC (full upplösning) .jpg
Betty Jennings och Fran Bilas , en del av det första ENIAC -programmeringsteamet
Ockupation
Namn Datorprogrammerare
Yrkestyp
Yrke
Aktivitetssektorer
Informationsteknik , Programvaruindustri
Beskrivning
Kompetenser Skrivning och felsökning av datorkod, dokumentationsuppgifter. En del design- och utvecklingsarbete utförs ofta.
Utbildning krävs
Varierar från lärlingsutbildning till kandidatexamen inom relaterat område

En datorprogrammerare , ibland kallad en mjukvaruutvecklare , en programmerare eller nyligen en kodare (särskilt i mer informella sammanhang), är en person som skapar datorprogramvara . Termen datorprogrammerare kan hänvisa till en specialist inom ett område av datorer eller till en generalist som skriver kod för många typer av programvara.

En programmerares vanligaste datorspråk (t.ex. Assembly , COBOL , C , C ++ , C# , JavaScript , Lisp , Python , Java ) kan ha ett prefix till termen programmerare . Vissa som arbetar med webbprogrammeringsspråk prefixar också sina titlar med webben .

Terminologi

Det finns ingen branschövergripande standardterminologi, så "programmerare" och " programvaruutvecklare " kan hänvisa till samma roll hos olika företag. Vanligtvis kan någon med en jobbtitel "programmerare" eller "mjukvaruutvecklare" fokusera på att implementera en detaljerad specifikation i datorkod, fixa buggar och utföra kodgranskningar. De kan ha en examen i datavetenskap , en associerad examen , eller kan vara autodidakt eller delta i ett programmeringsstartläger . Någon med en jobbtitel " mjukvaruingenjör " förväntas förstå mjukvaruutvecklingsprinciper , mer avancerad matematik och den vetenskapliga metoden , och kan krävas för att ha en examen i programvaruteknik, datateknik eller datavetenskap . Vissa länder kräver juridiskt att en verklig ingenjörsexamen kallas ingenjör. I företag som gör skillnad kan mjukvaruingenjörer ha ett bredare och högre ansvar, som att designa eller "skapa" nya program, funktioner och plattformar; hantera livscykeln för mjukvaruutveckling inklusive design, implementering, testning och distribution; leda ett team av programmerare; kommunikation med företagskunder, programmerare och andra ingenjörer; med tanke på systemstabilitet och kvalitet; och utforska mjukvaruutvecklingsmetoder .

En systemarkitekt är en relaterad befattningstitel, vilket kan innebära att ta fram tekniska konstruktioner samtidigt som den faktiska programmeringen lämnas åt andra.

Historia

Ada Lovelace anses av många vara den första datorprogrammeraren.

Brittisk grevinnan och matematikern Ada Lovelace är ofta anses vara den första programmerare, eftersom hon var den första att publicera en del av ett program (specifikt en algoritm ) avsedda för genomförandet på Charles Babbage : s analytiska motor i oktober 1842. Algoritmen användes för att beräkna Bernoulli -tal . Eftersom Babbages maskin aldrig färdigställdes som en fungerande standard på Lovelaces tid, hade hon aldrig möjlighet att se algoritmen i funktion.

Den första personen som körde ett program på en fungerande, modern, elektronisk dator var datavetenskaparen Konrad Zuse 1941.

Den Eniac programmering team, bestående av Kay McNulty , Betty Jennings , Betty Snyder , Marlyn Wescoff , Fran Bilas och Ruth Lichterman , har krediteras som den första reguljära programmerare.

Programvaruindustrin

Det första företaget som grundades specifikt för att tillhandahålla mjukvaruprodukter och tjänster var Computer Usage Company 1955. Före den tiden programmerades datorer antingen av kunder eller dåtidens få kommersiella datortillverkare, som Sperry Rand och IBM .

Den mjukvaruindustrin expanderade i början av 1960-talet, nästan omedelbart efter datorer först säljs i massproducerade kvantiteter. Universitet, regeringar och företag skapade en efterfrågan på programvara. Många av dessa program skrevs internt av heltidsanställda programmerare; vissa distribuerades mellan användare av en viss maskin utan kostnad, medan andra såldes på kommersiell basis. Andra företag, till exempel Computer Sciences Corporation (grundat 1959), började också växa. Datortillverkare började snart bunta ihop operativsystem , systemprogramvara och programmeringsmiljöer med sina maskiner; den IBM 1620 kom med 1620 Symbolisk Programming System och FORTRAN .

Branschen expanderade kraftigt med uppkomsten av persondatorn (PC) i mitten av 1970-talet, vilket gav datoranvändare till den genomsnittliga kontorsarbetaren. Under de följande åren hjälpte datorn också till att skapa en ständigt växande marknad för spel, applikationer och verktygsprogram. Detta resulterade i ökad efterfrågan på mjukvaruutvecklare under den tiden.

Under de första åren av 2000-talet har en annan framgångsrik affärsmodell uppstått för värdprogramvara, kallad software-as-a-service , eller SaaS. Ur tillverkarens synvinkel för en del egenutvecklad programvara minskar SaaS farhågorna för obehörig kopiering , eftersom den endast kan nås via webben, och per definition laddas ingen klientprogramvara till slutanvändarens PC. SaaS tar vanligtvis slut på molnet .

Arbetets art

Datorprogrammerare skriver, testar, felsöker och underhåller de detaljerade instruktionerna, kallade datorprogram , som datorer måste följa för att utföra sina funktioner. Programmerare tänker också, designar och testar logiska strukturer för att lösa problem med dator. Många tekniska innovationer inom programmering - avancerad datorteknik och sofistikerade nya språk och programmeringsverktyg - har omdefinierat programmerarens roll och ökat mycket av programmeringsarbetet som görs idag. Jobbtitlar och beskrivningar kan variera beroende på organisation.

Programmerare arbetar i många inställningar, inklusive avdelningar för informationsteknologi (IT), stora mjukvaruföretag , små tjänsteföretag och myndigheter i alla storlekar. Många professionella programmerare arbetar också för konsultföretag på kundplatser som entreprenörer . Licensiering krävs normalt inte för att arbeta som programmerare, även om professionella certifieringar vanligtvis innehas av programmerare. Programmering anses allmänt vara ett yrke (även om vissa myndigheter är oense om att endast karriärer med juridiska licenskrav räknas som ett yrke).

Programmerares arbete varierar mycket beroende på vilken typ av verksamhet de skriver program för. Till exempel är instruktionerna för uppdatering av finansiella poster mycket annorlunda än de som krävs för att duplicera villkor på ett flygplan för piloter som tränar i en flygsimulator . Enkla program kan skrivas på några timmar. Mer komplexa kan kräva mer än ett års arbete, medan andra aldrig anses vara "kompletta" utan snarare förbättras kontinuerligt så länge de används. I de flesta fall arbetar flera programmerare tillsammans som ett team under övervakning av en högre programmerare.

Programmerare skriver program enligt specifikationerna som främst bestäms av mer senior programmerare eller systemanalytiker . När designprocessen är klar är det programmerarens uppgift att omvandla designen till en logisk serie instruktioner som datorn kan följa. Programmeraren kodar dessa instruktioner på ett av många programmeringsspråk. Olika programmeringsspråk används beroende på programmets syfte. COBOL , till exempel, används vanligtvis för affärsapplikationer som vanligtvis körs på stordatorer och mellanstora datorer, medan Fortran används inom vetenskap och teknik. C ++ och Python används ofta för både vetenskapliga och affärsmässiga applikationer. Java , C# , JavaScript och PHP är populära programmeringsspråk för webb- och affärsapplikationer. Programmerare kan i allmänhet mer än ett programmeringsspråk och eftersom många språk liknar varandra kan de ofta lära sig nya språk relativt enkelt. I praktiken ofta programmerare betecknas med det språk de vet, till exempel som Java programmerare eller av vilken typ av funktion de utför eller den miljö i vilken de arbetar, till exempel databas programmerare , stordator programmerare eller webbutvecklare .

När de gör ändringar i källkoden som definierar programmet måste programmerare göra andra programmerare medvetna om den uppgift som rutinen ska utföra. De gör detta genom att skriva programvarudokumentation och infoga kommentarer i källkoden så att andra lättare kan förstå programmet. För att spara tid använder programmerare ofta bibliotek med grundkod som kan ändras eller anpassas för en specifik applikation. Detta tillvägagångssätt ger mer tillförlitliga och konsekventa program och ökar programmerarnas produktivitet genom att eliminera några rutinmässiga steg.

Testar och felsöker

Programmerare testar ett program genom att köra det och leta efter buggar (fel). När de identifieras gör programmeraren vanligtvis lämpliga korrigeringar och kontrollerar sedan programmet igen tills en acceptabel låg nivå och allvarlighetsgrad av fel kvarstår. Denna process kallas testning och felsökning . Dessa är viktiga delar av varje programmerares jobb. Programmerare kan fortsätta att åtgärda dessa problem under ett program. Uppdatering, reparation, modifiering och utbyggnad av befintliga program kallas ibland för underhållsprogrammering . Programmerare kan bidra till användarguider och onlinehjälp , eller de kan arbeta med tekniska författare för att utföra sådant arbete.

Applikation kontra systemprogrammering

Datorprogrammerare är ofta grupperade i två breda typer: applikationsprogrammerare och systemprogrammerare. Applikationsprogrammerare skriver program för att hantera ett specifikt jobb, till exempel ett program för att spåra inventering inom en organisation. De kan också revidera befintlig förpackad programvara eller anpassa generiska applikationer som ofta köps från oberoende mjukvaruleverantörer . Systemprogrammerare skriver däremot program för att underhålla och styra datorsystemprogramvara, till exempel operativsystem och databashanteringssystem . Dessa arbetare gör ändringar i instruktionerna som avgör hur nätverk, arbetsstationer och CPU i systemet hanterar de olika jobb de har fått och hur de kommunicerar med kringutrustning som skrivare och hårddiskar .

Kvalifikationer och färdigheter

En programmerare måste ha teknisk expertis med vissa aspekter av datorer. Vissa positioner kräver en examen inom ett relevant område som datavetenskap, informationsteknik, teknik, programmering eller andra relaterade studier.

Typer av programvara

Programmerare kan arbeta direkt med experter från olika områden för att skapa programvara - antingen program som är utformade för specifika klienter eller förpackad programvara för allmänt bruk - allt från videospel till pedagogisk programvara till program för skrivbordspublicering eller finansiella applikationer. Programmeringen av förpackad programvara utgör ett av de snabbast växande segmenten inom datatjänstindustrin. Vissa företag eller organisationer-även små-har inrättat ett eget IT-team för att säkerställa design och utveckling av egen programvara för att svara på mycket specifika behov från sina interna slutanvändare, särskilt när befintlig programvara inte är lämplig eller för dyr . Detta är till exempel fallet i forskningslaboratorier .

I vissa organisationer, särskilt små, är människor som är kända som programmeringsanalytiker ansvariga för både systemanalysen och själva programmeringsarbetet. Övergången från en mainframe -miljö till en som främst baseras på persondatorer (PC) har suddat ut den en gång så hårda skillnaden mellan programmeraren och användaren. I allt högre grad tar skickliga slutanvändare över många av de uppgifter som tidigare utförts av programmerare. Till exempel gör den ökande användningen av paketerad programvara, till exempel kalkylblad och databashanteringsprogrampaket, användarna möjlighet att skriva enkla program för att komma åt data och utföra beräkningar.

Dessutom har uppkomsten av Internet gjort webbutveckling till en stor del av programmeringsområdet. För närvarande är många program applikationer webbapplikationer som kan användas av alla med en webbläsare . Exempel på sådana applikationer inkluderar Googles söktjänst, e-posttjänsten Outlook.com och tjänsten Flickr för fotodelning.

Programmeringsredigerare, även kända som källkodredigerare , är textredigerare som är särskilt utformade för programmerare eller utvecklare att skriva källkoden för en applikation eller ett program. De flesta av dessa redaktörer innehåller funktioner som är användbara för programmerare, som kan inkludera färgsyntaxmarkering , automatisk indragning, automatisk komplettering , parentesmatchning, syntaxkontroll och tillåter insticksprogram . Dessa funktioner hjälper användarna under kodning, felsökning och testning.

Globalisering

Marknadsförändringar i Storbritannien

Enligt BBC News kunde 17% av datavetenskapstudenterna inte hitta arbete inom sitt område 6 månader efter examen 2009 vilket var den högsta andelen av de undersökta universitetsämnena medan 0% av läkarstudenterna var arbetslösa i samma undersökning.

Marknadsförändringar i USA

Efter kraschen av dot-com-bubblan (1999–2001) och den stora lågkonjunkturen (2008) stod många amerikanska programmerare utan arbete eller med lägre löner. Dessutom har inskrivningen i datorrelaterade examina och andra STEM-grader (STEM-nedgång) i USA sjunkit i åratal, särskilt för kvinnor, vilket enligt Beaubouef och Mason kan tillskrivas brist på allmänt intresse för vetenskap och matematik och också av en uppenbar rädsla för att programmering kommer att utsättas för samma påtryckningar som tillverknings- och jordbrukskarriärer. För programmerare förutspår US Bureau of Labor Statistics (BLS) Occupational Outlook en nedgång med 7 procent från 2016 till 2026, en ytterligare nedgång med 9 procent från 2019 till 2029 och en nedgång på 10 procent från 2020 till 2030. sedan datorprogrammering kan göras var som helst i världen, så företag anställer ibland programmerare i länder där lönerna är lägre. Men för mjukvaruutvecklare BLS -projekt för 2019 till 2029 en 22% ökning av sysselsättningen, från 1 469 200 till 1 855 200 jobb med en median baslön på $ 110 000 per år. Denna förutsägelse är lägre än den tidigare 2010 till 2020 förutspådda ökningen med 30% för programutvecklare. Även om skillnaden är något tvetydig, använder mjukvaruutvecklare ett större antal aspekter av applikationsutveckling och är i allmänhet högre skickliga än programmerare, vilket gör outsourcing mindre risk. En annan orsak till nedgången för programmerare är att deras färdigheter slås samman med andra yrken, till exempel utvecklare, eftersom arbetsgivare ökar kraven på en position över tid.

Se även

Referenser

Vidare läsning

  • Weinberg, Gerald M. , The Psychology of Computer Programming , New York: Van Nostrand Reinhold, 1971
  • En erfarenhetsstudie av programmeringsarbetets karaktär: Lucas, Rob. "Dreaming in Code" New Left Review 62, mars – april 2010, s. 125–132.
  • Thompson, Clive (2019). Coders: The Making of a New Tribe and the Remake of the World . Penguin Press. ISBN 978-0735220560.

externa länkar