Programowanie komputerowe jest podstawą każdej operacji komputerowej. W przeciwieństwie do zwykłych urządzeń elektromechanicznych komputer wymaga oprogramowania do wykonywania instrukcji. Na najniższym poziomie kod maszynowy służy do sterowania sprzętem i działaniem komputera. Język maszynowy to zestaw zer i jedynek, które są dość uciążliwe w obsłudze. Dlatego instrukcje są kodowane w języku wyższego poziomu zwanym programem komputerowym. Konwersja języka wyższego poziomu na kod maszynowy jest przeprowadzana przez języki na poziomie zespołu lub asemblery. Transformacja jest zakończona bez żadnego ludzkiego interfejsu.
Czy programowanie komputerowe jest trudne do nauczenia? || Mark Zuckerberg, Bill Gates
W pierwszych dniach, kiedy programy komputerowe znajdowały się jeszcze w początkowej fazie rozwoju, języki takie jak COBOL i BASIC były bardzo popularne. Wraz ze wzrostem mocy obliczeniowej komputerów pojawił się popyt na bardziej wydajne programy. Programy trzeciej generacji charakteryzowały się lepszą przenośnością i wydajnością w porównaniu z wcześniejszymi generacjami. Konieczność poradzenia sobie z ogromną ilością danych spowodowała powstanie specjalistycznego oprogramowania zwanego oprogramowaniem do zarządzania bazami danych lub bardziej szczegółowego oprogramowania do zarządzania bazami danych. Firmy takie jak Oracle, IBM i Microsoft opracowały własną wersję RDBMS. Na froncie przetwarzania, Mainframes używali COLOL dla aplikacji biznesowych i FORTRAN (Formula Translation) do zastosowań naukowych.
Koncepcja modułowości stała się popularna, gdy setki programistów pracowało jednocześnie nad jednym dużym projektem. Programy zorientowane obiektowo, takie jak C ++, zyskały popularność. Kod używany w tych językach wyższego poziomu był wielokrotnego użytku, a techniki mogłyby zapewnić lepszą wydajność.
W międzyczasie Microsoft wydał własny system operacyjny, który mógłby być wykorzystywany na komputerach osobistych. W ciągu kilku lat system operacyjny Windows stał się bezprecedensowym sukcesem. System operacyjny OS2 używany przez komputery Apple został przeniesiony na drugą pozycję. IBM dostarcza inne oprogramowanie systemowe, ale żaden nie może osiągnąć poziomów popularności systemu Windows. Jedynym problemem w systemie Windows jest kwestia naruszenia bezpieczeństwa. Chociaż firma Microsoft usilnie dąży do wyeliminowania luk w zabezpieczeniach, nie udało się jej całkowicie.
Nowoczesne programy komputerowe starają się coraz bardziej zachowywać jak ludzki język. Technologowie uważają, że nadejdzie dzień, w którym można zaprogramować komputer za pomocą ustnych instrukcji. Z pewnością to się nie stanie w pośpiechu. Sztuczna inteligencja, systemy eksperckie, logika rozmyta i wiele innych najnowocześniejszych technologii zmienia oblicze programowania.
Komputery, w przeciwieństwie do innych komputerów, wymagają działania oprogramowania. Mówi językiem maszynowym, który jest bełkotem dla ludzkiego umysłu. Języki wyższego poziomu są używane do tłumaczenia rozpoznawalnych instrukcji na język maszynowy. W miarę postępów języki wyższego poziomu będą przypominać ludzkie języki.
Na początku ery komputerów jeden program używany do wykonywania różnych funkcji. Obecnie specjalistyczne programy są dostosowane do różnych aplikacji. Złożone programy wymagają od wielu programistów jednoczesnej pracy nad jednym projektem. Modułowe języki doskonale nadają się do tak dużych projektów. Programowanie obiektowe stało się popularne ze względu na jego modułowość i łatwość użycia.