Programista - Programmer

Programista komputerowy
Dwie kobiety obsługujące ENIAC (pełna rozdzielczość).jpg
Betty Jennings i Fran Bilas , część pierwszego zespołu programistycznego ENIAC
Zawód
Nazwy Programista komputerowy
Rodzaj zawodu
Zawód
Sektory działalności
Technologia informacyjna , Branża oprogramowania
Opis
Kompetencje Pisanie i debugowanie kodu komputerowego, zadania dokumentacyjne. Często wykonywane są pewne prace projektowe i rozwojowe.
Wymagane wykształcenie
Różni się od stażu do stopnia licencjata w pokrewnej dziedzinie

Programista komputerowy , czasami nazywa się programistą , A programista lub więcej niedawna koder (zwłaszcza w bardziej nieformalnych kontekstach), to osoba, która tworzy oprogramowanie komputerowe . Termin programista komputerowy może odnosić się do specjalisty w jednej dziedzinie komputerów lub do generalisty, który pisze kod dla wielu rodzajów oprogramowania.

Najczęściej używany język komputerowy programisty (np. Assembly , COBOL , C , C++ , C# , JavaScript , Lisp , Python , Java ) może być poprzedzony terminem programista . Niektórzy, którzy pracują z internetowymi językami programowania , również poprzedzają swoje tytuły słowem web .

Terminologia

Nie istnieje standardowa terminologia branżowa, więc „programista” i „ inżynier oprogramowania ” mogą odnosić się do tej samej roli w różnych firmach. Najczęściej osoba z tytułem zawodowym „programista” lub „programista” może skupić się na implementacji szczegółowej specyfikacji w kodzie komputerowym, naprawianiu błędów i przeprowadzaniu przeglądów kodu. Mogą mieć stopień naukowy w dziedzinie informatyki , stopień naukowy lub mogą być samoukami lub uczestniczyć w obozie programistycznym . Od osoby z tytułem zawodowym „ inżynier oprogramowania ” oczekuje się zrozumienia zasad inżynierii oprogramowania , bardziej zaawansowanej matematyki i metody naukowej , i może być wymagane posiadanie dyplomu z inżynierii oprogramowania, inżynierii komputerowej lub informatyki . W niektórych krajach wymagany jest prawnie stopień inżyniera, aby można go było nazwać inżynierem. W firmach, które dokonują rozróżnienia, inżynierowie oprogramowania mogą mieć szersze i wyższe obowiązki, takie jak projektowanie lub „architektura” nowych programów, funkcji i platform; zarządzanie cyklem życia oprogramowania, w tym projektowaniem, wdrażaniem, testowaniem i wdrażaniem; kierowanie zespołem programistów; komunikowanie się z klientami biznesowymi, programistami i innymi inżynierami; biorąc pod uwagę stabilność i jakość systemu; i badanie metodologii tworzenia oprogramowania .

Architekt systemów jest powiązany tytuł pracy, co może wiązać produkujących projektów technicznych pozostawiając rzeczywistą programowania innym.

Historia

Ada Lovelace przez wielu uważana jest za pierwszą programistkę komputerową.

Brytyjski hrabina i matematyk Ada Lovelace jest często uważany za pierwszy komputer programista, jak była pierwsza opublikować część programu (konkretnie algorytmu ) przeznaczonych do realizacji na Charles Babbage „s silnika analitycznego w październiku 1842 roku użyto algorytmu obliczyć liczby Bernoulliego . Ponieważ maszyna Babbage nigdy nie została ukończona jako funkcjonujący standard w czasach Lovelace, nigdy nie miała okazji zobaczyć algorytmu w działaniu.

Pierwszą osobą, która uruchomiła program na działającym, nowoczesnym, elektronicznym komputerze, był informatyk Konrad Zuse w 1941 roku.

Zespół programistów ENIAC , składający się z Kay McNulty , Betty Jennings , Betty Snyder , Marlyn Wescoff , Fran Bilas i Ruth Lichterman , został uznany za pierwszych zwykłych programistów.

Branża oprogramowania

Pierwszą firmą założoną specjalnie w celu dostarczania produktów i usług oprogramowania była firma Computer Usage Company w 1955 roku. Wcześniej komputery były programowane albo przez klientów, albo przez kilku ówczesnych komercyjnych producentów komputerów, takich jak Sperry Rand i IBM .

Przemysł oprogramowania rozwinął się na początku lat 60., niemal natychmiast po sprzedaży komputerów w masowych ilościach. Uniwersytety, rządy i przedsiębiorstwa stworzyły zapotrzebowanie na oprogramowanie. Wiele z tych programów zostało napisanych we własnym zakresie przez pełnoetatowych programistów; niektóre były rozdzielane między użytkowników danej maszyny za darmo, podczas gdy inne były sprzedawane na zasadach komercyjnych. Inne firmy, takie jak Computer Sciences Corporation (założona w 1959), również zaczęły się rozwijać. Producenci komputerów wkrótce zaczęli łączyć ze swoimi maszynami systemy operacyjne , oprogramowanie systemowe i środowiska programistyczne ; IBM 1620 przyszedł z 1620 Symbolic System Programming i FORTRAN .

Przemysł znacznie się rozwinął wraz z pojawieniem się komputerów osobistych (PC) w połowie lat 70., które przyniosły komputery przeciętnemu pracownikowi biurowemu. W kolejnych latach komputer PC pomógł również w tworzeniu stale rosnącego rynku gier, aplikacji i oprogramowania użytkowego. Spowodowało to zwiększony popyt na programistów w tym okresie.

Na początku XXI wieku pojawił się kolejny udany model biznesowy oprogramowania hostowanego, zwany oprogramowaniem jako usługą lub SaaS. Z punktu widzenia producentów niektórych prawnie zastrzeżonego oprogramowania SaaS zmniejsza obawy o nieautoryzowane kopiowanie , ponieważ można uzyskać do niego dostęp tylko przez sieć iz definicji żadne oprogramowanie klienckie nie jest ładowane na komputer użytkownika końcowego. SaaS zazwyczaj nie działa w chmurze .

Natura pracy

Programiści komputerowi piszą, testują, debugują i utrzymują szczegółowe instrukcje, zwane programami komputerowymi , których komputery muszą przestrzegać, aby wykonywać swoje funkcje. Programiści również opracowują, projektują i testują struktury logiczne do rozwiązywania problemów za pomocą komputera. Wiele innowacji technicznych w programowaniu — zaawansowane technologie komputerowe oraz wyrafinowane nowe języki i narzędzia programistyczne — na nowo zdefiniowało rolę programisty i podniosło poziom wielu prac programistycznych wykonywanych obecnie. Tytuły i opisy stanowisk mogą się różnić w zależności od organizacji.

Programiści pracują w wielu ustawień, w tym korporacyjnych technologii informatycznych (IT), działów dużych firm programistycznych , małych firm usługowych i instytucji rządowych we wszystkich rozmiarach. Wielu profesjonalnych programistów pracuje również dla firm konsultingowych u klientów jako wykonawcy . Licencjonowanie zazwyczaj nie jest wymagane do pracy jako programista, chociaż profesjonalne certyfikaty są zwykle posiadane przez programistów. Programowanie jest powszechnie uważane za zawód (chociaż niektóre władze nie zgadzają się z tym, że tylko kariery, w których wymagane są legalne licencje, liczą się jako zawód).

Praca programistów jest bardzo zróżnicowana w zależności od rodzaju działalności, dla której piszą programy. Na przykład instrukcje związane z aktualizacją dokumentacji finansowej bardzo różnią się od instrukcji wymaganych do powielania warunków panujących na statku powietrznym dla pilotów szkolących się na symulatorze lotu . Proste programy można napisać w kilka godzin. Bardziej złożone mogą wymagać więcej niż roku pracy, podczas gdy inne nigdy nie są uważane za „kompletne”, ale raczej są stale ulepszane, dopóki pozostają w użyciu. W większości przypadków kilku programistów pracuje razem jako zespół pod nadzorem starszego programisty.

Programiści piszą programy według specyfikacji określonych głównie przez starszych programistów lub analityków systemowych . Po zakończeniu procesu projektowania, zadaniem programisty jest przekształcenie tego projektu w logiczną serię instrukcji, które komputer może wykonać. Programista koduje te instrukcje w jednym z wielu języków programowania. W zależności od przeznaczenia programu używane są różne języki programowania. Na przykład COBOL jest powszechnie używany w aplikacjach biznesowych, które zwykle działają na komputerach typu mainframe i midrange , podczas gdy Fortran jest używany w nauce i inżynierii. C++ i Python są szeroko stosowane zarówno w aplikacjach naukowych, jak i biznesowych. Java , C# , JavaScript i PHP to popularne języki programowania aplikacji internetowych i biznesowych. Programiści na ogół znają więcej niż jeden język programowania, a ponieważ wiele języków jest podobnych, często mogą stosunkowo łatwo nauczyć się nowych języków. W praktyce programiści często określane są przez język znają, na przykład jako programistów Java , lub od rodzaju pełnionej funkcji lub środowiska, w którym pracują, na przykład bazy danych programistów , programistów mainframe lub programistów .

Podczas wprowadzania zmian w kodzie źródłowym, który definiuje program, programiści muszą uświadomić innym programistom zadanie, które ma wykonać procedura. Robią to, pisząc dokumentację oprogramowania i wstawiając komentarze do kodu źródłowego, aby inni mogli łatwiej zrozumieć program. Aby zaoszczędzić czas, programiści często korzystają z bibliotek podstawowego kodu, które można modyfikować lub dostosowywać do konkretnej aplikacji. Takie podejście zapewnia bardziej niezawodne i spójne programy oraz zwiększa produktywność programistów poprzez eliminację niektórych rutynowych czynności.

Testowanie i debugowanie

Programiści testują program uruchamiając go i szukając błędów (błędów). Gdy zostaną zidentyfikowane, programista zwykle wprowadza odpowiednie poprawki, a następnie ponownie sprawdza program, aż pozostanie akceptowalny niski poziom i waga błędów. Ten proces nazywa się testowaniem i debugowaniem . To ważne elementy pracy każdego programisty. Programiści mogą nadal naprawiać te problemy przez cały czas trwania programu. Aktualizowanie, naprawianie, modyfikowanie i rozszerzanie istniejących programów jest czasami nazywane programowaniem konserwacyjnym . Programiści mogą współtworzyć przewodniki użytkownika i pomoc online lub mogą współpracować z pisarzami technicznymi, aby wykonać taką pracę.

Aplikacja a programowanie systemowe

Programiści komputerowi często dzielą się na dwa szerokie typy: programiści aplikacji i programiści systemowi. Programiści aplikacji piszą programy do obsługi określonego zadania, takie jak program do śledzenia zapasów w organizacji. Mogą również dokonywać zmian w istniejącym pakiecie oprogramowania lub dostosowywać ogólne aplikacje, które są często kupowane od niezależnych dostawców oprogramowania . Programiści systemowi natomiast piszą programy w celu utrzymania i kontroli oprogramowania systemów komputerowych, takich jak systemy operacyjne i systemy zarządzania bazami danych . Pracownicy ci wprowadzają zmiany w instrukcjach, które określają, w jaki sposób sieć, stacje robocze i procesor systemu obsługują różne zadania, które im przydzielono, oraz sposób komunikowania się z urządzeniami peryferyjnymi, takimi jak drukarki i napędy dysków .

Kwalifikacje i umiejętności

Programista musi mieć wiedzę techniczną z pewnymi aspektami informatyki. Niektóre stanowiska będą wymagały dyplomu z odpowiedniej dziedziny, takiej jak informatyka, technologia informacyjna, inżynieria, programowanie lub inne powiązane studia.

Rodzaje oprogramowania

Programiści mogą współpracować bezpośrednio z ekspertami z różnych dziedzin, aby tworzyć oprogramowanie – albo programy przeznaczone dla konkretnych klientów, albo pakiety oprogramowania do ogólnego użytku – od gier wideo po oprogramowanie edukacyjne, programy do publikacji komputerowych lub aplikacje finansowe. Programowanie oprogramowania w pakietach to jeden z najszybciej rozwijających się segmentów branży usług komputerowych. Niektóre firmy lub organizacje – nawet małe – utworzyły własny zespół IT, aby zapewnić projektowanie i rozwój własnego oprogramowania, aby odpowiedzieć na bardzo specyficzne potrzeby ich wewnętrznych użytkowników końcowych, zwłaszcza gdy istniejące oprogramowanie nie jest odpowiednie lub jest zbyt drogie . Tak jest na przykład w laboratoriach badawczych .

W niektórych organizacjach, szczególnie małych, osoby potocznie nazywane analitykami programistycznymi są odpowiedzialne zarówno za analizę systemów, jak i za samą pracę programistyczną. Przejście ze środowiska mainframe do środowiska opartego głównie na komputerach osobistych (PC) zatarło niegdyś sztywne rozróżnienie między programistą a użytkownikiem. Coraz częściej biegli użytkownicy końcowi przejmują wiele zadań wykonywanych wcześniej przez programistów. Na przykład rosnące wykorzystanie pakietów oprogramowania, takiego jak pakiety oprogramowania do zarządzania arkuszami kalkulacyjnymi i bazami danych, umożliwia użytkownikom pisanie prostych programów umożliwiających dostęp do danych i wykonywanie obliczeń.

Ponadto rozwój Internetu sprawił, że tworzenie stron internetowych stało się ogromną częścią dziedziny programowania. Obecnie wiele aplikacji to aplikacje internetowe, z których może korzystać każdy, kto ma przeglądarkę internetową . Przykładami takich aplikacji są usługa wyszukiwania Google, usługa poczty e-mail Outlook.com oraz usługa udostępniania zdjęć Flickr .

Edytory programistyczne, znane również jako edytory kodu źródłowego , to edytory tekstu zaprojektowane specjalnie dla programistów lub programistów do pisania kodu źródłowego aplikacji lub programu. Większość z tych edytorów zawiera funkcje przydatne dla programistów, takie jak podświetlanie składni kolorami , automatyczne wcięcia , autouzupełnianie , dopasowywanie nawiasów , sprawdzanie składni i zezwalanie na wtyczki . Funkcje te pomagają użytkownikom podczas kodowania, debugowania i testowania.

Globalizacja

Zmiany na rynku w Wielkiej Brytanii

Według BBC News , 17% studentów informatyki nie mogło znaleźć pracy w swojej dziedzinie 6 miesięcy po ukończeniu studiów w 2009 r., co było najwyższym wskaźnikiem wśród badanych kierunków uniwersyteckich, podczas gdy 0% studentów medycyny było bezrobotnych w tym samym badaniu.

Zmiany na rynku w USA

Po krachu bańki internetowej (1999–2001) i Wielkiej Recesji (2008) wielu amerykańskich programistów pozostało bez pracy lub z niższymi zarobkami. Ponadto liczba zapisów na stopnie komputerowe i inne stopnie STEM (STEM attrition) w USA spada od lat, zwłaszcza wśród kobiet, co, zdaniem Beaubouef i Masona, można przypisać brakowi ogólnego zainteresowania nauką i matematyki, a także z oczywistej obawy, że programowanie będzie podlegać takiej samej presji, jak kariera w produkcji i rolnictwie. Dla programistów, US Bureau of Labor Statistics (BLS) Occupational Outlook przewiduje 7-procentowy spadek od 2016 do 2026, dalszy 9-procentowy spadek od 2019 do 2029 i 10-procentowy spadek od 2020 do 2030. od czasu programowania komputerowego można to zrobić z dowolnego miejsca na świecie, więc firmy czasami zatrudniają programistów w krajach, w których zarobki są niższe. Jednak dla programistów projektów BLS na lata 2019 do 2029 wzrost zatrudnienia o 22%, z 1 469 200 do 1 785 200 miejsc pracy przy medianie wynagrodzenia podstawowego w wysokości 110 000 USD rocznie. Ta prognoza jest niższa niż przewidywany na lata 2010-2020 wzrost o 30% dla twórców oprogramowania. Chociaż rozróżnienie jest nieco niejednoznaczne, twórcy oprogramowania angażują się w szerszy zakres aspektów tworzenia aplikacji i generalnie mają wyższe kwalifikacje niż programiści, co sprawia, że ​​outsourcing jest mniej ryzykowny. Innym powodem spadku dla programistów jest łączenie ich umiejętności z innymi zawodami, takimi jak programiści, ponieważ pracodawcy z czasem zwiększają wymagania dotyczące stanowiska.

Zobacz też

Bibliografia

Dalsza lektura

  • Weinberg, Gerald M. , Psychologia programowania komputerowego , New York: Van Nostrand Reinhold, 1971
  • Doświadczalne studium natury pracy programistycznej: Lucas, Rob. „Dreaming in Code” New Left Review 62, marzec–kwiecień 2010, s. 125–132.
  • Thompson, Clive (2019). Coders: tworzenie nowego plemienia i przeróbka świata . Prasa pingwina. Numer ISBN 978-0735220560.

Zewnętrzne linki